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
This commit is contained in:
Kristian Knarvik 2020-02-17 20:58:55 +01:00
parent 4b07882d47
commit 827c8e0aed
2 changed files with 27 additions and 3 deletions

View File

@ -40,7 +40,7 @@ public enum TileType {
/**
* Gets the numerical id used for alternate identification of a tile type
* @return <p>The numerical id of the tile</p>
* @return <p>The numerical id of the tile type</p>
*/
public int getTileTypeID() {
return this.tileTypeID;
@ -48,8 +48,8 @@ public enum TileType {
/**
* Gets a tile type value from its numerical representation
* @param tileTypeID <p>The numerical representation of a tile tpye</p>
* @return <p>The enum value representing the tile type</p>
* @param tileTypeID <p>The numerical representation of a tile type</p>
* @return <p>The enum value representing the tile type, or null if the id is invalid</p>
*/
public static TileType getTileTypeFromID(int tileTypeID) {
for (TileType type : TileType.values()) {

View File

@ -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<Integer> set = new HashSet<>();
List<Integer> list = new ArrayList<>();
for (TileType type : TileType.values()) {
set.add(type.getTileTypeID());
list.add(type.getTileTypeID());
}
assertEquals(list.size(), set.size());
}
}