/* * Copyright (c) 2006-2011 Rogério Liesenfeld * This file is subject to the terms of the MIT license (see LICENSE.txt). */ package integrationTests.otherControlStructures; import org.junit.*; import integrationTests.*; public final class SwitchStatementsTest extends CoverageTest { final SwitchStatements tested = new SwitchStatements(); @Test public void switchStatementWithSparseCasesAndDefault() { tested.switchStatementWithSparseCasesAndDefault('A'); tested.switchStatementWithSparseCasesAndDefault('\0'); assertLines(7, 22, 5); assertLine(7, 1, 1, 2); assertLine(9, 1, 1, 1); assertLine(10, 1, 1, 1); assertLine(18, 1, 1, 1); assertLine(20, 1, 0, 0); assertLine(22, 1, 1, 1); findMethodData(7, "switchStatementWithSparseCasesAndDefault"); assertMethodLines(7, 22); assertPaths(4, 2, 2); assertPath(4, 1); assertPath(5, 0); assertPath(6, 1); assertPath(6, 0); } @Test public void switchStatementWithSparseCasesAndDefaultOnDefaultCase() { try { tested.anotherSwitchStatementWithSparseCasesAndDefault('x'); } catch (IllegalArgumentException e) { // OK } findMethodData(26, "anotherSwitchStatementWithSparseCasesAndDefault"); assertPaths(2, 1, 1); } @Test public void switchStatementWithCompactCasesAndDefault() { tested.switchStatementWithCompactCasesAndDefault(2); tested.switchStatementWithCompactCasesAndDefault(4); findMethodData(37, "switchStatementWithCompactCasesAndDefault"); assertPaths(4, 2, 2); assertPath(4, 1); assertPath(5, 0); assertPath(6, 0); assertPath(6, 1); } @Test public void switchStatementWithCompactCasesAndDefaultOnDefaultCase() { try { tested.anotherSwitchStatementWithCompactCasesAndDefault(1); tested.anotherSwitchStatementWithCompactCasesAndDefault(5); } catch (IllegalArgumentException e) { // OK } findMethodData(56, "anotherSwitchStatementWithCompactCasesAndDefault"); assertPaths(2, 2, 2); } @Test public void switchStatementWithSparseCasesAndNoDefault() { tested.switchStatementWithSparseCasesAndNoDefault('f'); tested.switchStatementWithSparseCasesAndNoDefault('b'); findMethodData(64, "switchStatementWithSparseCasesAndNoDefault"); assertPaths(3, 2, 2); assertPath(6, 0); assertPath(6, 1); assertPath(4, 1); } @Test public void switchStatementWithCompactCasesAndNoDefault() { tested.switchStatementWithCompactCasesAndNoDefault(0); tested.switchStatementWithCompactCasesAndNoDefault(4); tested.switchStatementWithCompactCasesAndNoDefault(5); findMethodData(76, "switchStatementWithCompactCasesAndNoDefault"); assertPaths(4, 2, 3); assertPath(5, 0); assertPath(5, 0); assertPath(7, 1); assertPath(5, 2); } @Test public void switchStatementWithExitInAllCases() { tested.switchStatementWithExitInAllCases(1); tested.switchStatementWithExitInAllCases(2); findMethodData(89, "switchStatementWithExitInAllCases"); assertPaths(3, 2, 2); assertPath(5, 1); assertPath(5, 1); assertPath(5, 0); } }