1
- using System . Collections . Generic ;
2
- using System . Linq ;
3
1
using Antlr4 . Runtime ;
4
2
using NUnit . Framework ;
5
3
using Rubberduck . Parsing ;
6
4
using Rubberduck . Parsing . Grammar ;
7
5
using Rubberduck . Parsing . Symbols ;
8
6
using RubberduckTests . Mocks ;
7
+ using System . Collections . Generic ;
8
+ using System . Linq ;
9
9
10
10
namespace RubberduckTests . Grammar
11
11
{
12
12
[ TestFixture ]
13
- public class ParserRuleContextExtensionTests
13
+ public class ParserRuleContextExtensionsTests
14
14
{
15
15
private List < Declaration > _allTestingDeclarations ;
16
16
private List < Declaration > AllTestingDeclarations
@@ -54,40 +54,45 @@ End Select
54
54
}
55
55
}
56
56
57
- [ TestCase ( "selectCase3Arg" , ExpectedResult = true ) ]
58
- [ TestCase ( "firstArg" , ExpectedResult = false ) ]
57
+ [ TestCase ( "selectCase3Arg" , true ) ]
58
+ [ TestCase ( "firstArg" , false ) ]
59
59
[ Category ( "Inspections" ) ]
60
- public bool ParserRuleCtxtExt_HasParentType ( string identifer )
60
+ [ Category ( nameof ( ParserRuleContextExtensions ) ) ]
61
+ public void ParserRuleCtxtExt_HasParentType ( string identifer , bool expected )
61
62
{
62
63
var testArg = AllTestingDeclarations . Where ( dc => dc . IdentifierName . Equals ( identifer ) ) . First ( ) ;
63
- var result = testArg . Context . IsDescendentOf < VBAParser . SelectCaseStmtContext > ( ) ;
64
- return result ;
64
+
65
+ var actual = testArg . Context . IsDescendentOf < VBAParser . SelectCaseStmtContext > ( ) ;
66
+ Assert . AreEqual ( expected , actual ) ;
65
67
}
66
68
67
- [ TestCase ( "selectCase3" , ExpectedResult = true ) ]
68
- [ TestCase ( "selectCase1" , ExpectedResult = false ) ]
69
+ [ TestCase ( "selectCase3" , true ) ]
70
+ [ TestCase ( "selectCase1" , false ) ]
69
71
[ Category ( "Inspections" ) ]
70
- public bool ParserRuleCtxtExt_HasParentOfSameType ( string contextID )
72
+ [ Category ( nameof ( ParserRuleContextExtensions ) ) ]
73
+ public void ParserRuleCtxtExt_HasParentOfSameType ( string contextID , bool expected )
71
74
{
72
- bool result = false ;
75
+ var actual = false ;
73
76
74
77
var testIdDecs = AllTestingDeclarations . Where ( dc => dc . IdentifierName . Equals ( contextID ) ) ;
75
78
if ( testIdDecs . Any ( ) )
76
79
{
77
80
var refs = testIdDecs . First ( ) . References ;
78
81
var testCtxt = ( ParserRuleContext ) refs . Where ( rf => rf . Context . Parent . Parent . Parent is VBAParser . SelectCaseStmtContext ) . First ( ) . Context . Parent . Parent . Parent ;
79
- result = testCtxt . IsDescendentOf < VBAParser . SelectCaseStmtContext > ( ) ;
82
+ actual = testCtxt . IsDescendentOf < VBAParser . SelectCaseStmtContext > ( ) ;
80
83
}
81
- return result ;
84
+
85
+ Assert . AreEqual ( expected , actual ) ;
82
86
}
83
87
84
- [ TestCase ( "selectCase3" , "selectCase1" , ExpectedResult = true ) ]
85
- [ TestCase ( "selectCase1" , "selectCase3" , ExpectedResult = false ) ]
86
- [ TestCase ( "selectCase3" , "selectCase3" , ExpectedResult = false ) ]
88
+ [ TestCase ( "selectCase3" , "selectCase1" , true ) ]
89
+ [ TestCase ( "selectCase1" , "selectCase3" , false ) ]
90
+ [ TestCase ( "selectCase3" , "selectCase3" , false ) ]
87
91
[ Category ( "Inspections" ) ]
88
- public bool ParserRuleCtxtExt_IsDescendentOf_ByContext ( string contextID , string parentContextID )
92
+ [ Category ( nameof ( ParserRuleContextExtensions ) ) ]
93
+ public void ParserRuleCtxtExt_IsDescendentOf_ByContext ( string contextID , string parentContextID , bool expected )
89
94
{
90
- bool result = false ;
95
+ var actual = false ;
91
96
var parentIdDec = AllTestingDeclarations . Where ( dc => dc . IdentifierName . Equals ( parentContextID ) ) . First ( ) ;
92
97
var parentCtxt = ( VBAParser . SelectCaseStmtContext ) parentIdDec . References . Where ( rf => rf . Context . Parent . Parent . Parent is VBAParser . SelectCaseStmtContext ) . First ( ) . Context . Parent . Parent . Parent ;
93
98
@@ -96,25 +101,28 @@ public bool ParserRuleCtxtExt_IsDescendentOf_ByContext(string contextID, string
96
101
{
97
102
var refs = testIdDecs . First ( ) . References ;
98
103
var testCtxt = ( ParserRuleContext ) refs . Where ( rf => rf . Context . Parent . Parent . Parent is VBAParser . SelectCaseStmtContext ) . First ( ) . Context . Parent . Parent . Parent ;
99
- result = testCtxt . IsDescendentOf ( parentCtxt ) ;
104
+ actual = testCtxt . IsDescendentOf ( parentCtxt ) ;
100
105
}
101
- return result ;
102
- }
103
106
107
+ Assert . AreEqual ( expected , actual ) ;
108
+ }
104
109
105
110
[ Test ]
106
111
[ Category ( "Inspections" ) ]
112
+ [ Category ( nameof ( ParserRuleContextExtensions ) ) ]
107
113
public void ParserRuleCtxtExt_IsDescendentOf_ByType_False ( )
108
114
{
109
115
var selectCase3Arg = AllTestingDeclarations . Where ( dc => dc . IdentifierName . Equals ( "selectCase3Arg" ) ) . First ( ) ;
116
+
110
117
var result = selectCase3Arg . Context . IsDescendentOf < VBAParser . SubStmtContext > ( ) ;
111
118
Assert . AreEqual ( false , result ) ;
112
119
}
113
120
114
- [ TestCase ( "Foo" , PRCExtensionTestContextTypes . SelectStmtCtxt , ExpectedResult = 3 ) ]
115
- [ TestCase ( "Foo" , PRCExtensionTestContextTypes . PowOpCtxt , ExpectedResult = 0 ) ]
121
+ [ TestCase ( "Foo" , PRCExtensionTestContextTypes . SelectStmtCtxt , 3 ) ]
122
+ [ TestCase ( "Foo" , PRCExtensionTestContextTypes . PowOpCtxt , 0 ) ]
116
123
[ Category ( "Inspections" ) ]
117
- public int ParserRuleCtxtExt_GetDescendents ( string parentName , PRCExtensionTestContextTypes descendentType )
124
+ [ Category ( nameof ( ParserRuleContextExtensions ) ) ]
125
+ public void ParserRuleCtxtExt_GetDescendents ( string parentName , PRCExtensionTestContextTypes descendentType , long expected )
118
126
{
119
127
var parentContext = AllTestingDeclarations . Where ( dc => dc . IdentifierName . Equals ( "Foo" ) ) . First ( ) . Context ;
120
128
var descendents = new List < ParserRuleContext > ( ) ;
@@ -126,13 +134,16 @@ public int ParserRuleCtxtExt_GetDescendents(string parentName, PRCExtensionTestC
126
134
{
127
135
descendents = parentContext . GetDescendents < VBAParser . PowOpContext > ( ) . Select ( desc => ( ParserRuleContext ) desc ) . ToList ( ) ;
128
136
}
129
- return descendents . Count ( ) ;
137
+
138
+ var actual = descendents . Count ( ) ;
139
+ Assert . AreEqual ( expected , actual ) ;
130
140
}
131
141
132
- [ TestCase ( "Foo" , PRCExtensionTestContextTypes . SelectStmtCtxt , ExpectedResult = true ) ]
133
- [ TestCase ( "Foo" , PRCExtensionTestContextTypes . PowOpCtxt , ExpectedResult = false ) ]
142
+ [ TestCase ( "Foo" , PRCExtensionTestContextTypes . SelectStmtCtxt , true ) ]
143
+ [ TestCase ( "Foo" , PRCExtensionTestContextTypes . PowOpCtxt , false ) ]
134
144
[ Category ( "Inspections" ) ]
135
- public bool ParserRuleCtxtExt_GetDescendent ( string parentName , PRCExtensionTestContextTypes descendentType )
145
+ [ Category ( nameof ( ParserRuleContextExtensions ) ) ]
146
+ public void ParserRuleCtxtExt_GetDescendent ( string parentName , PRCExtensionTestContextTypes descendentType , bool expected )
136
147
{
137
148
var parentContext = AllTestingDeclarations . Where ( dc => dc . IdentifierName . Equals ( parentName ) ) . First ( ) . Context ;
138
149
ParserRuleContext descendent = null ;
@@ -144,13 +155,16 @@ public bool ParserRuleCtxtExt_GetDescendent(string parentName, PRCExtensionTestC
144
155
{
145
156
descendent = parentContext . GetDescendent < VBAParser . PowOpContext > ( ) ;
146
157
}
147
- return descendent != null ;
158
+
159
+ var actual = descendent != null ;
160
+ Assert . AreEqual ( expected , actual ) ;
148
161
}
149
162
150
- [ TestCase ( "selectCase3Arg" , PRCExtensionTestContextTypes . SelectStmtCtxt , ExpectedResult = true ) ]
151
- [ TestCase ( "selectCase3Arg" , PRCExtensionTestContextTypes . PowOpCtxt , ExpectedResult = false ) ]
163
+ [ TestCase ( "selectCase3Arg" , PRCExtensionTestContextTypes . SelectStmtCtxt , true ) ]
164
+ [ TestCase ( "selectCase3Arg" , PRCExtensionTestContextTypes . PowOpCtxt , false ) ]
152
165
[ Category ( "Inspections" ) ]
153
- public bool ParserRuleCtxtExt_GetAncestor ( string name , PRCExtensionTestContextTypes ancestorType )
166
+ [ Category ( nameof ( ParserRuleContextExtensions ) ) ]
167
+ public void ParserRuleCtxtExt_GetAncestor ( string name , PRCExtensionTestContextTypes ancestorType , bool expected )
154
168
{
155
169
var context = AllTestingDeclarations . Where ( dc => dc . IdentifierName . Equals ( name ) ) . First ( ) . Context ;
156
170
ParserRuleContext ancestor = null ;
@@ -162,26 +176,31 @@ public bool ParserRuleCtxtExt_GetAncestor(string name, PRCExtensionTestContextTy
162
176
{
163
177
ancestor = context . GetAncestor < VBAParser . PowOpContext > ( ) ;
164
178
}
165
- return ancestor != null ;
179
+
180
+ var actual = ancestor != null ;
181
+ Assert . AreEqual ( expected , actual ) ;
166
182
}
167
183
168
- [ TestCase ( "selectCase3Arg" , "Foo" , ExpectedResult = true ) ]
169
- [ TestCase ( "selectCase3Arg" , "selectCase1" , ExpectedResult = false ) ]
184
+ [ TestCase ( "selectCase3Arg" , "Foo" , true ) ]
185
+ [ TestCase ( "selectCase3Arg" , "selectCase1" , false ) ]
170
186
[ Category ( "Inspections" ) ]
171
- public bool ParserRuleCtxtExt_IsDescendentOf_ByContext2 ( string contextName , string parentName )
187
+ [ Category ( nameof ( ParserRuleContextExtensions ) ) ]
188
+ public void ParserRuleCtxtExt_IsDescendentOf_ByContext2 ( string contextName , string parentName , bool expected )
172
189
{
173
190
var descendentCandidate = AllTestingDeclarations . Where ( dc => dc . IdentifierName . Equals ( contextName ) ) . First ( ) . Context ;
174
191
var parentCandidate = AllTestingDeclarations . Where ( dc => dc . IdentifierName . Equals ( parentName ) ) . First ( ) . Context ;
175
- var result = descendentCandidate . IsDescendentOf ( parentCandidate ) ;
176
- return result ;
192
+
193
+ var actual = descendentCandidate . IsDescendentOf ( parentCandidate ) ;
194
+ Assert . AreEqual ( expected , actual ) ;
177
195
}
178
196
179
197
public enum PRCExtensionTestContextTypes { SelectStmtCtxt , AsTypeCtxt , PowOpCtxt } ;
180
198
181
- [ TestCase ( "selectCase3Arg" , PRCExtensionTestContextTypes . SelectStmtCtxt , ExpectedResult = false ) ]
182
- [ TestCase ( "selectCase3Arg" , PRCExtensionTestContextTypes . AsTypeCtxt , ExpectedResult = true ) ]
199
+ [ TestCase ( "selectCase3Arg" , PRCExtensionTestContextTypes . SelectStmtCtxt , false ) ]
200
+ [ TestCase ( "selectCase3Arg" , PRCExtensionTestContextTypes . AsTypeCtxt , true ) ]
183
201
[ Category ( "Inspections" ) ]
184
- public bool ParserRuleCtxtExt_GetChild ( string parentContextName , PRCExtensionTestContextTypes ctxtType )
202
+ [ Category ( nameof ( ParserRuleContextExtensions ) ) ]
203
+ public void ParserRuleCtxtExt_GetChild ( string parentContextName , PRCExtensionTestContextTypes ctxtType , bool expected )
185
204
{
186
205
ParserRuleContext result = null ;
187
206
var parentContext = AllTestingDeclarations . Where ( dc => dc . IdentifierName . Equals ( parentContextName ) ) . First ( ) . Context ;
@@ -193,7 +212,9 @@ public bool ParserRuleCtxtExt_GetChild(string parentContextName, PRCExtensionTes
193
212
{
194
213
result = parentContext . GetChild < VBAParser . AsTypeClauseContext > ( ) ;
195
214
}
196
- return result != null ;
215
+
216
+ var actual = result != null ;
217
+ Assert . AreEqual ( expected , actual ) ;
197
218
}
198
219
199
220
private IEnumerable < Declaration > GetAllUserDeclarations ( string inputCode )
0 commit comments