Skip to content

Commit ff99d85

Browse files
committed
Tests/Tokenizer: make it easier to debug default keyword tests
This commit appends the name of the test marker to the end of the `$message` of each assertion. This should make it easier to identify which test case caused a given test to fail.
1 parent f0e74de commit ff99d85

File tree

1 file changed

+140
-32
lines changed

1 file changed

+140
-32
lines changed

tests/Core/Tokenizers/Tokenizer/RecurseScopeMapDefaultKeywordConditionsTest.php

Lines changed: 140 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -38,11 +38,27 @@ public function testMatchDefault($testMarker, $testContent='default')
3838
$tokenArray = $tokens[$token];
3939

4040
// Make sure we're looking at the right token.
41-
$this->assertSame(T_MATCH_DEFAULT, $tokenArray['code'], 'Token tokenized as '.$tokenArray['type'].', not T_MATCH_DEFAULT (code)');
42-
43-
$this->assertArrayNotHasKey('scope_condition', $tokenArray, 'Scope condition is set');
44-
$this->assertArrayNotHasKey('scope_opener', $tokenArray, 'Scope opener is set');
45-
$this->assertArrayNotHasKey('scope_closer', $tokenArray, 'Scope closer is set');
41+
$this->assertSame(
42+
T_MATCH_DEFAULT,
43+
$tokenArray['code'],
44+
sprintf('Token tokenized as %s, not T_MATCH_DEFAULT (code). Marker: %s.', $tokenArray['type'], $testMarker)
45+
);
46+
47+
$this->assertArrayNotHasKey(
48+
'scope_condition',
49+
$tokenArray,
50+
sprintf('Scope condition is set. Marker: %s.', $testMarker)
51+
);
52+
$this->assertArrayNotHasKey(
53+
'scope_opener',
54+
$tokenArray,
55+
sprintf('Scope opener is set. Marker: %s.', $testMarker)
56+
);
57+
$this->assertArrayNotHasKey(
58+
'scope_closer',
59+
$tokenArray,
60+
sprintf('Scope closer is set. Marker: %s.', $testMarker)
61+
);
4662

4763
}//end testMatchDefault()
4864

@@ -135,34 +151,110 @@ public function testSwitchDefault($testMarker, $openerOffset, $closerOffset, $co
135151
$expectedScopeCloser = ($token + $closerOffset);
136152

137153
// Make sure we're looking at the right token.
138-
$this->assertSame(T_DEFAULT, $tokenArray['code'], 'Token tokenized as '.$tokenArray['type'].', not T_DEFAULT (code)');
139-
140-
$this->assertArrayHasKey('scope_condition', $tokenArray, 'Scope condition is not set');
141-
$this->assertArrayHasKey('scope_opener', $tokenArray, 'Scope opener is not set');
142-
$this->assertArrayHasKey('scope_closer', $tokenArray, 'Scope closer is not set');
143-
$this->assertSame($token, $tokenArray['scope_condition'], 'Scope condition is not the T_DEFAULT token');
144-
$this->assertSame($expectedScopeOpener, $tokenArray['scope_opener'], 'Scope opener of the T_DEFAULT token incorrect');
145-
$this->assertSame($expectedScopeCloser, $tokenArray['scope_closer'], 'Scope closer of the T_DEFAULT token incorrect');
154+
$this->assertSame(
155+
T_DEFAULT,
156+
$tokenArray['code'],
157+
sprintf('Token tokenized as %s, not T_DEFAULT (code). Marker: %s.', $tokenArray['type'], $testMarker)
158+
);
159+
160+
$this->assertArrayHasKey(
161+
'scope_condition',
162+
$tokenArray,
163+
sprintf('Scope condition is not set. Marker: %s.', $testMarker)
164+
);
165+
$this->assertArrayHasKey(
166+
'scope_opener',
167+
$tokenArray,
168+
sprintf('Scope opener is not set. Marker: %s.', $testMarker)
169+
);
170+
$this->assertArrayHasKey(
171+
'scope_closer',
172+
$tokenArray,
173+
sprintf('Scope closer is not set. Marker: %s.', $testMarker)
174+
);
175+
$this->assertSame(
176+
$token,
177+
$tokenArray['scope_condition'],
178+
sprintf('Scope condition is not the T_DEFAULT token. Marker: %s.', $testMarker)
179+
);
180+
$this->assertSame(
181+
$expectedScopeOpener,
182+
$tokenArray['scope_opener'],
183+
sprintf('Scope opener of the T_DEFAULT token incorrect. Marker: %s.', $testMarker)
184+
);
185+
$this->assertSame(
186+
$expectedScopeCloser,
187+
$tokenArray['scope_closer'],
188+
sprintf('Scope closer of the T_DEFAULT token incorrect. Marker: %s.', $testMarker)
189+
);
146190

147191
$opener = $tokenArray['scope_opener'];
148-
$this->assertArrayHasKey('scope_condition', $tokens[$opener], 'Opener scope condition is not set');
149-
$this->assertArrayHasKey('scope_opener', $tokens[$opener], 'Opener scope opener is not set');
150-
$this->assertArrayHasKey('scope_closer', $tokens[$opener], 'Opener scope closer is not set');
151-
$this->assertSame($token, $tokens[$opener]['scope_condition'], 'Opener scope condition is not the T_DEFAULT token');
152-
$this->assertSame($expectedScopeOpener, $tokens[$opener]['scope_opener'], 'T_DEFAULT opener scope opener token incorrect');
153-
$this->assertSame($expectedScopeCloser, $tokens[$opener]['scope_closer'], 'T_DEFAULT opener scope closer token incorrect');
192+
$this->assertArrayHasKey(
193+
'scope_condition',
194+
$tokens[$opener],
195+
sprintf('Opener scope condition is not set. Marker: %s.', $testMarker)
196+
);
197+
$this->assertArrayHasKey(
198+
'scope_opener',
199+
$tokens[$opener],
200+
sprintf('Opener scope opener is not set. Marker: %s.', $testMarker)
201+
);
202+
$this->assertArrayHasKey(
203+
'scope_closer',
204+
$tokens[$opener],
205+
sprintf('Opener scope closer is not set. Marker: %s.', $testMarker)
206+
);
207+
$this->assertSame(
208+
$token,
209+
$tokens[$opener]['scope_condition'],
210+
sprintf('Opener scope condition is not the T_DEFAULT token. Marker: %s.', $testMarker)
211+
);
212+
$this->assertSame(
213+
$expectedScopeOpener,
214+
$tokens[$opener]['scope_opener'],
215+
sprintf('T_DEFAULT opener scope opener token incorrect. Marker: %s.', $testMarker)
216+
);
217+
$this->assertSame(
218+
$expectedScopeCloser,
219+
$tokens[$opener]['scope_closer'],
220+
sprintf('T_DEFAULT opener scope closer token incorrect. Marker: %s.', $testMarker)
221+
);
154222

155223
if ($sharedScopeCloser === false) {
156224
$closer = $tokenArray['scope_closer'];
157-
$this->assertArrayHasKey('scope_condition', $tokens[$closer], 'Closer scope condition is not set');
158-
$this->assertArrayHasKey('scope_opener', $tokens[$closer], 'Closer scope opener is not set');
159-
$this->assertArrayHasKey('scope_closer', $tokens[$closer], 'Closer scope closer is not set');
160-
$this->assertSame($token, $tokens[$closer]['scope_condition'], 'Closer scope condition is not the T_DEFAULT token');
161-
$this->assertSame($expectedScopeOpener, $tokens[$closer]['scope_opener'], 'T_DEFAULT closer scope opener token incorrect');
162-
$this->assertSame($expectedScopeCloser, $tokens[$closer]['scope_closer'], 'T_DEFAULT closer scope closer token incorrect');
225+
$this->assertArrayHasKey(
226+
'scope_condition',
227+
$tokens[$closer],
228+
sprintf('Closer scope condition is not set. Marker: %s.', $testMarker)
229+
);
230+
$this->assertArrayHasKey(
231+
'scope_opener',
232+
$tokens[$closer],
233+
sprintf('Closer scope opener is not set. Marker: %s.', $testMarker)
234+
);
235+
$this->assertArrayHasKey(
236+
'scope_closer',
237+
$tokens[$closer],
238+
sprintf('Closer scope closer is not set. Marker: %s.', $testMarker)
239+
);
240+
$this->assertSame(
241+
$token,
242+
$tokens[$closer]['scope_condition'],
243+
sprintf('Closer scope condition is not the T_DEFAULT token. Marker: %s.', $testMarker)
244+
);
245+
$this->assertSame(
246+
$expectedScopeOpener,
247+
$tokens[$closer]['scope_opener'],
248+
sprintf('T_DEFAULT closer scope opener token incorrect. Marker: %s.', $testMarker)
249+
);
250+
$this->assertSame(
251+
$expectedScopeCloser,
252+
$tokens[$closer]['scope_closer'],
253+
sprintf('T_DEFAULT closer scope closer token incorrect. Marker: %s.', $testMarker)
254+
);
163255
} else {
164256
$closer = $expectedScopeCloser;
165-
}
257+
}//end if
166258

167259
if (($opener + 1) !== $closer) {
168260
$end = $closer;
@@ -174,7 +266,7 @@ public function testSwitchDefault($testMarker, $openerOffset, $closerOffset, $co
174266
$this->assertArrayHasKey(
175267
$token,
176268
$tokens[$i]['conditions'],
177-
'T_DEFAULT condition not added for token belonging to the T_DEFAULT structure'
269+
sprintf('T_DEFAULT condition not added for token belonging to the T_DEFAULT structure. Marker: %s.', $testMarker)
178270
);
179271
}
180272
}
@@ -261,11 +353,27 @@ public function testNotDefaultKeyword($testMarker, $testContent='DEFAULT')
261353
$tokenArray = $tokens[$token];
262354

263355
// Make sure we're looking at the right token.
264-
$this->assertSame(T_STRING, $tokenArray['code'], 'Token tokenized as '.$tokenArray['type'].', not T_STRING (code)');
265-
266-
$this->assertArrayNotHasKey('scope_condition', $tokenArray, 'Scope condition is set');
267-
$this->assertArrayNotHasKey('scope_opener', $tokenArray, 'Scope opener is set');
268-
$this->assertArrayNotHasKey('scope_closer', $tokenArray, 'Scope closer is set');
356+
$this->assertSame(
357+
T_STRING,
358+
$tokenArray['code'],
359+
sprintf('Token tokenized as %s, not T_STRING (code). Marker: %s.', $tokenArray['type'], $testMarker)
360+
);
361+
362+
$this->assertArrayNotHasKey(
363+
'scope_condition',
364+
$tokenArray,
365+
sprintf('Scope condition is set. Marker: %s.', $testMarker)
366+
);
367+
$this->assertArrayNotHasKey(
368+
'scope_opener',
369+
$tokenArray,
370+
sprintf('Scope opener is set. Marker: %s.', $testMarker)
371+
);
372+
$this->assertArrayNotHasKey(
373+
'scope_closer',
374+
$tokenArray,
375+
sprintf('Scope closer is set. Marker: %s.', $testMarker)
376+
);
269377

270378
}//end testNotDefaultKeyword()
271379

0 commit comments

Comments
 (0)