summaryrefslogtreecommitdiffstats
path: root/indexinglanguage
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@gmail.com>2023-01-20 14:14:59 +0100
committerJon Bratseth <bratseth@gmail.com>2023-01-20 14:14:59 +0100
commit38601ad6dc68f35fb3c0f0d09e9a451d9cd1186a (patch)
tree148ea26cfddcb62e1f918f0179d5cec1a301b638 /indexinglanguage
parent97707f8b011edf555776b6a6bf36d35458f583ae (diff)
More tests
Diffstat (limited to 'indexinglanguage')
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ScriptTestCase.java48
-rw-r--r--indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/StatementTestCase.java13
2 files changed, 47 insertions, 14 deletions
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ScriptTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ScriptTestCase.java
index 2a69f094691..c648bb12ede 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ScriptTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/ScriptTestCase.java
@@ -4,6 +4,7 @@ package com.yahoo.vespa.indexinglanguage.expressions;
import com.yahoo.document.DataType;
import com.yahoo.document.Field;
import com.yahoo.document.datatypes.IntegerFieldValue;
+import com.yahoo.document.datatypes.StringFieldValue;
import com.yahoo.vespa.indexinglanguage.SimpleTestAdapter;
import org.junit.Test;
@@ -39,13 +40,13 @@ public class ScriptTestCase {
StatementExpression foo = newStatement(new AttributeExpression("foo"));
StatementExpression bar = newStatement(new AttributeExpression("bar"));
Expression exp = newScript(foo, bar);
- assertFalse(exp.equals(new Object()));
- assertFalse(exp.equals(new CatExpression(foo, bar)));
- assertFalse(exp.equals(newScript(newStatement(new IndexExpression("foo")))));
- assertFalse(exp.equals(newScript(newStatement(new IndexExpression("foo")),
- newStatement(new IndexExpression("bar")))));
- assertFalse(exp.equals(newScript(newStatement(foo),
- newStatement(new IndexExpression("bar")))));
+ assertNotEquals(exp, new Object());
+ assertNotEquals(exp, new CatExpression(foo, bar));
+ assertNotEquals(exp, newScript(newStatement(new IndexExpression("foo"))));
+ assertNotEquals(exp, newScript(newStatement(new IndexExpression("foo")),
+ newStatement(new IndexExpression("bar"))));
+ assertNotEquals(exp, newScript(newStatement(foo),
+ newStatement(new IndexExpression("bar"))));
assertEquals(exp, newScript(foo, bar));
assertEquals(exp.hashCode(), newScript(foo, bar).hashCode());
}
@@ -74,6 +75,19 @@ public class ScriptTestCase {
}
@Test
+ public void requireThatStatementsProcessingMissingInputsAreSkipped() {
+ SimpleTestAdapter adapter = new SimpleTestAdapter(new Field("foo", DataType.STRING),
+ new Field("bar", DataType.STRING));
+ adapter.setValue("foo", new StringFieldValue("foo1"));
+ ExecutionContext context = new ExecutionContext(adapter);
+ // The latter expression is not executed, so no exception is thrown
+ var script = new ScriptExpression(newStatement(new InputExpression("foo"), new AttributeExpression("foo")),
+ newStatement(new InputExpression("bar"), new ThrowingExpression()));
+ script.execute(context);
+ assertEquals("foo1", adapter.getInputValue("foo").getWrappedValue());
+ }
+
+ @Test
public void requireThatScriptEvaluatesToInputValue() {
SimpleTestAdapter adapter = new SimpleTestAdapter(new Field("out", DataType.INT));
newStatement(new SetValueExpression(new IntegerFieldValue(6)),
@@ -121,4 +135,24 @@ public class ScriptTestCase {
private static StatementExpression newStatement(Expression... args) {
return new StatementExpression(args);
}
+
+ private static class ThrowingExpression extends Expression {
+
+ public ThrowingExpression() {
+ super(null);
+ }
+
+ @Override
+ protected void doExecute(ExecutionContext context) {
+ throw new RuntimeException();
+ }
+
+ @Override
+ protected void doVerify(VerificationContext context) {}
+
+ @Override
+ public DataType createdOutputType() { return null; }
+
+ }
+
}
diff --git a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/StatementTestCase.java b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/StatementTestCase.java
index 2bede31d057..1a1442f68ac 100644
--- a/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/StatementTestCase.java
+++ b/indexinglanguage/src/test/java/com/yahoo/vespa/indexinglanguage/expressions/StatementTestCase.java
@@ -39,13 +39,11 @@ public class StatementTestCase {
Expression foo = new AttributeExpression("foo");
Expression bar = new AttributeExpression("bar");
Expression exp = newStatement(foo, bar);
- assertFalse(exp.equals(new Object()));
- assertFalse(exp.equals(new CatExpression(foo, bar)));
- assertFalse(exp.equals(newStatement(new IndexExpression("foo"))));
- assertFalse(exp.equals(newStatement(new IndexExpression("foo"),
- new IndexExpression("bar"))));
- assertFalse(exp.equals(newStatement(foo,
- new IndexExpression("bar"))));
+ assertNotEquals(exp, new Object());
+ assertNotEquals(exp, new CatExpression(foo, bar));
+ assertNotEquals(exp, newStatement(new IndexExpression("foo")));
+ assertNotEquals(exp, newStatement(new IndexExpression("foo"), new IndexExpression("bar")));
+ assertNotEquals(exp, newStatement(foo, new IndexExpression("bar")));
assertEquals(exp, newStatement(foo, bar));
assertEquals(exp.hashCode(), newStatement(foo, bar).hashCode());
}
@@ -117,4 +115,5 @@ public class StatementTestCase {
private static StatementExpression newStatement(Expression... args) {
return new StatementExpression(args);
}
+
}