@@ -351,4 +351,122 @@ public function testExplodeHandlesSegmentingNestedRules()
351351 ],
352352 ], $ results ->implicitAttributes );
353353 }
354+
355+ public function testExplodeHandlesStringDateRule ()
356+ {
357+ $ parser = (new ValidationRuleParser ([
358+ 'date ' => '2021-01-01 ' ,
359+ ]));
360+
361+ $ rules = [
362+ 'date ' => 'date|date_format:Y-m-d ' ,
363+ ];
364+
365+ $ results = $ parser ->explode ($ rules );
366+
367+ $ this ->assertEquals ([
368+ 'date ' => [
369+ 'date ' ,
370+ 'date_format:Y-m-d ' ,
371+ ],
372+ ], $ results ->rules );
373+ }
374+
375+ public function testExplodeHandlesDateRule ()
376+ {
377+ $ parser = (new ValidationRuleParser ([
378+ 'date ' => '2021-01-01 ' ,
379+ ]));
380+
381+ $ rules = [
382+ 'date ' => Rule::date (),
383+ ];
384+
385+ $ results = $ parser ->explode ($ rules );
386+
387+ $ this ->assertEquals ([
388+ 'date ' => [
389+ 'date ' ,
390+ ],
391+ ], $ results ->rules );
392+ }
393+
394+ public function testExplodeHandlesDateRuleWithAdditionalRules ()
395+ {
396+ $ parser = (new ValidationRuleParser ([
397+ 'date ' => '2021-01-01 ' ,
398+ ]));
399+
400+ $ rules = [
401+ 'date ' => Rule::date ()->format ('Y-m-d ' ),
402+ ];
403+
404+ $ results = $ parser ->explode ($ rules );
405+
406+ $ this ->assertEquals ([
407+ 'date ' => [
408+ 'date ' ,
409+ 'date_format:Y-m-d ' ,
410+ ],
411+ ], $ results ->rules );
412+ }
413+
414+ public function testExplodeHandlesNumericStringRule ()
415+ {
416+ $ parser = (new ValidationRuleParser ([
417+ 'number ' => 42 ,
418+ ]));
419+
420+ $ rules = [
421+ 'number ' => 'numeric|max:100 ' ,
422+ ];
423+
424+ $ results = $ parser ->explode ($ rules );
425+
426+ $ this ->assertEquals ([
427+ 'number ' => [
428+ 'numeric ' ,
429+ 'max:100 ' ,
430+ ],
431+ ], $ results ->rules );
432+ }
433+
434+ public function testExplodeHandlesNumericRule ()
435+ {
436+ $ parser = (new ValidationRuleParser ([
437+ 'number ' => 42 ,
438+ ]));
439+
440+ $ rules = [
441+ 'number ' => Rule::numeric (),
442+ ];
443+
444+ $ results = $ parser ->explode ($ rules );
445+
446+ $ this ->assertEquals ([
447+ 'number ' => [
448+ 'numeric ' ,
449+ ],
450+ ], $ results ->rules );
451+ }
452+
453+ public function testExplodeHandlesNumericRuleWithAdditionalRules ()
454+ {
455+ $ parser = (new ValidationRuleParser ([
456+ 'number ' => 42 ,
457+ ]));
458+
459+ $ rules = [
460+ 'number ' => Rule::numeric ()->max (100 ),
461+ ];
462+
463+ $ results = $ parser ->explode ($ rules );
464+
465+ $ this ->assertEquals ([
466+ 'number ' => [
467+ 'numeric ' ,
468+ 'max:100 ' ,
469+ ],
470+ ], $ results ->rules );
471+ }
354472}
0 commit comments