diff --git a/src/test/java/dotsandboxes/DotsAndBoxesGridTest.java b/src/test/java/dotsandboxes/DotsAndBoxesGridTest.java
index 1946beda974d180686c65c0259a7b881e9a4eb5a..21ae10ef4152dc6723cb86ca9b96b20ea5ccb38b 100644
--- a/src/test/java/dotsandboxes/DotsAndBoxesGridTest.java
+++ b/src/test/java/dotsandboxes/DotsAndBoxesGridTest.java
@@ -8,24 +8,46 @@ 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 testBoxComplete() {
+        DotsAndBoxesGrid grid = new DotsAndBoxesGrid(4, 4, 2);
+        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), "Box at (0, 0) should be complete");
+    }
+
+    @Test
+    public void testDrawHorizontalAlreadyDrawn() {
+        DotsAndBoxesGrid grid = new DotsAndBoxesGrid(4, 4, 2);
+        grid.drawHorizontal(0, 0, 1);
+        IllegalStateException exception = assertThrows(IllegalStateException.class, () -> {
+            grid.drawHorizontal(0, 0, 1);
+        });
+        String expectedMessage = "Line already drawn";
+        String actualMessage = exception.getMessage();
+        assertTrue(actualMessage.contains(expectedMessage));
+    }
+
+    @Test
+    public void testDrawVerticalAlreadyDrawn() {
+        DotsAndBoxesGrid grid = new DotsAndBoxesGrid(4, 4, 2);
+        grid.drawVertical(0, 0, 1);
+        IllegalStateException exception = assertThrows(IllegalStateException.class, () -> {
+            grid.drawVertical(0, 0, 1);
+        });
+        String expectedMessage = "Line already drawn";
+        String actualMessage = exception.getMessage();
+        assertTrue(actualMessage.contains(expectedMessage));
+    }
 }