@@ -37,6 +37,32 @@ final class SingularLogicalRuleTest extends LogicalRuleTestCase
3737 */
3838 public static function data_provider (): array
3939 {
40+ /** @var list<RuleEvaluator> $ruleEvaluators */
41+ $ ruleEvaluators = [
42+ $ orRule = new OrRule ()
43+ ->addRule (
44+ $ andRule = new AndRule ()
45+ ->addRule ($ requiredRule = RequiredRule::make ())
46+ ->addRule ($ emailRule = EmailRule::make ())
47+ )
48+ ->addRule (
49+ $ nullableRule = NullableRule::make ()
50+ )
51+ ];
52+
53+ /** @var array<string, mixed> $validationTree */
54+ $ validationTree = [
55+ 'singular ' => [
56+ 'or ' => [
57+ 'and ' => [
58+ 'required ' => $ requiredRule ->validationMessage (),
59+ 'email ' => $ emailRule ->validationMessage ()
60+ ],
61+ 'nullable ' => $ nullableRule ->validationMessage ()
62+ ]
63+ ]
64+ ];
65+
4066 return [
4167 'Will throw an exception when trying to add more than one rule ' => [
4268 'logicalRuleClassString ' => SingularRule::class,
@@ -65,31 +91,11 @@ public static function data_provider(): array
6591 ],
6692 'Will be able to resolve complex validations using OrRule and AndRule ' => [
6793 'logicalRuleClassString ' => SingularRule::class,
68- 'ruleEvaluators ' => $ ruleEvaluators = [
69- $ orRule = new OrRule ()
70- ->addRule (
71- $ andRule = new AndRule ()
72- ->addRule ($ requiredRule = RequiredRule::make ())
73- ->addRule ($ emailRule = EmailRule::make ())
74- )
75- ->addRule (
76- $ nullableRule = NullableRule::make ()
77- )
78- ],
94+ 'ruleEvaluators ' => $ ruleEvaluators ,
7995 'expectedCreateException ' => null ,
8096 'valueToBeEvaluated ' =>
'[email protected] ' ,
8197 'expectedResult ' => true ,
82- 'expectedValidationMessageTree ' => $ validationTree = [
83- 'singular ' => [
84- 'or ' => [
85- 'and ' => [
86- 'required ' => $ requiredRule ->validationMessage (),
87- 'email ' => $ emailRule ->validationMessage ()
88- ],
89- 'nullable ' => $ nullableRule ->validationMessage ()
90- ]
91- ]
92- ]
98+ 'expectedValidationMessageTree ' => $ validationTree
9399 ],
94100 'Will be able to resolve complex validations using OrRule and AndRule 2 ' => [
95101 'logicalRuleClassString ' => SingularRule::class,
0 commit comments