Skip to content

Commit 7b7b233

Browse files
rickardkatz-seRickard Katzjamsesso
authored
The "all" operation will fail with "first argument to all must be a valid array" (#42)
Added tests for different "all in" cases. Co-authored-by: Rickard Katz <[email protected]> Co-authored-by: Sam Jesso <[email protected]>
1 parent 15b2805 commit 7b7b233

File tree

2 files changed

+118
-0
lines changed

2 files changed

+118
-0
lines changed

src/main/java/io/github/jamsesso/jsonlogic/evaluator/expressions/AllExpression.java

+4
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,10 @@ public Object evaluate(JsonLogicEvaluator evaluator, JsonLogicArray arguments, O
2828

2929
Object maybeArray = evaluator.evaluate(arguments.get(0), data);
3030

31+
if (maybeArray == null) {
32+
return false;
33+
}
34+
3135
if (!ArrayLike.isEligible(maybeArray)) {
3236
throw new JsonLogicEvaluationException("first argument to all must be a valid array");
3337
}

src/test/resources/fixtures.json

+114
Original file line numberDiff line numberDiff line change
@@ -3711,5 +3711,119 @@
37113711
"items": []
37123712
},
37133713
false
3714+
],
3715+
[
3716+
{
3717+
"all": [
3718+
{
3719+
"var": ""
3720+
},
3721+
{
3722+
"in": [
3723+
{
3724+
"var": ""
3725+
},
3726+
["item1","item2","item3"]
3727+
]
3728+
}
3729+
]
3730+
},
3731+
[],
3732+
false
3733+
],
3734+
[
3735+
{
3736+
"all": [
3737+
{
3738+
"var": ""
3739+
},
3740+
{
3741+
"in": [
3742+
{
3743+
"var": ""
3744+
},
3745+
["item1","item2","item3"]
3746+
]
3747+
}
3748+
]
3749+
},
3750+
["item1"],
3751+
true
3752+
],
3753+
[
3754+
{
3755+
"all": [
3756+
{
3757+
"var": ""
3758+
},
3759+
{
3760+
"in": [
3761+
{
3762+
"var": ""
3763+
},
3764+
["item1","item2","item3"]
3765+
]
3766+
}
3767+
]
3768+
},
3769+
["item4"],
3770+
false
3771+
],
3772+
[
3773+
{
3774+
"all": [
3775+
{
3776+
"var": "item"
3777+
},
3778+
{
3779+
"in": [
3780+
{
3781+
"var": ""
3782+
},
3783+
["item1","item2","item3"]
3784+
]
3785+
}
3786+
]
3787+
},
3788+
{},
3789+
false
3790+
],
3791+
[
3792+
{
3793+
"all": [
3794+
{
3795+
"var": "item"
3796+
},
3797+
{
3798+
"in": [
3799+
{
3800+
"var": ""
3801+
},
3802+
["item1","item2","item3"]
3803+
]
3804+
}
3805+
]
3806+
},
3807+
{ "item": ["item1"] },
3808+
true
3809+
],
3810+
[
3811+
{
3812+
"all": [
3813+
{
3814+
"var": "item"
3815+
},
3816+
{
3817+
"in": [
3818+
{
3819+
"var": ""
3820+
},
3821+
["item1","item2","item3"]
3822+
]
3823+
}
3824+
]
3825+
},
3826+
{ "item": ["item4"] },
3827+
false
37143828
]
37153829
]

0 commit comments

Comments
 (0)