public void testGetWhenCriteria() {
helpTestWhenCriteria(example(4), 4);
}
public void testSetWhen() {
SearchedCaseExpression caseExpr = example(4);
// Both are nulls
try {
caseExpr.setWhen(null, null);
fail("Setting WHEN and THEN to null should have failed."); //$NON-NLS-1$
} catch (IllegalArgumentException e) {
// There should be no side-effects of an illegal argument
helpTestWhenCriteria(caseExpr, 4);
TestCaseExpression.helpTestThenExpressions(caseExpr, 4);
}
try {
caseExpr.setWhen(getWhenCriteria(2), null);
fail("Setting THEN to null should have failed."); //$NON-NLS-1$
} catch (IllegalArgumentException e) {
// There should be no side-effects of an illegal argument
helpTestWhenCriteria(caseExpr, 4);
TestCaseExpression.helpTestThenExpressions(caseExpr, 4);
}
try {
caseExpr.setWhen(null, TestCaseExpression.getThenExpressions(2));
fail("Setting WHEN to null should have failed."); //$NON-NLS-1$
} catch (IllegalArgumentException e) {
// There should be no side-effects of an illegal argument
helpTestWhenCriteria(caseExpr, 4);
TestCaseExpression.helpTestThenExpressions(caseExpr, 4);
}
try {
caseExpr.setWhen(getWhenCriteria(0), TestCaseExpression.getThenExpressions(0));
fail("Setting WHEN and THEN to empty lists should have failed."); //$NON-NLS-1$
} catch (IllegalArgumentException e) {
// There should be no side-effects of an illegal argument
helpTestWhenCriteria(caseExpr, 4);
TestCaseExpression.helpTestThenExpressions(caseExpr, 4);
}
try {
caseExpr.setWhen(TestCaseExpression.getWhenExpressions(3), TestCaseExpression.getThenExpressions(3));
fail("Setting WHEN non Criteria types should have failed."); //$NON-NLS-1$
} catch (IllegalArgumentException e) {
// There should be no side-effects of an illegal argument
helpTestWhenCriteria(caseExpr, 4);
TestCaseExpression.helpTestThenExpressions(caseExpr, 4);
}
caseExpr.setWhen(getWhenCriteria(3), getWhenCriteria(3));
ArrayList whens = new ArrayList();
whens.add(new CompareCriteria(new ElementSymbol("abc"), CompareCriteria.EQ, new Constant(new Integer(20000)))); //$NON-NLS-1$
whens.add(new CompareCriteria(new ElementSymbol("xyz"), CompareCriteria.EQ, new Constant(new Integer(30000)))); //$NON-NLS-1$
ArrayList thens = new ArrayList();
thens.add(new Constant(new Integer(20000)));
thens.add(new Constant(new Integer(30000)));
caseExpr.setWhen(whens, thens);
assertEquals(2, caseExpr.getWhenCount());
assertEquals(new CompareCriteria(new ElementSymbol("abc"), CompareCriteria.EQ, new Constant(new Integer(20000))), caseExpr.getWhenCriteria(0)); //$NON-NLS-1$
assertEquals(new CompareCriteria(new ElementSymbol("xyz"), CompareCriteria.EQ, new Constant(new Integer(30000))), caseExpr.getWhenCriteria(1)); //$NON-NLS-1$
assertEquals(new Constant(new Integer(20000)), caseExpr.getThenExpression(0));
assertEquals(new Constant(new Integer(30000)), caseExpr.getThenExpression(1));
}