// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.indexinglanguage.expressions; import com.yahoo.document.DataType; import com.yahoo.document.datatypes.FieldValue; import com.yahoo.document.datatypes.IntegerFieldValue; import com.yahoo.document.datatypes.StringFieldValue; import com.yahoo.vespa.indexinglanguage.SimpleTestAdapter; import org.junit.Test; import static com.yahoo.vespa.indexinglanguage.expressions.ExpressionAssert.assertVerify; import static com.yahoo.vespa.indexinglanguage.expressions.ExpressionAssert.assertVerifyThrows; import static org.junit.Assert.*; /** * @author Simon Thoresen Hult */ public class ToStringTestCase { @Test public void requireThatHashCodeAndEqualsAreImplemented() { Expression exp = new ToStringExpression(); assertFalse(exp.equals(new Object())); assertEquals(exp, new ToStringExpression()); assertEquals(exp.hashCode(), new ToStringExpression().hashCode()); } @Test public void requireThatExpressionCanBeVerified() { Expression exp = new ToStringExpression(); assertVerify(DataType.INT, exp, DataType.STRING); assertVerify(DataType.STRING, exp, DataType.STRING); assertVerifyThrows(null, exp, "Expected any input, but no input is specified"); } @Test public void requireThatValueIsConverted() { ExecutionContext ctx = new ExecutionContext(new SimpleTestAdapter()); ctx.setValue(new IntegerFieldValue(69)).execute(new ToStringExpression()); FieldValue val = ctx.getValue(); assertTrue(val instanceof StringFieldValue); assertEquals("69", ((StringFieldValue)val).getString()); } }