UNOMI-596: add missing property accessor for making condition working on flattenedProperties (#439)
diff --git a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/accessors/EventAccessor.java b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/accessors/EventAccessor.java
index ba10bd9..e8c53d0 100644
--- a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/accessors/EventAccessor.java
+++ b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/accessors/EventAccessor.java
@@ -30,6 +30,9 @@
if ("properties".equals(propertyName)) {
return registry.getProperty(object.getProperties(), leftoverExpression);
}
+ if ("flattenedProperties".equals(propertyName)) {
+ return registry.getProperty(object.getFlattenedProperties(), leftoverExpression);
+ }
if ("eventType".equals(propertyName)) {
return object.getEventType();
}
diff --git a/plugins/baseplugin/src/test/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionEvaluatorTest.java b/plugins/baseplugin/src/test/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionEvaluatorTest.java
index a236d4f..84eeae3 100644
--- a/plugins/baseplugin/src/test/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionEvaluatorTest.java
+++ b/plugins/baseplugin/src/test/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionEvaluatorTest.java
@@ -104,6 +104,13 @@
}
@Test
+ public void testFlattenedProperties() {
+ Event mockEvent = generateMockEvent(mockProfile, mockSession);
+ mockEvent.getFlattenedProperties().put("test", "test");
+ assertEquals("FlattenedProperties should be readable form accessor", "test", propertyConditionEvaluator.getHardcodedPropertyValue(mockEvent, "flattenedProperties.test"));
+ }
+
+ @Test
public void testOGNLEvaluator() throws Exception {
Event mockEvent = generateMockEvent(mockProfile, mockSession);
assertEquals("Target itemId value is not correct", MOCK_ITEM_ID, propertyConditionEvaluator.getOGNLPropertyValue(mockEvent, "target.itemId"));