From 6c04e46e2d4c35d943a7d25552cf287c52ec7021 Mon Sep 17 00:00:00 2001
From: arnaudlabourel <arnaud.labourel@univ-amu.fr>
Date: Tue, 9 Nov 2021 09:13:01 +0100
Subject: [PATCH] Added tests for ArrayGrid

---
 src/test/java/model/ArrayGridTest.java | 68 ++++++++++++++++++++++++++
 1 file changed, 68 insertions(+)
 create mode 100644 src/test/java/model/ArrayGridTest.java

diff --git a/src/test/java/model/ArrayGridTest.java b/src/test/java/model/ArrayGridTest.java
new file mode 100644
index 0000000..2150631
--- /dev/null
+++ b/src/test/java/model/ArrayGridTest.java
@@ -0,0 +1,68 @@
+package model;
+
+import javafx.scene.paint.Color;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
+import java.util.Iterator;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class ArrayGridTest {
+  Grid arrayGridThreeTimesFour;
+  @BeforeEach
+  void initializeGrid(){
+    arrayGridThreeTimesFour = new ArrayGrid(3, 4);
+  }
+
+  @Test
+  void testGetNumberOfRows(){
+    assertThat(arrayGridThreeTimesFour.getNumberOfRows()).isEqualTo(3);
+  }
+
+  @Test
+  void testGetNumberOfColumns(){
+    assertThat(arrayGridThreeTimesFour.getNumberOfColumns()).isEqualTo(4);
+  }
+
+  @Test
+  void testSquaresAreNotNull_afterConstruction(){
+    for(int row = 0; row < arrayGridThreeTimesFour.getNumberOfRows(); row++)
+      for(int column = 0; column < arrayGridThreeTimesFour.getNumberOfColumns(); column++)
+        assertThat(arrayGridThreeTimesFour.getSquare(row,column)).isNotNull();
+  }
+
+  @Test
+  void testNeighbor(){
+    Square square22 = arrayGridThreeTimesFour.getSquare(2,2);
+    assertThat(square22.getNeighbor(CardinalDirection.NORTH))
+            .isEqualTo(arrayGridThreeTimesFour.getSquare(1, 2));
+    assertThat(square22.getNeighbor(CardinalDirection.EAST))
+            .isEqualTo(arrayGridThreeTimesFour.getSquare(2, 3));
+    assertThat(square22.getNeighbor(CardinalDirection.SOUTH))
+            .isEqualTo(EmptySquare.EMPTY_SQUARE);
+    assertThat(square22.getNeighbor(CardinalDirection.WEST))
+            .isEqualTo(arrayGridThreeTimesFour.getSquare(2, 1));
+  }
+
+  @Test
+  void testFill(){
+    Tile redTile = new UniformTile(new ColoredSide(Color.RED));
+    arrayGridThreeTimesFour.fill(square -> redTile);
+    for(int row = 0; row < arrayGridThreeTimesFour.getNumberOfRows(); row++)
+      for(int column = 0; column < arrayGridThreeTimesFour.getNumberOfColumns(); column++)
+        assertThat(arrayGridThreeTimesFour.getSquare(row,column).getTile()).isEqualTo(redTile);
+  }
+
+  @Test
+  void testIterator(){
+    Iterator<Square> iterator = arrayGridThreeTimesFour.iterator();
+    assertThat(iterator.hasNext()).isTrue();
+    for(int row = 0; row < arrayGridThreeTimesFour.getNumberOfRows(); row++) {
+      for (int column = 0; column < arrayGridThreeTimesFour.getNumberOfColumns(); column++) {
+        assertThat(iterator.next()).isEqualTo(arrayGridThreeTimesFour.getSquare(row, column));
+      }
+    }
+    assertThat(iterator.hasNext()).isFalse();
+  }
+}
-- 
GitLab