Stmt.nestedCall(cookieParam); setCookie.if_(BooleanOperator.NotEquals, null) .append(Stmt.invokeStatic(RestClient.class, "setCookie", cookieName, marshal(cookieParam))) .finish();
@Test public void testEmptyIfBlockUsingNoRhs() { String s = StatementBuilder.create() .declareVariable("str", String.class) .loadVariable("str") .invoke("endsWith", "abc") .if_() .finish().toJavaString(); assertEquals("Failed to generate empty if block using no rhs", EMPTY_IF_BLOCK_NO_RHS, s); }
@Test public void testNestedIfElseIfBlockUsingNoRhs() { Context c = ContextBuilder.create().addVariable("s", String.class).addVariable("n", Integer.class).getContext(); String s = StatementBuilder.create(c) .loadVariable("s") .invoke("endsWith", "abc") .if_() ._(StatementBuilder.create(c).loadVariable("n").assignValue(0)) .finish() .else_() ._(StatementBuilder.create(c).loadVariable("s") .invoke("startsWith", "def") .if_() ._(StatementBuilder.create(c).loadVariable("n").assignValue(1)) .finish() ) .finish().toJavaString(); assertEquals("Failed to generate if-else-if-block using no rhs", IF_ELSEIF_BLOCK_NO_RHS_NESTED, s); }
@Test public void testIfElseBlockUsingNoRhs() { String s = StatementBuilder.create() .declareVariable("str", String.class) .loadVariable("str") .invoke("endsWith", "abc") .if_() ._(Stmt.declareVariable(Integer.class).named("n").initializeWith(0)) .finish() .else_() ._(Stmt.declareVariable(Integer.class).named("n").initializeWith(1)) .finish().toJavaString(); assertEquals("Failed to generate empty if block using no rhs", IF_ELSE_BLOCK_NO_RHS, s); }
@Test public void testIfBlockWithInvalidNonBooleanExpression() { try { StatementBuilder.create() .declareVariable("str", String.class) .loadVariable("str") .invoke("compareTo", "asd") .if_().finish() .toJavaString(); fail("Expected InvalidTypeException"); } catch (InvalidTypeException e) { // expected } try { StatementBuilder.create() .declareVariable("str", String.class) .loadVariable("str") .ifNot() .finish() .toJavaString(); fail("Expected InvalidTypeException"); } catch (InvalidTypeException e) { // expected } }
@Test public void testNestedIfElseIfElseBlockUsingNoRhs() { Context c = ContextBuilder.create().addVariable("s", String.class).addVariable("n", Integer.class).getContext(); String s = StatementBuilder.create(c) .loadVariable("s") .invoke("endsWith", "abc") .if_() .append(StatementBuilder.create(c).loadVariable("n").assignValue(0)) .finish() .else_() .append(StatementBuilder.create(c).loadVariable("s") .invoke("startsWith", "def") .if_() .append(StatementBuilder.create(c).loadVariable("n").assignValue(1)) .finish() .else_() .append(StatementBuilder.create(c).loadVariable("n").assignValue(2)) .finish() ) .finish().toJavaString(); assertEquals("Failed to generate if-else-if-else block using no rhs", IF_ELSEIF_ELSE_BLOCK_NO_RHS_NESTED, s); }
@Test public void testIfElseIfBlockUsingNoRhsAndElseifKeyword() { Context c = ContextBuilder.create().addVariable("s", String.class).addVariable("n", Integer.class).getContext(); String s = StatementBuilder.create(c) .loadVariable("s") .invoke("endsWith", "abc") .if_() .append(StatementBuilder.create(c).loadVariable("n").assignValue(0)) .finish() .elseif_(StatementBuilder.create(c).loadVariable("s").invoke("startsWith", "def")) .append(StatementBuilder.create(c).loadVariable("n").assignValue(1)) .finish().toJavaString(); assertEquals("Failed to generate if-elseif block using no rhs", IF_ELSEIF_BLOCK_NO_RHS, s); }
@Test public void testIfElseIfElseBlockUsingNoRhsAndElseifKeyword() { Context c = ContextBuilder.create().addVariable("s", String.class).addVariable("n", Integer.class).getContext(); String s = StatementBuilder.create(c) .loadVariable("s") .invoke("endsWith", "abc") .if_() .append(StatementBuilder.create(c).loadVariable("n").assignValue(0)) .finish() .elseif_(StatementBuilder.create(c).loadVariable("s").invoke("startsWith", "def")) .append(StatementBuilder.create(c).loadVariable("n").assignValue(1)) .finish() .else_() .append(StatementBuilder.create(c).loadVariable("n").assignValue(2)) .finish().toJavaString(); assertEquals("Failed to generate if - elseif - else block using no rhs", IF_ELSEIF_ELSE_BLOCK_NO_RHS, s); }