You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@unomi.apache.org by sh...@apache.org on 2021/09/07 12:46:04 UTC
[unomi] branch master updated: fix conditionEvaluator inconsistent
with elastic for condition when property is not exist and op is "notIn"
(#301)
This is an automated email from the ASF dual-hosted git repository.
shuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/unomi.git
The following commit(s) were added to refs/heads/master by this push:
new d850dc2 fix conditionEvaluator inconsistent with elastic for condition when property is not exist and op is "notIn" (#301)
d850dc2 is described below
commit d850dc27e4e8703d2da375fdb973e8e0945ae75d
Author: giladw <gw...@yotpo.com>
AuthorDate: Tue Sep 7 15:45:59 2021 +0300
fix conditionEvaluator inconsistent with elastic for condition when property is not exist and op is "notIn" (#301)
---
itests/src/test/java/org/apache/unomi/itests/ConditionEvaluatorIT.java | 3 +++
.../plugins/baseplugin/conditions/PropertyConditionEvaluator.java | 2 +-
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/itests/src/test/java/org/apache/unomi/itests/ConditionEvaluatorIT.java b/itests/src/test/java/org/apache/unomi/itests/ConditionEvaluatorIT.java
index a1f93a6..427f45f 100644
--- a/itests/src/test/java/org/apache/unomi/itests/ConditionEvaluatorIT.java
+++ b/itests/src/test/java/org/apache/unomi/itests/ConditionEvaluatorIT.java
@@ -140,6 +140,9 @@ public class ConditionEvaluatorIT extends BaseIT {
assertTrue(eval(builder.profileProperty("properties.age").in(31, 30).build()));
assertTrue(eval(builder.profileProperty("properties.age").notIn(25, 26).build()));
assertFalse(eval(builder.profileProperty("properties.age").notIn(25, 30).build()));
+
+ assertTrue(eval(builder.profileProperty("properties.fieldNotExists").notIn(25, 30).build()));
+ assertTrue(eval(builder.profileProperty("properties.fieldNotExists").notEqualTo(1).build()));
}
@Test
diff --git a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionEvaluator.java b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionEvaluator.java
index 422778e..d5d0d20 100644
--- a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionEvaluator.java
+++ b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionEvaluator.java
@@ -206,7 +206,7 @@ public class PropertyConditionEvaluator implements ConditionEvaluator {
if (op == null) {
return false;
} else if (actualValue == null) {
- return op.equals("missing");
+ return op.equals("missing")|| op.equals("notIn") || op.equals("notEquals");
} else if (op.equals("exists")) {
if (actualValue instanceof List) {
return ((List) actualValue).size() > 0;