Skip to content

Commit 9b47eeb

Browse files
committed
Tests/Tokenizer: add three more test cases to the switch keyword tests
This commit expands a bit the switch keyword tests by adding three more test cases: - switch with closure containing return type in the condition - switch with arrow function in the condition - switch with arrow function containing return type in the condition
1 parent 28530a0 commit 9b47eeb

File tree

2 files changed

+54
-3
lines changed

2 files changed

+54
-3
lines changed

tests/Core/Tokenizers/Tokenizer/RecurseScopeMapSwitchTokenScopeTest.inc

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,3 +32,26 @@ switch((function () {
3232
return 'test';
3333
/* testSwitchClosureWithinConditionScopeCloser */
3434
}
35+
36+
/* testSwitchClosureWithReturnTypeWithinCondition */
37+
switch((function (): string {
38+
return 'bar';
39+
})()) /* testSwitchClosureWithReturnTypeWithinConditionScopeOpener */ {
40+
case 1:
41+
return 'test';
42+
/* testSwitchClosureWithReturnTypeWithinConditionScopeCloser */
43+
}
44+
45+
/* testSwitchArrowFunctionWithinCondition */
46+
switch((fn() => 'bar')()) /* testSwitchArrowFunctionWithinConditionScopeOpener */ {
47+
case 1:
48+
return 'test';
49+
/* testSwitchArrowFunctionWithinConditionScopeCloser */
50+
}
51+
52+
/* testSwitchArrowFunctionWithReturnTypeWithinCondition */
53+
switch((fn(): string => 'bar')()) /* testSwitchArrowFunctionWithReturnTypeWithinConditionScopeOpener */ {
54+
case 1:
55+
return 'test';
56+
/* testSwitchArrowFunctionWithReturnTypeWithinConditionScopeCloser */
57+
}

tests/Core/Tokenizers/Tokenizer/RecurseScopeMapSwitchTokenScopeTest.php

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ public function testSwitchScope($testMarker, $expectedTokens, $testOpenerMarker=
9797
public static function dataSwitchScope()
9898
{
9999
return [
100-
'switch normal syntax' => [
100+
'switch normal syntax' => [
101101
'testMarker' => '/* testSwitchNormalSyntax */',
102102
'expectedTokens' => [
103103
'scope_opener' => T_OPEN_CURLY_BRACKET,
@@ -106,7 +106,7 @@ public static function dataSwitchScope()
106106
'testOpenerMarker' => '/* testSwitchNormalSyntaxScopeOpener */',
107107
'testCloserMarker' => '/* testSwitchNormalSyntaxScopeCloser */',
108108
],
109-
'switch alternative syntax' => [
109+
'switch alternative syntax' => [
110110
'testMarker' => '/* testSwitchAlternativeSyntax */',
111111
'expectedTokens' => [
112112
'scope_opener' => T_COLON,
@@ -115,7 +115,7 @@ public static function dataSwitchScope()
115115
'testOpenerMarker' => '/* testSwitchAlternativeSyntaxScopeOpener */',
116116
'testCloserMarker' => '/* testSwitchAlternativeSyntaxScopeCloser */',
117117
],
118-
'switch with closure in the condition' => [
118+
'switch with closure in the condition' => [
119119
'testMarker' => '/* testSwitchClosureWithinCondition */',
120120
'expectedTokens' => [
121121
'scope_opener' => T_OPEN_CURLY_BRACKET,
@@ -124,6 +124,34 @@ public static function dataSwitchScope()
124124
'testOpenerMarker' => '/* testSwitchClosureWithinConditionScopeOpener */',
125125
'testCloserMarker' => '/* testSwitchClosureWithinConditionScopeCloser */',
126126
],
127+
'switch with closure containing return type in the condition' => [
128+
'testMarker' => '/* testSwitchClosureWithReturnTypeWithinCondition */',
129+
'expectedTokens' => [
130+
'scope_opener' => T_OPEN_CURLY_BRACKET,
131+
'scope_closer' => T_CLOSE_CURLY_BRACKET,
132+
],
133+
'testOpenerMarker' => '/* testSwitchClosureWithReturnTypeWithinConditionScopeOpener */',
134+
'testCloserMarker' => '/* testSwitchClosureWithReturnTypeWithinConditionScopeCloser */',
135+
],
136+
'switch with arrow function in the condition' => [
137+
'testMarker' => '/* testSwitchArrowFunctionWithinCondition */',
138+
'expectedTokens' => [
139+
'scope_opener' => T_OPEN_CURLY_BRACKET,
140+
'scope_closer' => T_CLOSE_CURLY_BRACKET,
141+
],
142+
'testOpenerMarker' => '/* testSwitchArrowFunctionWithinConditionScopeOpener */',
143+
'testCloserMarker' => '/* testSwitchArrowFunctionWithinConditionScopeCloser */',
144+
],
145+
'switch with arrow function containing return type in the condition' => [
146+
'testMarker' => '/* testSwitchArrowFunctionWithReturnTypeWithinCondition */',
147+
'expectedTokens' => [
148+
'scope_opener' => T_OPEN_CURLY_BRACKET,
149+
'scope_closer' => T_CLOSE_CURLY_BRACKET,
150+
],
151+
'testOpenerMarker' => '/* testSwitchArrowFunctionWithReturnTypeWithinConditionScopeOpener */',
152+
'testCloserMarker' => '/* testSwitchArrowFunctionWithReturnTypeWithinConditionScopeCloser */',
153+
],
154+
127155
];
128156

129157
}//end dataSwitchScope()

0 commit comments

Comments
 (0)