Skip to content

Commit 21afc77

Browse files
committed
Tests/IsReferenceTest: use named data sets
With non-named data sets, when a test fails, PHPUnit will display the number of the test which failed. With tests which have a _lot_ of data sets, this makes it _interesting_ (and time-consuming) to debug those, as one now has to figure out which of the data sets in the data provider corresponds to that number. Using named data sets makes debugging failing tests more straight forward as PHPUnit will display the data set name instead of the number. Using named data sets also documents what exactly each data set is testing. Aside from adding the data set name, this commit also adds the parameter name for each item in the data set, this time in an effort to make it more straight forward to update and add tests as it will be more obvious what each key in the data set signifies. Includes making the data type in the docblock more specific.
1 parent b43fb8e commit 21afc77

File tree

1 file changed

+148
-148
lines changed

1 file changed

+148
-148
lines changed

tests/Core/File/IsReferenceTest.php

Lines changed: 148 additions & 148 deletions
Original file line numberDiff line numberDiff line change
@@ -44,206 +44,206 @@ public function testIsReference($identifier, $expected)
4444
*
4545
* @see testIsReference()
4646
*
47-
* @return array
47+
* @return array<string, array<string, string|bool>>
4848
*/
4949
public function dataIsReference()
5050
{
5151
return [
52-
[
53-
'/* testBitwiseAndA */',
54-
false,
52+
'bitwise and: param in function call' => [
53+
'testMarker' => '/* testBitwiseAndA */',
54+
'expected' => false,
5555
],
56-
[
57-
'/* testBitwiseAndB */',
58-
false,
56+
'bitwise and: in unkeyed short array, first value' => [
57+
'testMarker' => '/* testBitwiseAndB */',
58+
'expected' => false,
5959
],
60-
[
61-
'/* testBitwiseAndC */',
62-
false,
60+
'bitwise and: in unkeyed short array, last value' => [
61+
'testMarker' => '/* testBitwiseAndC */',
62+
'expected' => false,
6363
],
64-
[
65-
'/* testBitwiseAndD */',
66-
false,
64+
'bitwise and: in unkeyed long array, last value' => [
65+
'testMarker' => '/* testBitwiseAndD */',
66+
'expected' => false,
6767
],
68-
[
69-
'/* testBitwiseAndE */',
70-
false,
68+
'bitwise and: in keyed short array, last value' => [
69+
'testMarker' => '/* testBitwiseAndE */',
70+
'expected' => false,
7171
],
72-
[
73-
'/* testBitwiseAndF */',
74-
false,
72+
'bitwise and: in keyed long array, last value' => [
73+
'testMarker' => '/* testBitwiseAndF */',
74+
'expected' => false,
7575
],
76-
[
77-
'/* testBitwiseAndG */',
78-
false,
76+
'bitwise and: in assignment' => [
77+
'testMarker' => '/* testBitwiseAndG */',
78+
'expected' => false,
7979
],
80-
[
81-
'/* testBitwiseAndH */',
82-
false,
80+
'bitwise and: in param default value in function declaration' => [
81+
'testMarker' => '/* testBitwiseAndH */',
82+
'expected' => false,
8383
],
84-
[
85-
'/* testBitwiseAndI */',
86-
false,
84+
'bitwise and: in param default value in closure declaration' => [
85+
'testMarker' => '/* testBitwiseAndI */',
86+
'expected' => false,
8787
],
88-
[
89-
'/* testFunctionReturnByReference */',
90-
true,
88+
'reference: function declared to return by reference' => [
89+
'testMarker' => '/* testFunctionReturnByReference */',
90+
'expected' => true,
9191
],
92-
[
93-
'/* testFunctionPassByReferenceA */',
94-
true,
92+
'reference: only param in function declaration, pass by reference' => [
93+
'testMarker' => '/* testFunctionPassByReferenceA */',
94+
'expected' => true,
9595
],
96-
[
97-
'/* testFunctionPassByReferenceB */',
98-
true,
96+
'reference: last param in function declaration, pass by reference' => [
97+
'testMarker' => '/* testFunctionPassByReferenceB */',
98+
'expected' => true,
9999
],
100-
[
101-
'/* testFunctionPassByReferenceC */',
102-
true,
100+
'reference: only param in closure declaration, pass by reference' => [
101+
'testMarker' => '/* testFunctionPassByReferenceC */',
102+
'expected' => true,
103103
],
104-
[
105-
'/* testFunctionPassByReferenceD */',
106-
true,
104+
'reference: last param in closure declaration, pass by reference' => [
105+
'testMarker' => '/* testFunctionPassByReferenceD */',
106+
'expected' => true,
107107
],
108-
[
109-
'/* testFunctionPassByReferenceE */',
110-
true,
108+
'reference: typed param in function declaration, pass by reference' => [
109+
'testMarker' => '/* testFunctionPassByReferenceE */',
110+
'expected' => true,
111111
],
112-
[
113-
'/* testFunctionPassByReferenceF */',
114-
true,
112+
'reference: typed param in closure declaration, pass by reference' => [
113+
'testMarker' => '/* testFunctionPassByReferenceF */',
114+
'expected' => true,
115115
],
116-
[
117-
'/* testFunctionPassByReferenceG */',
118-
true,
116+
'reference: variadic param in function declaration, pass by reference' => [
117+
'testMarker' => '/* testFunctionPassByReferenceG */',
118+
'expected' => true,
119119
],
120-
[
121-
'/* testForeachValueByReference */',
122-
true,
120+
'reference: foreach value' => [
121+
'testMarker' => '/* testForeachValueByReference */',
122+
'expected' => true,
123123
],
124-
[
125-
'/* testForeachKeyByReference */',
126-
true,
124+
'reference: foreach key' => [
125+
'testMarker' => '/* testForeachKeyByReference */',
126+
'expected' => true,
127127
],
128-
[
129-
'/* testArrayValueByReferenceA */',
130-
true,
128+
'reference: keyed short array, first value, value by reference' => [
129+
'testMarker' => '/* testArrayValueByReferenceA */',
130+
'expected' => true,
131131
],
132-
[
133-
'/* testArrayValueByReferenceB */',
134-
true,
132+
'reference: keyed short array, last value, value by reference' => [
133+
'testMarker' => '/* testArrayValueByReferenceB */',
134+
'expected' => true,
135135
],
136-
[
137-
'/* testArrayValueByReferenceC */',
138-
true,
136+
'reference: unkeyed short array, only value, value by reference' => [
137+
'testMarker' => '/* testArrayValueByReferenceC */',
138+
'expected' => true,
139139
],
140-
[
141-
'/* testArrayValueByReferenceD */',
142-
true,
140+
'reference: unkeyed short array, last value, value by reference' => [
141+
'testMarker' => '/* testArrayValueByReferenceD */',
142+
'expected' => true,
143143
],
144-
[
145-
'/* testArrayValueByReferenceE */',
146-
true,
144+
'reference: keyed long array, first value, value by reference' => [
145+
'testMarker' => '/* testArrayValueByReferenceE */',
146+
'expected' => true,
147147
],
148-
[
149-
'/* testArrayValueByReferenceF */',
150-
true,
148+
'reference: keyed long array, last value, value by reference' => [
149+
'testMarker' => '/* testArrayValueByReferenceF */',
150+
'expected' => true,
151151
],
152-
[
153-
'/* testArrayValueByReferenceG */',
154-
true,
152+
'reference: unkeyed long array, only value, value by reference' => [
153+
'testMarker' => '/* testArrayValueByReferenceG */',
154+
'expected' => true,
155155
],
156-
[
157-
'/* testArrayValueByReferenceH */',
158-
true,
156+
'reference: unkeyed long array, last value, value by reference' => [
157+
'testMarker' => '/* testArrayValueByReferenceH */',
158+
'expected' => true,
159159
],
160-
[
161-
'/* testAssignByReferenceA */',
162-
true,
160+
'reference: variable, assign by reference' => [
161+
'testMarker' => '/* testAssignByReferenceA */',
162+
'expected' => true,
163163
],
164-
[
165-
'/* testAssignByReferenceB */',
166-
true,
164+
'reference: variable, assign by reference, spacing variation' => [
165+
'testMarker' => '/* testAssignByReferenceB */',
166+
'expected' => true,
167167
],
168-
[
169-
'/* testAssignByReferenceC */',
170-
true,
168+
'reference: variable, assign by reference, concat assign' => [
169+
'testMarker' => '/* testAssignByReferenceC */',
170+
'expected' => true,
171171
],
172-
[
173-
'/* testAssignByReferenceD */',
174-
true,
172+
'reference: property, assign by reference' => [
173+
'testMarker' => '/* testAssignByReferenceD */',
174+
'expected' => true,
175175
],
176-
[
177-
'/* testAssignByReferenceE */',
178-
true,
176+
'reference: function return value, assign by reference' => [
177+
'testMarker' => '/* testAssignByReferenceE */',
178+
'expected' => true,
179179
],
180-
[
181-
'/* testPassByReferenceA */',
182-
true,
180+
'reference: first param in function call, pass by reference' => [
181+
'testMarker' => '/* testPassByReferenceA */',
182+
'expected' => true,
183183
],
184-
[
185-
'/* testPassByReferenceB */',
186-
true,
184+
'reference: last param in function call, pass by reference' => [
185+
'testMarker' => '/* testPassByReferenceB */',
186+
'expected' => true,
187187
],
188-
[
189-
'/* testPassByReferenceC */',
190-
true,
188+
'reference: property in function call, pass by reference' => [
189+
'testMarker' => '/* testPassByReferenceC */',
190+
'expected' => true,
191191
],
192-
[
193-
'/* testPassByReferenceD */',
194-
true,
192+
'reference: hierarchical self property in function call, pass by reference' => [
193+
'testMarker' => '/* testPassByReferenceD */',
194+
'expected' => true,
195195
],
196-
[
197-
'/* testPassByReferenceE */',
198-
true,
196+
'reference: hierarchical parent property in function call, pass by reference' => [
197+
'testMarker' => '/* testPassByReferenceE */',
198+
'expected' => true,
199199
],
200-
[
201-
'/* testPassByReferenceF */',
202-
true,
200+
'reference: hierarchical static property in function call, pass by reference' => [
201+
'testMarker' => '/* testPassByReferenceF */',
202+
'expected' => true,
203203
],
204-
[
205-
'/* testPassByReferenceG */',
206-
true,
204+
'reference: static property in function call, pass by reference' => [
205+
'testMarker' => '/* testPassByReferenceG */',
206+
'expected' => true,
207207
],
208-
[
209-
'/* testPassByReferenceH */',
210-
true,
208+
'reference: static property in function call, first with FQN, pass by reference' => [
209+
'testMarker' => '/* testPassByReferenceH */',
210+
'expected' => true,
211211
],
212-
[
213-
'/* testPassByReferenceI */',
214-
true,
212+
'reference: static property in function call, last with FQN, pass by reference' => [
213+
'testMarker' => '/* testPassByReferenceI */',
214+
'expected' => true,
215215
],
216-
[
217-
'/* testPassByReferenceJ */',
218-
true,
216+
'reference: static property in function call, last with namespace relative name, pass by reference' => [
217+
'testMarker' => '/* testPassByReferenceJ */',
218+
'expected' => true,
219219
],
220-
[
221-
'/* testNewByReferenceA */',
222-
true,
220+
'reference: new by reference' => [
221+
'testMarker' => '/* testNewByReferenceA */',
222+
'expected' => true,
223223
],
224-
[
225-
'/* testNewByReferenceB */',
226-
true,
224+
'reference: new by reference as function call param' => [
225+
'testMarker' => '/* testNewByReferenceB */',
226+
'expected' => true,
227227
],
228-
[
229-
'/* testUseByReference */',
230-
true,
228+
'reference: closure use by reference' => [
229+
'testMarker' => '/* testUseByReference */',
230+
'expected' => true,
231231
],
232-
[
233-
'/* testArrowFunctionReturnByReference */',
234-
true,
232+
'reference: arrow fn declared to return by reference' => [
233+
'testMarker' => '/* testArrowFunctionReturnByReference */',
234+
'expected' => true,
235235
],
236-
[
237-
'/* testArrowFunctionPassByReferenceA */',
238-
true,
236+
'reference: typed param in arrow fn declaration, pass by reference' => [
237+
'testMarker' => '/* testArrowFunctionPassByReferenceA */',
238+
'expected' => true,
239239
],
240-
[
241-
'/* testArrowFunctionPassByReferenceB */',
242-
true,
240+
'reference: variadic param in arrow fn declaration, pass by reference' => [
241+
'testMarker' => '/* testArrowFunctionPassByReferenceB */',
242+
'expected' => true,
243243
],
244-
[
245-
'/* testClosureReturnByReference */',
246-
true,
244+
'reference: closure declared to return by reference' => [
245+
'testMarker' => '/* testClosureReturnByReference */',
246+
'expected' => true,
247247
],
248248
];
249249

0 commit comments

Comments
 (0)