forked from jzitnik/twodcraft
test: Added some tests
This commit is contained in:
parent
30af2b6feb
commit
fed35d3a02
5
pom.xml
5
pom.xml
@ -21,6 +21,11 @@
|
||||
<version>1.18.36</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.junit.jupiter</groupId>
|
||||
<artifactId>junit-jupiter</artifactId>
|
||||
<version>5.8.2</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
<dependency>
|
||||
|
@ -200,14 +200,17 @@ public class SpriteLoader {
|
||||
SPRITES_MAP.put(SPRITES.ITEM_COAL_ORE, new SimpleSprite("items/coal_ore.ans"));
|
||||
SPRITES_MAP.put(SPRITES.ITEM_IRON_ORE, new SimpleSprite("items/iron_ore.ans"));
|
||||
SPRITES_MAP.put(SPRITES.ITEM_GOLD_ORE, new SimpleSprite("items/gold_ore.ans"));
|
||||
SPRITES_MAP.put(SPRITES.ITEM_DIAMOND_ORE, new SimpleSprite("items/diamond_ore.ans"));
|
||||
|
||||
SPRITES_MAP.put(SPRITES.ITEM_COAL_BLOCK, new SimpleSprite("items/coal_block.ans"));
|
||||
SPRITES_MAP.put(SPRITES.ITEM_IRON_BLOCK, new SimpleSprite("items/iron_block.ans"));
|
||||
SPRITES_MAP.put(SPRITES.ITEM_GOLD_BLOCK, new SimpleSprite("items/gold_block.ans"));
|
||||
SPRITES_MAP.put(SPRITES.ITEM_DIAMOND_BLOCK, new SimpleSprite("items/diamond_block.ans"));
|
||||
|
||||
SPRITES_MAP.put(SPRITES.COAL, new SimpleSprite("items/coal.ans"));
|
||||
SPRITES_MAP.put(SPRITES.ITEM_IRON_INGOT, new SimpleSprite("items/iron_ingot.ans"));
|
||||
SPRITES_MAP.put(SPRITES.ITEM_GOLD_INGOT, new SimpleSprite("items/gold_ingot.ans"));
|
||||
SPRITES_MAP.put(SPRITES.DIAMOND, new SimpleSprite("items/diamond.ans"));
|
||||
|
||||
// Work Items
|
||||
SPRITES_MAP.put(SPRITES.ITEM_CRAFTING_TABLE, new SimpleSprite("items/crafting_table.ans"));
|
||||
|
@ -8,6 +8,6 @@ import cz.jzitnik.game.entities.items.ItemType;
|
||||
@ItemRegistry("coal")
|
||||
public class CoalItem extends Item {
|
||||
public CoalItem() {
|
||||
super("coal", "Coal", ItemType.USELESS_ITEM, SpriteLoader.SPRITES.ITEM_COAL_ORE);
|
||||
super("coal", "Coal", ItemType.USELESS_ITEM, SpriteLoader.SPRITES.COAL);
|
||||
}
|
||||
}
|
||||
|
@ -8,6 +8,6 @@ import cz.jzitnik.game.entities.items.ItemType;
|
||||
@ItemRegistry("steak")
|
||||
public class SteakItem extends Item {
|
||||
public SteakItem() {
|
||||
super("steak", "Steak", ItemType.FOOD, SpriteLoader.SPRITES.ITEM_BEEF, 4);
|
||||
super("steak", "Steak", ItemType.FOOD, SpriteLoader.SPRITES.ITEM_STEAK, 4);
|
||||
}
|
||||
}
|
||||
|
@ -35,6 +35,7 @@ public class Generation {
|
||||
// Spawn player at a valid starting point
|
||||
world[terrainHeight[256] - 1][256].add(steveBlock2);
|
||||
world[terrainHeight[256] - 2][256].add(steveBlock);
|
||||
world[terrainHeight[256] - 1][256 + 1].add(ItemBlockSupplier.getBlock("water"));
|
||||
}
|
||||
|
||||
private static void initializeWorld(List<Block>[][] world) {
|
||||
|
@ -2,6 +2,8 @@ package cz.jzitnik.game.sprites;
|
||||
|
||||
import cz.jzitnik.tui.Sprite;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
public class Air extends Sprite {
|
||||
public String getSprite() {
|
||||
StringBuilder sprite = new StringBuilder();
|
||||
@ -15,4 +17,9 @@ public class Air extends Sprite {
|
||||
public String getSprite(Enum e) {
|
||||
throw new RuntimeException("Imposible state");
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<Class<Enum>> getStates() {
|
||||
return Optional.empty();
|
||||
}
|
||||
}
|
||||
|
@ -3,6 +3,8 @@ package cz.jzitnik.game.sprites;
|
||||
import cz.jzitnik.tui.ResourceLoader;
|
||||
import cz.jzitnik.tui.Sprite;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
public class Bed extends Sprite {
|
||||
public enum BedState {
|
||||
LEFT,
|
||||
@ -22,4 +24,9 @@ public class Bed extends Sprite {
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<Class<BedState>> getStates() {
|
||||
return Optional.of(BedState.class);
|
||||
}
|
||||
}
|
||||
|
@ -4,6 +4,7 @@ import cz.jzitnik.tui.ResourceLoader;
|
||||
import cz.jzitnik.tui.Sprite;
|
||||
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
|
||||
public class Breaking extends Sprite {
|
||||
public enum BreakingState {
|
||||
@ -28,4 +29,9 @@ public class Breaking extends Sprite {
|
||||
default -> throw new IllegalStateException("Unexpected value: " + key);
|
||||
})));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<Class<BreakingState>> getStates() {
|
||||
return Optional.of(BreakingState.class);
|
||||
}
|
||||
}
|
||||
|
@ -3,6 +3,8 @@ package cz.jzitnik.game.sprites;
|
||||
import cz.jzitnik.tui.ResourceLoader;
|
||||
import cz.jzitnik.tui.Sprite;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
public class Cow extends Sprite {
|
||||
public enum CowState{
|
||||
LEFT,
|
||||
@ -26,4 +28,9 @@ public class Cow extends Sprite {
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<Class<CowState>> getStates() {
|
||||
return Optional.of(CowState.class);
|
||||
}
|
||||
}
|
||||
|
@ -3,6 +3,8 @@ package cz.jzitnik.game.sprites;
|
||||
import cz.jzitnik.tui.ResourceLoader;
|
||||
import cz.jzitnik.tui.Sprite;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
public class Furnace extends Sprite {
|
||||
public enum FurnaceState {
|
||||
OFF,
|
||||
@ -22,4 +24,9 @@ public class Furnace extends Sprite {
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<Class<FurnaceState>> getStates() {
|
||||
return Optional.of(FurnaceState.class);
|
||||
}
|
||||
}
|
||||
|
@ -3,6 +3,8 @@ package cz.jzitnik.game.sprites;
|
||||
import cz.jzitnik.tui.ResourceLoader;
|
||||
import cz.jzitnik.tui.Sprite;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
public class Heart extends Sprite {
|
||||
public enum HeartState {
|
||||
OFF,
|
||||
@ -10,7 +12,7 @@ public class Heart extends Sprite {
|
||||
}
|
||||
|
||||
public String getSprite() {
|
||||
throw new RuntimeException("Idk");
|
||||
return getSprite(HeartState.OFF);
|
||||
}
|
||||
|
||||
public String getSprite(Enum e) {
|
||||
@ -22,4 +24,9 @@ public class Heart extends Sprite {
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<Class<HeartState>> getStates() {
|
||||
return Optional.of(HeartState.class);
|
||||
}
|
||||
}
|
||||
|
@ -3,6 +3,8 @@ package cz.jzitnik.game.sprites;
|
||||
import cz.jzitnik.tui.ResourceLoader;
|
||||
import cz.jzitnik.tui.Sprite;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
public class Hunger extends Sprite {
|
||||
public enum HungerState {
|
||||
OFF,
|
||||
@ -10,7 +12,7 @@ public class Hunger extends Sprite {
|
||||
}
|
||||
|
||||
public String getSprite() {
|
||||
throw new RuntimeException("Idk");
|
||||
return getSprite(HungerState.OFF);
|
||||
}
|
||||
|
||||
public String getSprite(Enum e) {
|
||||
@ -22,4 +24,9 @@ public class Hunger extends Sprite {
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<Class<HungerState>> getStates() {
|
||||
return Optional.of(HungerState.class);
|
||||
}
|
||||
}
|
||||
|
@ -3,6 +3,8 @@ package cz.jzitnik.game.sprites;
|
||||
import cz.jzitnik.tui.ResourceLoader;
|
||||
import cz.jzitnik.tui.Sprite;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
public class OakDoor extends Sprite {
|
||||
public enum OakDoorState {
|
||||
TOP,
|
||||
@ -26,4 +28,9 @@ public class OakDoor extends Sprite {
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<Class<OakDoorState>> getStates() {
|
||||
return Optional.of(OakDoorState.class);
|
||||
}
|
||||
}
|
||||
|
@ -3,6 +3,8 @@ package cz.jzitnik.game.sprites;
|
||||
import cz.jzitnik.tui.ResourceLoader;
|
||||
import cz.jzitnik.tui.Sprite;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
public class Pig extends Sprite {
|
||||
public enum PigState{
|
||||
LEFT,
|
||||
@ -26,4 +28,9 @@ public class Pig extends Sprite {
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<Class<PigState>> getStates() {
|
||||
return Optional.of(PigState.class);
|
||||
}
|
||||
}
|
||||
|
@ -3,6 +3,8 @@ package cz.jzitnik.game.sprites;
|
||||
import cz.jzitnik.tui.ResourceLoader;
|
||||
import cz.jzitnik.tui.Sprite;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
public class Sheep extends Sprite {
|
||||
public enum SheepState {
|
||||
WHITE_LEFT,
|
||||
@ -77,4 +79,9 @@ public class Sheep extends Sprite {
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<Class<SheepState>> getStates() {
|
||||
return Optional.of(SheepState.class);
|
||||
}
|
||||
}
|
@ -3,6 +3,8 @@ package cz.jzitnik.game.sprites;
|
||||
import cz.jzitnik.tui.ResourceLoader;
|
||||
import cz.jzitnik.tui.Sprite;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
public class SimpleSprite extends Sprite {
|
||||
private final String resource;
|
||||
|
||||
@ -17,4 +19,9 @@ public class SimpleSprite extends Sprite {
|
||||
public String getSprite(Enum key) {
|
||||
throw new RuntimeException("Imposible state");
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<Class<Enum>> getStates() {
|
||||
return Optional.empty();
|
||||
}
|
||||
}
|
||||
|
@ -3,6 +3,8 @@ package cz.jzitnik.game.sprites;
|
||||
import cz.jzitnik.tui.ResourceLoader;
|
||||
import cz.jzitnik.tui.Sprite;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
public class Steve extends Sprite {
|
||||
public enum SteveState{
|
||||
FIRST,
|
||||
@ -10,7 +12,7 @@ public class Steve extends Sprite {
|
||||
}
|
||||
|
||||
public String getSprite() {
|
||||
throw new RuntimeException("Error");
|
||||
return getSprite(SteveState.FIRST);
|
||||
}
|
||||
|
||||
public String getSprite(Enum e) {
|
||||
@ -22,4 +24,9 @@ public class Steve extends Sprite {
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<Class<SteveState>> getStates() {
|
||||
return Optional.of(SteveState.class);
|
||||
}
|
||||
}
|
||||
|
@ -3,6 +3,8 @@ package cz.jzitnik.game.sprites;
|
||||
import cz.jzitnik.tui.ResourceLoader;
|
||||
import cz.jzitnik.tui.Sprite;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
public class Water extends Sprite {
|
||||
public enum WaterState {
|
||||
FIRST,
|
||||
@ -52,4 +54,9 @@ public class Water extends Sprite {
|
||||
|
||||
return stringBuilder.toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<Class<WaterState>> getStates() {
|
||||
return Optional.of(WaterState.class);
|
||||
}
|
||||
}
|
||||
|
@ -3,6 +3,8 @@ package cz.jzitnik.game.sprites;
|
||||
import cz.jzitnik.tui.ResourceLoader;
|
||||
import cz.jzitnik.tui.Sprite;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
public class Wool extends Sprite {
|
||||
public enum WoolState {
|
||||
WHITE,
|
||||
@ -31,4 +33,9 @@ public class Wool extends Sprite {
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<Class<WoolState>> getStates() {
|
||||
return Optional.of(WoolState.class);
|
||||
}
|
||||
}
|
||||
|
@ -3,6 +3,8 @@ package cz.jzitnik.game.sprites;
|
||||
import cz.jzitnik.tui.ResourceLoader;
|
||||
import cz.jzitnik.tui.Sprite;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
public class WoolItem extends Sprite {
|
||||
public enum WoolItemState {
|
||||
WHITE,
|
||||
@ -31,4 +33,9 @@ public class WoolItem extends Sprite {
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<Class<WoolItemState>> getStates() {
|
||||
return Optional.of(WoolItemState.class);
|
||||
}
|
||||
}
|
||||
|
@ -3,6 +3,8 @@ package cz.jzitnik.game.sprites.ui;
|
||||
import cz.jzitnik.tui.ResourceLoader;
|
||||
import cz.jzitnik.tui.Sprite;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
public class Font extends Sprite {
|
||||
public enum FontState {
|
||||
A,B,C,D,E,F,G,H,I,J,K,
|
||||
@ -24,4 +26,9 @@ public class Font extends Sprite {
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<Class<Enum>> getStates() {
|
||||
return Optional.empty();
|
||||
}
|
||||
}
|
||||
|
@ -4,6 +4,7 @@ import cz.jzitnik.tui.ResourceLoader;
|
||||
import cz.jzitnik.tui.Sprite;
|
||||
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
|
||||
public class Number extends Sprite {
|
||||
public enum NumberState {
|
||||
@ -58,4 +59,9 @@ public class Number extends Sprite {
|
||||
default -> throw new IllegalStateException("Unexpected value: " + key);
|
||||
})));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<Class<NumberState>> getStates() {
|
||||
return Optional.of(NumberState.class);
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,9 @@
|
||||
package cz.jzitnik.tui;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
public abstract class Sprite<E extends Enum<E>> {
|
||||
public abstract String getSprite();
|
||||
public abstract String getSprite(E key);
|
||||
public abstract Optional<Class<Enum>> getStates();
|
||||
}
|
||||
|
35
src/test/java/cz/jzitnik/game/SpriteLoaderTest.java
Normal file
35
src/test/java/cz/jzitnik/game/SpriteLoaderTest.java
Normal file
@ -0,0 +1,35 @@
|
||||
package cz.jzitnik.game;
|
||||
|
||||
import cz.jzitnik.tui.Sprite;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
public class SpriteLoaderTest {
|
||||
@Test
|
||||
@DisplayName("Verify all SPRITES enum values are present in SPRITES_MAP")
|
||||
void testAllSpritesArePresent() {
|
||||
for (SpriteLoader.SPRITES spriteEnum : SpriteLoader.SPRITES.values()) {
|
||||
assertTrue(SpriteLoader.SPRITES_MAP.containsKey(spriteEnum), "Missing sprite: " + spriteEnum);
|
||||
assertNotNull(SpriteLoader.SPRITES_MAP.get(spriteEnum), "Sprite is null: " + spriteEnum);
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("Ensure that for each sprite all the resources are present.")
|
||||
void testAllResourcesArePresent() {
|
||||
for (SpriteLoader.SPRITES spriteEnum : SpriteLoader.SPRITES_MAP.keySet()) {
|
||||
Sprite sprite = SpriteLoader.SPRITES_MAP.get(spriteEnum);
|
||||
assertNotNull(sprite.getSprite(),
|
||||
"getSprite() couldn't find file for: " + spriteEnum);
|
||||
|
||||
if (sprite.getStates().isPresent()) {
|
||||
for (Enum state : ((Class<Enum>) SpriteLoader.SPRITES_MAP.get(spriteEnum).getStates().get()).getEnumConstants()) {
|
||||
assertNotNull(SpriteLoader.SPRITES_MAP.get(spriteEnum).getSprite(state),
|
||||
"getSprite("+state+") couldn't find file for: " + spriteEnum);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
25
src/test/java/cz/jzitnik/game/smelting/SmeltingTest.java
Normal file
25
src/test/java/cz/jzitnik/game/smelting/SmeltingTest.java
Normal file
@ -0,0 +1,25 @@
|
||||
package cz.jzitnik.game.smelting;
|
||||
|
||||
import cz.jzitnik.game.entities.items.Item;
|
||||
import cz.jzitnik.game.entities.items.ItemBlockSupplier;
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.function.Executable;
|
||||
|
||||
import java.util.function.Supplier;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
public class SmeltingTest {
|
||||
@Test
|
||||
@DisplayName("Verity that all items in Smelting are actual items")
|
||||
void testAllItems() {
|
||||
for (String item : Smelting.smeltingList.keySet()) {
|
||||
assertDoesNotThrow(() -> ItemBlockSupplier.getItem(item));
|
||||
}
|
||||
|
||||
for (Supplier<Item> supplier: Smelting.smeltingList.values()) {
|
||||
assertDoesNotThrow(supplier::get);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user