diff --git a/src/test/java/dotsandboxes/DotsAndBoxesGridTest.java b/src/test/java/dotsandboxes/DotsAndBoxesGridTest.java index 1946beda974d180686c65c0259a7b881e9a4eb5a..d6a1104027190e2cb9020e51e29d536761b5fe2b 100644 --- a/src/test/java/dotsandboxes/DotsAndBoxesGridTest.java +++ b/src/test/java/dotsandboxes/DotsAndBoxesGridTest.java @@ -14,6 +14,8 @@ public class DotsAndBoxesGridTest { */ private static final Logger logger = LogManager.getLogger(DotsAndBoxesGridTest.class); + private DotsAndBoxesGrid grid; + /* * Tests are functions that have an @Test annotation before them. * The typical format of a test is that it contains some code that does something, and then one @@ -21,6 +23,51 @@ public class DotsAndBoxesGridTest { * * This is a dummy test just to show that the test suite itself runs */ + + @Test + public void setUp() { + grid = new DotsAndBoxesGrid(4, 3, 2); + } + + @Test + public void boxCompleteDetectsCompletedBoxes() { + grid.drawHorizontal(0, 0, 1); + grid.drawHorizontal(0, 1, 1); + grid.drawVertical(0, 0, 1); + grid.drawVertical(1, 0, 1); + + assertTrue(grid.boxComplete(0, 0)); + + grid.drawHorizontal(1, 1, 1); + grid.drawHorizontal(1, 2, 1); + grid.drawVertical(1, 1, 1); + grid.drawVertical(2, 1, 1); + + assertTrue(grid.boxComplete(1, 1)); + } + + @Test + public void boxCompleteDetectIncompleteBoxes() { + grid.drawHorizontal(0, 1, 1); + + assertFalse(grid.boxComplete(1, 1)); + } + + @Test + public void drawMethodsDetectRedrawnLines() { + grid.drawHorizontal(0, 0, 1); + + assertThrows(IllegalStateException.class, () -> { + grid.drawHorizontal(0, 0, 1); + }); + + grid.drawVertical(0, 0, 1); + + assertThrows(IllegalStateException.class, () -> { + grid.drawVertical(0, 0, 1); + }); + } + @Test public void testTestSuiteRuns() { logger.info("Dummy test to show the test suite runs");