From 7bdbd0fb641aa4b7d844b39cac39fba1d5099eee Mon Sep 17 00:00:00 2001 From: Dan <dandre20@myune.edu.au> Date: Thu, 22 Jul 2021 12:57:16 +1000 Subject: [PATCH] Added unit tests for 2 errors --- .../dotsandboxes/DotsAndBoxesGridTest.java | 81 ++++++++++++------- 1 file changed, 50 insertions(+), 31 deletions(-) diff --git a/src/test/java/dotsandboxes/DotsAndBoxesGridTest.java b/src/test/java/dotsandboxes/DotsAndBoxesGridTest.java index 1946bed..f2f910d 100644 --- a/src/test/java/dotsandboxes/DotsAndBoxesGridTest.java +++ b/src/test/java/dotsandboxes/DotsAndBoxesGridTest.java @@ -1,31 +1,50 @@ -package dotsandboxes; - -import org.junit.jupiter.api.*; -import static org.junit.jupiter.api.Assertions.*; -import static org.junit.jupiter.api.Assumptions.*; - -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; - -public class DotsAndBoxesGridTest { - /* - * Because Test classes are classes, they can have fields, and can have static fields. - * This field is a logger. Loggers are like a more advanced println, for writing messages out to the console or a log file. - */ - private static final Logger logger = LogManager.getLogger(DotsAndBoxesGridTest.class); - - /* - * 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 - * or more assertions to check that a condition holds. - * - * This is a dummy test just to show that the test suite itself runs - */ - @Test - public void testTestSuiteRuns() { - logger.info("Dummy test to show the test suite runs"); - assertTrue(true); - } - - // FIXME: You need to write tests for the two known bugs in the code. -} +package dotsandboxes; + +import org.junit.jupiter.api.*; +import static org.junit.jupiter.api.Assertions.*; +import static org.junit.jupiter.api.Assumptions.*; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +public class DotsAndBoxesGridTest { + /* + * Because Test classes are classes, they can have fields, and can have static fields. + * This field is a logger. Loggers are like a more advanced println, for writing messages out to the console or a log file. + */ + private static final Logger logger = LogManager.getLogger(DotsAndBoxesGridTest.class); + + /* + * 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 + * or more assertions to check that a condition holds. + * + * This is a dummy test just to show that the test suite itself runs + */ + @Test + public void testTestSuiteRuns() { + logger.info("Dummy test to show the test suite runs"); + assertTrue(true); + } + + // FIXME: You need to write tests for the two known bugs in the code. + @Test + public void testCompleteBox() { + DotsAndBoxesGrid grid = new DotsAndBoxesGrid(15, 8, 2); + grid.drawHorizontal(0,0,1); + grid.drawVertical(0,0,1); + grid.drawHorizontal(0,1,1); + assertTrue(grid.drawVertical(1,0,1)); + } + + @Test + public void testLineDrawn() { + DotsAndBoxesGrid grid = new DotsAndBoxesGrid(15, 8, 2); + grid.drawHorizontal(1,1,1); + Throwable exception = assertThrows(IllegalStateException.class, () -> grid.drawHorizontal(1,1,1)); + assertEquals("This line has already been drawn.", exception.getMessage()); + grid.drawVertical(1,1,1); + Throwable exception2 = assertThrows(IllegalStateException.class, () -> grid.drawVertical(1,1,1)); + assertEquals("This line has already been drawn.", exception2.getMessage()); + } +} -- GitLab