@Test public void testSwitchBlockOnIntEmpty() { String s = StatementBuilder.create() .declareVariable("n", int.class) .switch_(Stmt.loadVariable("n")) .toJavaString(); assertEquals("Failed to generate empty switch block", SWITCH_BLOCK_EMPTY, s); }
@Test public void testSwitchBlockWithFallThrough() { String s = StatementBuilder.create() .declareVariable("n", int.class) .switch_(Stmt.loadVariable("n")) .case_(0) .finish() .case_(1) .append(Stmt.loadStatic(System.class, "out").invoke("println", "1")) .append(Stmt.loadStatic(System.class, "out").invoke("println", "break")) .append(Stmt.break_()) .finish() .toJavaString(); assertEquals("Failed to generate int switch block with fallthrough", SWITCH_BLOCK_INT_FALLTHROUGH, s); }
@Test public void testSwitchBlockWithoutDefaultBlock() { String s = StatementBuilder.create() .declareVariable("n", Integer.class) .switch_(Stmt.loadVariable("n")) .case_(0) .append(Stmt.loadStatic(System.class, "out").invoke("println", "0")) .append(Stmt.loadStatic(System.class, "out").invoke("println", "break")) .append(Stmt.break_()) .finish() .case_(1) .append(Stmt.break_()) .finish() .toJavaString(); assertEquals("Failed to generate Integer switch block without default", SWITCH_BLOCK_INTEGER_NO_DEFAULT, s); }
@Test public void testSwitchBlockOnInt() { String s = StatementBuilder.create() .declareVariable("n", int.class) .switch_(Stmt.loadVariable("n")) .case_(0) .append(Stmt.loadStatic(System.class, "out").invoke("println", "0")) .append(Stmt.loadStatic(System.class, "out").invoke("println", "break")) .append(Stmt.break_()) .finish() .case_(1) .append(Stmt.break_()) .finish() .default_() .append(Stmt.break_()) .finish() .toJavaString(); assertEquals("Failed to generate int switch block", SWITCH_BLOCK_INT, s); }
@Test public void testSwitchBlockOnEnum() { Context c = Context.create().autoImport(); String s = StatementBuilder.create(c) .declareVariable("t", TestEnum.class) .switch_(Stmt.loadVariable("t")) .case_(TestEnum.A) .append(Stmt.loadStatic(System.class, "out").invoke("println", "A")) .append(Stmt.loadStatic(System.class, "out").invoke("println", "break")) .append(Stmt.break_()) .finish() .case_(TestEnum.B) .append(Stmt.break_()) .finish() .default_() .append(Stmt.break_()) .finish() .toJavaString(); assertEquals("Failed to generate enum switch block", SWITCH_BLOCK_ENUM, s); }