From 9ebe126e6a66f3f05159d1716543af9e452343d0 Mon Sep 17 00:00:00 2001 From: arnaudlabourel <arnaud.labourel@univ-amu.fr> Date: Tue, 9 Nov 2021 08:55:51 +0100 Subject: [PATCH] Added tests for ArraySquare --- src/main/java/model/ArraySquare.java | 2 +- src/test/java/model/ArraySquareTest.java | 87 ++++++++++++++++++++++++ 2 files changed, 88 insertions(+), 1 deletion(-) create mode 100644 src/test/java/model/ArraySquareTest.java diff --git a/src/main/java/model/ArraySquare.java b/src/main/java/model/ArraySquare.java index 1aec719..3f77c2b 100644 --- a/src/main/java/model/ArraySquare.java +++ b/src/main/java/model/ArraySquare.java @@ -52,7 +52,7 @@ public class ArraySquare implements Square { return true; } - public boolean accept(Tile tile, CardinalDirection direction) { + private boolean accept(Tile tile, CardinalDirection direction) { return getIncidentNeighboringSide(direction).accept(tile.side(direction)); } diff --git a/src/test/java/model/ArraySquareTest.java b/src/test/java/model/ArraySquareTest.java new file mode 100644 index 0000000..51a8737 --- /dev/null +++ b/src/test/java/model/ArraySquareTest.java @@ -0,0 +1,87 @@ +package model; + +import javafx.scene.paint.Color; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; + +public class ArraySquareTest { + Square arraySquare1; + Square arraySquare2; + ColoredSide redSide; + ColoredSide blueSide; + Tile redTile; + Tile blueTile; + + @BeforeEach + void initialize(){ + arraySquare1 = new ArraySquare(); + arraySquare2 = new ArraySquare(); + redTile = new UniformTile(new ColoredSide(Color.RED)); + blueTile = new UniformTile(new ColoredSide(Color.BLUE)); + redSide = new ColoredSide(Color.RED); + blueSide = new ColoredSide(Color.BLUE); + } + + @Test + void testGetNeighbors_afterConstruction(){ + for(CardinalDirection direction : CardinalDirection.values()) + assertThat(arraySquare1.getNeighbor(direction)).isEqualTo(EmptySquare.EMPTY_SQUARE); + } + + @Test + void testEmptyTile_afterConstruction(){ + assertThat(arraySquare1.getTile()).isEqualTo(EmptyTile.EMPTY_TILE); + } + + @Test + void testPut(){ + arraySquare1.put(redTile); + arraySquare2.put(blueTile); + assertThat(arraySquare1.getTile()).isEqualTo(redTile); + assertThat(arraySquare2.getTile()).isEqualTo(blueTile); + } + + @Test + void testGetNeighbors_afterSetNeighbor(){ + arraySquare1.setNeighbor(arraySquare2, CardinalDirection.NORTH); + arraySquare2.setNeighbor(arraySquare1, CardinalDirection.SOUTH); + assertThat(arraySquare1.getNeighbor(CardinalDirection.NORTH)).isEqualTo(arraySquare2); + assertThat(arraySquare2.getNeighbor(CardinalDirection.SOUTH)).isEqualTo(arraySquare1); + } + + @Test + void testCompatibleSides(){ + arraySquare1.put(redTile); + arraySquare2.put(blueTile); + arraySquare1.setNeighbor(arraySquare2, CardinalDirection.NORTH); + arraySquare2.setNeighbor(arraySquare1, CardinalDirection.SOUTH); + List<Side> sides = List.of(blueSide, redSide); + assertThat(arraySquare1.compatibleSides(sides, CardinalDirection.NORTH)) + .containsExactly(blueSide); + assertThat(arraySquare2.compatibleSides(sides, CardinalDirection.SOUTH)) + .containsExactly(redSide); + assertThat(arraySquare1.compatibleSides(sides, CardinalDirection.SOUTH)) + .containsExactly(blueSide, redSide); + } + + @Test + void testCompatibleTiles(){ + List<Tile> tiles = List.of(blueTile, redTile); + assertThat(arraySquare1.compatibleTiles(tiles)) + .containsExactly(blueTile, redTile); + + arraySquare1.put(redTile); + arraySquare2.put(blueTile); + arraySquare1.setNeighbor(arraySquare2, CardinalDirection.NORTH); + arraySquare2.setNeighbor(arraySquare1, CardinalDirection.SOUTH); + + assertThat(arraySquare1.compatibleTiles(tiles)) + .containsExactly(blueTile); + assertThat(arraySquare2.compatibleTiles(tiles)) + .containsExactly(redTile); + } +} -- GitLab