diff --git a/src/test/java/dotsandboxes/DotsAndBoxesGridTest.java b/src/test/java/dotsandboxes/DotsAndBoxesGridTest.java
index 1946beda974d180686c65c0259a7b881e9a4eb5a..4fee681f86d446d31a8b317a7d23b1d1b7fda64a 100644
--- a/src/test/java/dotsandboxes/DotsAndBoxesGridTest.java
+++ b/src/test/java/dotsandboxes/DotsAndBoxesGridTest.java
@@ -28,4 +28,48 @@ public class DotsAndBoxesGridTest {
     }
 
     // FIXME: You need to write tests for the two known bugs in the code.
+    @Test
+    public void testBoxComplete() {
+        DotsAndBoxesGrid grid = new DotsAndBoxesGrid(4, 3, 2);
+
+        // Draw the lines surrounding a box
+        grid.drawHorizontal(0, 0, 1);
+        grid.drawHorizontal(0, 1, 1);
+        grid.drawVertical(0, 0, 1);
+        grid.drawVertical(1, 0, 1);
+
+        // Check if the box is complete
+        assertTrue(grid.boxComplete(0, 0), "Box should be complete");
+
+        // Draw additional lines for another box
+        grid.drawHorizontal(1, 0, 1);
+        grid.drawHorizontal(1, 1, 1);
+        grid.drawVertical(2, 0, 1);
+        grid.drawVertical(2, 1, 1);
+
+        // Check if the new box is complete
+        assertTrue(grid.boxComplete(1, 0), "Box should be complete");
+    }
+
+    @Test
+    public void testDrawHorizontalLineAlreadyDrawn() {
+        DotsAndBoxesGrid grid = new DotsAndBoxesGrid(4, 3, 2);
+
+        // Draw a horizontal line
+        grid.drawHorizontal(0, 0, 1);
+        // Attempt to draw the same line again, which should throw an exception
+        IllegalStateException thrown = assertThrows(IllegalStateException.class, () -> grid.drawHorizontal(0, 0, 1));
+        logger.info(thrown.getMessage());
+    }
+
+    @Test
+    public void testDrawVerticalLineAlreadyDrawn() {
+        DotsAndBoxesGrid grid = new DotsAndBoxesGrid(4, 3, 2);
+
+        // Draw a vertical line
+        grid.drawVertical(0, 0, 1);
+        // Attempt to draw the same line again, which should throw an exception
+        IllegalStateException thrown = assertThrows(IllegalStateException.class, () -> grid.drawVertical(0, 0, 1));
+        logger.info(thrown.getMessage());
+    }
 }