aboutsummaryrefslogtreecommitdiffstats
path: root/indexinglanguage/src/test/java
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@gmail.com>2023-01-20 13:54:28 +0100
committerJon Bratseth <bratseth@gmail.com>2023-01-20 13:54:28 +0100
commit97707f8b011edf555776b6a6bf36d35458f583ae (patch)
treeaec9c68dd32e39241c34fdc1bfa270cdf19d4aa2 /indexinglanguage/src/test/java
parent1e29c4da6f91d13a6889d1b71058a09fcbb4eb43 (diff)
Support choice expressions
Diffstat (limited to 'indexinglanguage/src/test/java')
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ChoiceTestCase.java46
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ExactTestCase.java2
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/InputTestCase.java12
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/parser/ExpressionTestCase.java3
4 files changed, 52 insertions, 11 deletions
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ChoiceTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ChoiceTestCase.java
new file mode 100644
index 00000000000..6e3964e644e
--- /dev/null
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ChoiceTestCase.java
@@ -0,0 +1,46 @@
+package com.yahoo.vespa.indexinglanguage.expressions;
+
+import com.yahoo.document.DataType;
+import com.yahoo.document.Field;
+import com.yahoo.document.datatypes.StringFieldValue;
+import com.yahoo.vespa.indexinglanguage.SimpleTestAdapter;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+
+/**
+ * @author bratseth
+ */
+public class ChoiceTestCase {
+
+ @Test
+ public void testChoiceExecution() {
+ var choice = new ChoiceExpression(new InputExpression("foo"), new InputExpression("bar"));
+
+ { // foo only
+ var adapter = new SimpleTestAdapter(new Field("foo", DataType.STRING));
+ adapter.setValue("foo", new StringFieldValue("foo1"));
+ ExecutionContext context = new ExecutionContext(adapter);
+ choice.execute(context);
+ assertEquals("foo1", context.getValue().getWrappedValue());
+ }
+
+ { // bar only
+ var adapter = new SimpleTestAdapter(new Field("bar", DataType.STRING));
+ adapter.setValue("bar", new StringFieldValue("bar1"));
+ ExecutionContext context = new ExecutionContext(adapter);
+ choice.execute(context);
+ assertEquals("bar1", context.getValue().getWrappedValue());
+ }
+
+ { // both foo and bar
+ var adapter = new SimpleTestAdapter(new Field("foo", DataType.STRING), new Field("bar", DataType.STRING));
+ adapter.setValue("foo", new StringFieldValue("foo1"));
+ adapter.setValue("bar", new StringFieldValue("bar1"));
+ ExecutionContext context = new ExecutionContext(adapter);
+ choice.execute(context);
+ assertEquals("foo1", context.getValue().getWrappedValue());
+ }
+ }
+
+}
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ExactTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ExactTestCase.java
index 68661c7b341..e993f6cbdee 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ExactTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ExactTestCase.java
@@ -21,7 +21,7 @@ public class ExactTestCase {
@Test
public void requireThatHashCodeAndEqualsAreImplemented() {
Expression exp = new ExactExpression();
- assertFalse(exp.equals(new Object()));
+ assertNotEquals(exp, new Object());
assertEquals(exp, new ExactExpression());
assertEquals(exp.hashCode(), new ExactExpression().hashCode());
}
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/InputTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/InputTestCase.java
index 5752c373001..fe16e8d10ab 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/InputTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/InputTestCase.java
@@ -24,15 +24,9 @@ public class InputTestCase {
@Test
public void requireThatHashCodeAndEqualsAreImplemented() {
- Expression exp = new InputExpression(null);
- assertFalse(exp.equals(new Object()));
- assertFalse(exp.equals(new InputExpression("foo")));
- assertEquals(exp, new InputExpression(null));
- assertEquals(exp.hashCode(), new InputExpression(null).hashCode());
-
- exp = new InputExpression("foo");
- assertFalse(exp.equals(new Object()));
- assertFalse(exp.equals(new InputExpression("bar")));
+ Expression exp = new InputExpression("foo");
+ assertNotEquals(exp, new Object());
+ assertNotEquals(exp, new InputExpression("bar"));
assertEquals(exp, new InputExpression("foo"));
assertEquals(exp.hashCode(), new InputExpression("foo").hashCode());
}
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/parser/ExpressionTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/parser/ExpressionTestCase.java
index 7db026d43ee..551f770a01e 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/parser/ExpressionTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/parser/ExpressionTestCase.java
@@ -37,7 +37,7 @@ public class ExpressionTestCase {
assertExpression(IfThenExpression.class, "if (1 < 2) { 3 }");
assertExpression(IfThenExpression.class, "if (1 < 2) { 3 } else { 4 }");
assertExpression(IndexExpression.class, "index");
- assertExpression(InputExpression.class, "input");
+ assertExpression(InputExpression.class, "input foo");
assertExpression(InputExpression.class, "input field1");
assertExpression(JoinExpression.class, "join '1'");
assertExpression(LowerCaseExpression.class, "lowercase");
@@ -81,6 +81,7 @@ public class ExpressionTestCase {
assertExpression(ToWsetExpression.class, "to_wset remove_if_zero create_if_non_existent");
assertExpression(TrimExpression.class, "trim");
assertExpression(ZCurveExpression.class, "zcurve");
+ assertExpression(ChoiceExpression.class, "input foo || \"\"");
}
private static void assertExpression(Class expectedClass, String str) throws ParseException {