From 319b2311ece6f9fa76241a5f716b27e3c7d593a7 Mon Sep 17 00:00:00 2001 From: arnaudlabourel <arnaud.labourel@univ-amu.fr> Date: Tue, 9 Nov 2021 07:39:30 +0100 Subject: [PATCH] Added tests for ColoredSide --- src/main/java/model/ColoredSide.java | 21 ++++++++ src/main/java/model/UniformTile.java | 15 ++++++ src/test/java/model/ColoredSideTest.java | 62 ++++++++++++++++++++++++ 3 files changed, 98 insertions(+) create mode 100644 src/test/java/model/ColoredSideTest.java diff --git a/src/main/java/model/ColoredSide.java b/src/main/java/model/ColoredSide.java index 9eed9fe..fd39ebf 100644 --- a/src/main/java/model/ColoredSide.java +++ b/src/main/java/model/ColoredSide.java @@ -4,6 +4,7 @@ import javafx.scene.paint.Color; import java.util.ArrayList; import java.util.List; +import java.util.Objects; public class ColoredSide implements Side { private final Color color; @@ -32,4 +33,24 @@ public class ColoredSide implements Side { public Color color() { return color; } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ColoredSide that = (ColoredSide) o; + return Objects.equals(color, that.color); + } + + @Override + public int hashCode() { + return Objects.hash(color); + } + + @Override + public String toString() { + return "ColoredSide{" + + "color=" + color + + '}'; + } } diff --git a/src/main/java/model/UniformTile.java b/src/main/java/model/UniformTile.java index 89ea2db..aed4472 100644 --- a/src/main/java/model/UniformTile.java +++ b/src/main/java/model/UniformTile.java @@ -1,5 +1,7 @@ package model; +import java.util.Objects; + public class UniformTile implements Tile{ private final Side side; @@ -11,4 +13,17 @@ public class UniformTile implements Tile{ public Side side(CardinalDirection direction) { return side; } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + UniformTile that = (UniformTile) o; + return Objects.equals(side, that.side); + } + + @Override + public int hashCode() { + return side != null ? side.hashCode() : 0; + } } diff --git a/src/test/java/model/ColoredSideTest.java b/src/test/java/model/ColoredSideTest.java new file mode 100644 index 0000000..06f4bf2 --- /dev/null +++ b/src/test/java/model/ColoredSideTest.java @@ -0,0 +1,62 @@ +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 ColoredSideTest { + Side redSide; + Side blueSide; + Side redSide2; + + @BeforeEach + void initializeSides(){ + redSide = new ColoredSide(Color.RED); + blueSide = new ColoredSide(Color.BLUE); + redSide2 = new ColoredSide(Color.RED); + } + + @Test + void testColor(){ + assertThat(redSide.color()).isEqualTo(Color.RED); + assertThat(blueSide.color()).isEqualTo(Color.BLUE); + } + + @Test + void testEquals(){ + assertThat(redSide2).isEqualTo(redSide2); + assertThat(redSide).isEqualTo(redSide2); + assertThat(redSide).isNotEqualTo(blueSide); + } + + @Test + void testAccept(){ + assertThat(blueSide.accept(blueSide)).isTrue(); + assertThat(blueSide.accept(redSide2)).isFalse(); + assertThat(redSide.accept(redSide2)).isTrue(); + } + + @Test + void testCompatibleSides(){ + List<Side> sides = List.of(redSide, blueSide, redSide2); + assertThat(blueSide.compatibleSides(sides)) + .containsExactly(blueSide) + .hasSize(1) + .doesNotContain(redSide); + assertThat(redSide.compatibleSides(sides)) + .contains(redSide, redSide2) + .hasSize(2) + .doesNotContain(blueSide); + assertThat(sides).containsExactly(redSide, blueSide, redSide2); + } + + @Test + void testToString(){ + assertThat(redSide.toString()).isEqualTo("ColoredSide{color=0xff0000ff}"); + assertThat(blueSide.toString()).isEqualTo("ColoredSide{color=0x0000ffff}"); + } + +} -- GitLab