Skip to content

Commit 615e25a

Browse files
authored
Merge pull request #902 from rodrigoprimo/display-test-markers-in-error-messages
Tests/Tokenizer: make it easier to debug recurseScopeMap() `default` keyword tests
2 parents 79238b1 + 43a003e commit 615e25a

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
@@ -37,11 +37,27 @@ public function testMatchDefault($testMarker, $testContent='default')
3737
$tokenArray = $tokens[$token];
3838

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

4662
}//end testMatchDefault()
4763

@@ -133,34 +149,110 @@ public function testSwitchDefault($testMarker, $openerOffset, $closerOffset, $co
133149
$expectedScopeCloser = ($token + $closerOffset);
134150

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

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

153221
$closer = $expectedScopeCloser;
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');
163-
}
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+
);
255+
}//end if
164256

165257
if (($opener + 1) !== $closer) {
166258
$end = $closer;
@@ -172,7 +264,7 @@ public function testSwitchDefault($testMarker, $openerOffset, $closerOffset, $co
172264
$this->assertArrayHasKey(
173265
$token,
174266
$tokens[$i]['conditions'],
175-
'T_DEFAULT condition not added for token belonging to the T_DEFAULT structure'
267+
sprintf('T_DEFAULT condition not added for token belonging to the T_DEFAULT structure. Marker: %s.', $testMarker)
176268
);
177269
}
178270
}
@@ -257,11 +349,27 @@ public function testNotDefaultKeyword($testMarker, $testContent='DEFAULT')
257349
$tokenArray = $tokens[$token];
258350

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

266374
}//end testNotDefaultKeyword()
267375

0 commit comments

Comments
 (0)