diff --git a/src/test/java/dotsandboxes/DotsAndBoxesGridTest.java b/src/test/java/dotsandboxes/DotsAndBoxesGridTest.java
index 1946beda974d180686c65c0259a7b881e9a4eb5a..59f231ac19f84b85064eb63ee78ea502c3455073 100644
--- a/src/test/java/dotsandboxes/DotsAndBoxesGridTest.java
+++ b/src/test/java/dotsandboxes/DotsAndBoxesGridTest.java
@@ -8,24 +8,40 @@ 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 testSquareCompletion() {
+        DotsAndBoxesGrid grid = new DotsAndBoxesGrid(2, 2, 2);
+
+        // Draw lines to complete a square
+        grid.drawLine(0, 0, 0, 1); // vertical
+        grid.drawLine(0, 1, 1, 1); // horizontal
+        grid.drawLine(1, 0, 1, 1); // vertical
+        boolean completed = grid.drawLine(0, 0, 1, 0); // horizontal, should complete the square
+
+        assertTrue(completed, "Square should be completed");
+        assertEquals(1, grid.getBoxOwner(0, 0), "Player 1 should own the square");
+    }
+
+    @Test
+    public void testDrawingExistingLine() {
+        DotsAndBoxesGrid grid = new DotsAndBoxesGrid(2, 2, 2);
+
+        // Draw a line
+        grid.drawLine(0, 0, 0, 1);
+
+        // Draw the same line again
+        IllegalStateException exception = assertThrows(IllegalStateException.class, () -> {
+            grid.drawLine(0, 0, 0, 1);
+        });
+
+        assertEquals("This vertical line is already drawn.", exception.getMessage());
+    }
 }