diff --git a/src/test/java/dotsandboxes/DotsAndBoxesGridTest.java b/src/test/java/dotsandboxes/DotsAndBoxesGridTest.java index 1aac7ccc87bd5620cdcd1db9b008f20a08d50640..bca1591613cb005fb51cdb9ba11bab337c715b0e 100644 --- a/src/test/java/dotsandboxes/DotsAndBoxesGridTest.java +++ b/src/test/java/dotsandboxes/DotsAndBoxesGridTest.java @@ -3,6 +3,7 @@ package dotsandboxes; import org.junit.jupiter.api.*; import static org.junit.jupiter.api.Assertions.*; import static org.junit.jupiter.api.Assumptions.*; +import static org.junit.jupiter.api.Assertions.assertThrows; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -28,4 +29,31 @@ public class DotsAndBoxesGridTest { } // FIXME: You need to write tests for the two known bugs in the code. -} + @Test + public void testTestingBoxComplete() { + logger.info("Test of box completion test"); + logger.info("Drawing complete box, then asserting incomplete state"); + DotsAndBoxesGrid g = new DotsAndBoxesGrid(4,4,1); + g.drawHorizontal(1,1, 1); + g.drawHorizontal(1,2,1); + g.drawVertical(1,1,1); + g.drawVertical(2,1,1); + assertEquals(false,g.boxComplete(1,1)); + } + + @Test + public void testTestingLineDrawn() { + logger.info("Test of line already drawn detection"); + logger.info("Instantiating new grid"); + DotsAndBoxesGrid h = new DotsAndBoxesGrid(4,4,1); + logger.info("Drawing a line to later be duplicated"); + h.drawHorizontal(1,1,1); + logger.info("Drawing line a second time within an assert throws block, expecting and illegal state exception"); + IllegalStateException thrown = assertThrows( + IllegalStateException.class, () -> h.drawHorizontal (1,1,1), + "Drawing second horizontal line should have thrown illegal state exception, did not" + ); + assertTrue(thrown.getMessage().contains("IllegalStateException")); + + } +} \ No newline at end of file