Skip to content
Snippets Groups Projects
Commit 09dc5c67 authored by skadariy's avatar skadariy
Browse files

Added unit tests for known bugs

parent b7c29b9f
No related branches found
No related tags found
No related merge requests found
......@@ -2,30 +2,43 @@ 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 for Bug 1: Check if a square is correctly marked as complete
@Test
public void testSquareCompletion() {
logger.info("Testing square completion logic");
DotsAndBoxesGrid game = new DotsAndBoxesGrid(4, 4, 2);
// Simulate drawing lines to complete a square
game.drawHorizontal(0, 0, 1);
game.drawHorizontal(0, 1, 1);
game.drawVertical(0, 0, 1);
game.drawVertical(1, 0, 1);
// Assert that the square is marked as complete
assertTrue(game.boxComplete(0, 0), "Square should be complete");
}
// Test for Bug 2: Check if an exception is thrown when a line is drawn twice
@Test
public void testDrawingLineTwice() {
logger.info("Testing drawing the same line twice");
DotsAndBoxesGrid game = new DotsAndBoxesGrid(4, 4, 2);
// Draw the same line twice and expect an exception
game.drawHorizontal(0, 0, 1);
assertThrows(IllegalStateException.class, () -> game.drawHorizontal(0, 0, 1), "Drawing the same line twice should throw an exception");
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment