Skip to content

Commit 488e12a

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 give test to fail.
1 parent 89931ac commit 488e12a

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

@@ -134,34 +150,110 @@ public function testSwitchDefault($testMarker, $openerOffset, $closerOffset, $co
134150
$expectedScopeCloser = ($token + $closerOffset);
135151

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

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

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

166258
if (($opener + 1) !== $closer) {
167259
$end = $closer;
@@ -173,7 +265,7 @@ public function testSwitchDefault($testMarker, $openerOffset, $closerOffset, $co
173265
$this->assertArrayHasKey(
174266
$token,
175267
$tokens[$i]['conditions'],
176-
'T_DEFAULT condition not added for token belonging to the T_DEFAULT structure'
268+
sprintf('T_DEFAULT condition not added for token belonging to the T_DEFAULT structure. Marker: %s.', $testMarker)
177269
);
178270
}
179271
}
@@ -260,11 +352,27 @@ public function testNotDefaultKeyword($testMarker, $testContent='DEFAULT')
260352
$tokenArray = $tokens[$token];
261353

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

269377
}//end testNotDefaultKeyword()
270378

0 commit comments

Comments
 (0)