@Test public void testNoParams2() throws Exception { List list = new ArrayList(); list.add(ExpressionFactory.matchExp("k1", new ExpressionParameter("test1"))); list.add(ExpressionFactory.matchExp("k2", new ExpressionParameter("test2"))); list.add(ExpressionFactory.matchExp("k3", new ExpressionParameter("test3"))); list.add(ExpressionFactory.matchExp("k4", new ExpressionParameter("test4"))); Expression e1 = ExpressionFactory.or(list); Map params = new HashMap(); params.put("test2", "abc"); params.put("test3", "xyz"); Expression e2 = e1.params(params); // some expression nodes must be pruned assertNotNull(e2); assertEquals(2, e2.getOperandCount()); Expression k2 = (Expression) e2.getOperand(0); assertEquals("abc", k2.getOperand(1)); Expression k3 = (Expression) e2.getOperand(1); assertEquals("xyz", k3.getOperand(1)); }
@Test(expected = ExpressionException.class) public void testFailOnMissingParams() throws Exception { Expression e1 = ExpressionFactory.matchExp("k1", new ExpressionParameter("test")); e1 = e1.orExp(ExpressionFactory.matchExp("k2", "v2")); e1 = e1.orExp(ExpressionFactory.matchExp("k3", "v3")); e1.params(new HashMap(), false); }
/** Tests how parameter substitution algorithm works on an expression with no parameters. */ @Test public void testCopy1() throws Exception { Expression e1 = ExpressionFactory.matchExp("k1", "v1"); e1 = e1.orExp(ExpressionFactory.matchExp("k2", "v2")); e1 = e1.orExp(ExpressionFactory.matchExp("k3", "v3")); Expression e2 = e1.params(new HashMap()); TstTraversalHandler.compareExps(e1, e2); }
/** Tests how parameter substitution algorithm works on an expression with no parameters. */ @Test public void testCopy2() throws Exception { Expression andExp = ExpressionFactory.matchExp("k1", "v1"); andExp = andExp.andExp(ExpressionFactory.matchExp("k2", "v2")); andExp = andExp.andExp(ExpressionFactory.matchExp("k3", "v3")); List exprs = new ArrayList(); exprs.add(andExp); exprs.add(ExpressionFactory.matchExp("k1", "v1")); Expression e1 = ExpressionFactory.joinExp(Expression.OR, exprs); Expression e2 = e1.params(new HashMap()); TstTraversalHandler.compareExps(e1, e2); }
@Test public void testNoParams1() throws Exception { Expression e1 = ExpressionFactory.matchExp("k1", new ExpressionParameter("test")); Expression e2 = e1.params(Collections.<String, Object>emptyMap()); // all expression nodes must be pruned assertNull(e2); }
@Test public void testNoParams3() throws Exception { List list = new ArrayList(); list.add(ExpressionFactory.matchExp("k1", new ExpressionParameter("test1"))); list.add(ExpressionFactory.matchExp("k2", new ExpressionParameter("test2"))); list.add(ExpressionFactory.matchExp("k3", new ExpressionParameter("test3"))); list.add(ExpressionFactory.matchExp("k4", new ExpressionParameter("test4"))); Expression e1 = ExpressionFactory.joinExp(Expression.OR, list); Map params = new HashMap(); params.put("test4", "123"); Expression e2 = e1.params(params, true); // some expression nodes must be pruned assertNotNull(e2); assertTrue("List expression: " + e2, !(e2 instanceof ASTList)); assertEquals(2, e2.getOperandCount()); assertEquals("123", e2.getOperand(1)); assertEquals("k4", ((Expression) e2.getOperand(0)).getOperand(0)); }
@Test public void testParams1() throws Exception { Expression e1 = ExpressionFactory.matchExp("k1", new ExpressionParameter("test")); Map map = new HashMap(); map.put("test", "xyz"); Expression e2 = e1.params(map, false); assertNotNull(e2); assertEquals(2, e2.getOperandCount()); assertEquals(Expression.EQUAL_TO, e2.getType()); assertEquals("xyz", e2.getOperand(1)); }