From 827c8e0aedebf3afaf16514e7486d3c802069ddb Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Mon, 17 Feb 2020 20:58:55 +0100 Subject: [PATCH] Legger til en ekstra test og forbedrer kommentarer for TileType Fikser en skrivefeil i beskrivelsen av getTileTypeFromID Legger til en ekstra test som sjekker at alle TileType verdier har en unik id --- .../roborally/abstractions/TileType.java | 6 ++--- .../inf112/fiasko/roborally/TileTypeTest.java | 24 +++++++++++++++++++ 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/src/main/java/inf112/fiasko/roborally/abstractions/TileType.java b/src/main/java/inf112/fiasko/roborally/abstractions/TileType.java index af40086..18cf3ab 100644 --- a/src/main/java/inf112/fiasko/roborally/abstractions/TileType.java +++ b/src/main/java/inf112/fiasko/roborally/abstractions/TileType.java @@ -40,7 +40,7 @@ public enum TileType { /** * Gets the numerical id used for alternate identification of a tile type - * @return

The numerical id of the tile

+ * @return

The numerical id of the tile type

*/ public int getTileTypeID() { return this.tileTypeID; @@ -48,8 +48,8 @@ public enum TileType { /** * Gets a tile type value from its numerical representation - * @param tileTypeID

The numerical representation of a tile tpye

- * @return

The enum value representing the tile type

+ * @param tileTypeID

The numerical representation of a tile type

+ * @return

The enum value representing the tile type, or null if the id is invalid

*/ public static TileType getTileTypeFromID(int tileTypeID) { for (TileType type : TileType.values()) { diff --git a/src/test/java/inf112/fiasko/roborally/TileTypeTest.java b/src/test/java/inf112/fiasko/roborally/TileTypeTest.java index d2b30a8..ea791e5 100644 --- a/src/test/java/inf112/fiasko/roborally/TileTypeTest.java +++ b/src/test/java/inf112/fiasko/roborally/TileTypeTest.java @@ -3,34 +3,58 @@ package inf112.fiasko.roborally; import inf112.fiasko.roborally.abstractions.TileType; import org.junit.Test; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; public class TileTypeTest { + @Test public void getTileTypeIDForHole() { assertEquals(2, TileType.HOLE.getTileTypeID()); } + @Test public void getTileTypeFromHoleID() { assertEquals(TileType.HOLE, TileType.getTileTypeFromID(2)); } + @Test public void getTileTypeIDForWrench() { assertEquals(21, TileType.WRENCH.getTileTypeID()); } + @Test public void getTileTypeFromWrenchID() { assertEquals(TileType.WRENCH, TileType.getTileTypeFromID(21)); } + @Test public void allTileTypesIDConversionToIDAndBack() { for (TileType type : TileType.values()) { assertEquals(type, TileType.getTileTypeFromID(type.getTileTypeID())); } } + @Test public void invalidTileTypeIDReturnsNull() { assertNull(TileType.getTileTypeFromID(-1)); } + + @Test + public void allTilesHaveUniqueId() { + /* This test is also done implicitly by the allTileTypesIDConversionToIDAndBack test, but that test may fail + even if this test passes, so this test is needed for clarity. */ + Set set = new HashSet<>(); + List list = new ArrayList<>(); + for (TileType type : TileType.values()) { + set.add(type.getTileTypeID()); + list.add(type.getTileTypeID()); + } + assertEquals(list.size(), set.size()); + } }