/*
* Copyright (c) 2006-2011 Rogério Liesenfeld
* This file is subject to the terms of the MIT license (see LICENSE.txt).
*/
package mockit.emulation.hibernate3.ast.whereClause;
import java.util.*;
import mockit.emulation.hibernate3.ast.*;
import static org.junit.Assert.*;
import org.junit.*;
public final class ConstantExprTest
{
@Test
public void parseNUM_INT()
{
assertParseAndEvaluateConstant("4", 4);
}
@Test
public void parseNUM_LONG()
{
assertParseAndEvaluateConstant("9876543210", 9876543210L);
}
@Test
public void parseNUM_DOUBLE()
{
assertParseAndEvaluateConstant("987654321098.01", 987654321098.01);
}
@Test
public void parseQUOTED_STRING()
{
assertParseAndEvaluateConstant("'Test'", "Test");
}
@Test
public void parseNULL()
{
assertParseAndEvaluateConstant("null", null);
}
@Test
public void parseTRUE()
{
assertParseAndEvaluateConstant("true", true);
}
@Test
public void parseFALSE()
{
assertParseAndEvaluateConstant("false", false);
}
@Test
public void parseEMPTY()
{
assertParseAndEvaluateConstant("empty", Collections.EMPTY_SET);
}
private void assertParseAndEvaluateConstant(String token, Object value)
{
ConstantExpr expr = ConstantExpr.parse(new Tokens(token));
assertEquals(value, expr.value);
assertEquals(value, expr.evaluate(new QueryEval()));
}
public void parseNotAKnownConstant()
{
assertNull(ConstantExpr.parse(new Tokens("jsdf")));
}
}