@@ -144,18 +144,6 @@ public function testExplodeFailsParsingRegexWithOtherRulesInSingleString()
144
144
$ this ->assertSame ('bar)$/i ' , $ exploded ->rules ['items.0.type ' ][2 ]);
145
145
}
146
146
147
- public function testExplodeProperlyFlattensRuleArraysOfArrays ()
148
- {
149
- $ data = ['items ' => [['type ' => 'foo ' ]]];
150
-
151
- $ exploded = (new ValidationRuleParser ($ data ))->explode (
152
- ['items.*.type ' => ['in:foo ' , [[['regex:/^(foo|bar)$/i ' ]]]]]
153
- );
154
-
155
- $ this ->assertSame ('in:foo ' , $ exploded ->rules ['items.0.type ' ][0 ]);
156
- $ this ->assertSame ('regex:/^(foo|bar)$/i ' , $ exploded ->rules ['items.0.type ' ][1 ]);
157
- }
158
-
159
147
public function testExplodeGeneratesNestedRules ()
160
148
{
161
149
$ parser = (new ValidationRuleParser ([
@@ -208,28 +196,19 @@ public function testExplodeHandlesArraysOfNestedRules()
208
196
]));
209
197
210
198
$ results = $ parser ->explode ([
211
- 'users.*.name ' => [
212
- Rule::forEach (function ($ value , $ attribute , $ data ) {
213
- $ this ->assertEquals ([
214
- 'users.0.name ' => 'Taylor Otwell ' ,
215
- 'users.1.name ' => 'Abigail Otwell ' ,
216
- ], $ data );
217
-
218
- return [Rule::requiredIf (true )];
219
- }),
220
- Rule::forEach (function ($ value , $ attribute , $ data ) {
199
+ 'users.*.name ' => Rule::forEach (function ($ value , $ attribute , $ data ) {
221
200
$ this ->assertEquals ([
222
201
'users.0.name ' => 'Taylor Otwell ' ,
223
202
'users.1.name ' => 'Abigail Otwell ' ,
224
203
], $ data );
225
204
226
205
return [
206
+ Rule::requiredIf (true ),
227
207
$ value === 'Taylor Otwell '
228
208
? Rule::in ('taylor ' )
229
209
: Rule::in ('abigail ' ),
230
210
];
231
211
}),
232
- ],
233
212
]);
234
213
235
214
$ this ->assertEquals ([
@@ -240,8 +219,6 @@ public function testExplodeHandlesArraysOfNestedRules()
240
219
$ this ->assertEquals ([
241
220
'users.*.name ' => [
242
221
'users.0.name ' ,
243
- 'users.0.name ' ,
244
- 'users.1.name ' ,
245
222
'users.1.name ' ,
246
223
],
247
224
], $ results ->implicitAttributes );
@@ -254,9 +231,13 @@ public function testExplodeHandlesRecursivelyNestedRules()
254
231
]));
255
232
256
233
$ results = $ parser ->explode ([
257
- 'users.*.name ' => [
258
- Rule::forEach (function ($ value , $ attribute , $ data ) {
259
- $ this ->assertSame ('Taylor Otwell ' , $ value );
234
+ 'users.*.name ' => Rule::forEach (function ($ value , $ attribute , $ data ) {
235
+ $ this ->assertSame ('Taylor Otwell ' , $ value );
236
+ $ this ->assertSame ('users.0.name ' , $ attribute );
237
+ $ this ->assertEquals (['users.0.name ' => 'Taylor Otwell ' ], $ data );
238
+
239
+ return Rule::forEach (function ($ value , $ attribute , $ data ) {
240
+ $ this ->assertNull ($ value );
260
241
$ this ->assertSame ('users.0.name ' , $ attribute );
261
242
$ this ->assertEquals (['users.0.name ' => 'Taylor Otwell ' ], $ data );
262
243
@@ -265,16 +246,10 @@ public function testExplodeHandlesRecursivelyNestedRules()
265
246
$ this ->assertSame ('users.0.name ' , $ attribute );
266
247
$ this ->assertEquals (['users.0.name ' => 'Taylor Otwell ' ], $ data );
267
248
268
- return Rule::forEach (function ($ value , $ attribute , $ data ) {
269
- $ this ->assertNull ($ value );
270
- $ this ->assertSame ('users.0.name ' , $ attribute );
271
- $ this ->assertEquals (['users.0.name ' => 'Taylor Otwell ' ], $ data );
272
-
273
- return [Rule::requiredIf (true )];
274
- });
249
+ return [Rule::requiredIf (true )];
275
250
});
276
- }),
277
- ] ,
251
+ });
252
+ }) ,
278
253
]);
279
254
280
255
$ this ->assertEquals (['users.0.name ' => ['required ' ]], $ results ->rules );
0 commit comments