diff --git a/pom.xml b/pom.xml index 19ee8d7..9c32aed 100644 --- a/pom.xml +++ b/pom.xml @@ -51,6 +51,12 @@ jackson-databind 2.18.2 + + junit + junit + 4.13.2 + test + diff --git a/src/main/java/cz/jzitnik/game/crafting/CraftingRecipeList.java b/src/main/java/cz/jzitnik/game/crafting/CraftingRecipeList.java index 807a367..5f035b0 100644 --- a/src/main/java/cz/jzitnik/game/crafting/CraftingRecipeList.java +++ b/src/main/java/cz/jzitnik/game/crafting/CraftingRecipeList.java @@ -8,7 +8,7 @@ import org.reflections.Reflections; import java.util.*; public class CraftingRecipeList { - private static final List recipes = new ArrayList<>(); + public static final List recipes = new ArrayList<>(); static { registerRecipes(); diff --git a/src/main/java/cz/jzitnik/game/entities/items/registry/items/IronPickaxe.java b/src/main/java/cz/jzitnik/game/entities/items/registry/items/IronPickaxe.java index dd4efe9..2b83057 100644 --- a/src/main/java/cz/jzitnik/game/entities/items/registry/items/IronPickaxe.java +++ b/src/main/java/cz/jzitnik/game/entities/items/registry/items/IronPickaxe.java @@ -6,7 +6,7 @@ import cz.jzitnik.game.entities.items.Item; import cz.jzitnik.game.entities.items.ItemType; import cz.jzitnik.game.entities.items.ToolVariant; -@ItemRegistry("wooden_pickaxe") +@ItemRegistry("iron_pickaxe") public class IronPickaxe extends Item { public IronPickaxe() { super("iron_pickaxe", "Iron pickaxe", ItemType.PICKAXE, SpriteLoader.SPRITES.IRON_PICKAXE, ToolVariant.IRON, 13.5, 250, false); diff --git a/src/main/java/cz/jzitnik/game/mobs/EntityHurtAnimation.java b/src/main/java/cz/jzitnik/game/mobs/EntityHurtAnimation.java index f706a9e..1fdb716 100644 --- a/src/main/java/cz/jzitnik/game/mobs/EntityHurtAnimation.java +++ b/src/main/java/cz/jzitnik/game/mobs/EntityHurtAnimation.java @@ -7,7 +7,7 @@ import cz.jzitnik.game.annotations.EntityHurtAnimationHandler; import org.reflections.Reflections; public class EntityHurtAnimation { - private final HashMap handlerList = new HashMap<>(); + public final HashMap handlerList = new HashMap<>(); public EntityHurtAnimation() { registerHandlers(); diff --git a/src/main/java/cz/jzitnik/game/mobs/EntityKill.java b/src/main/java/cz/jzitnik/game/mobs/EntityKill.java index 7aa682d..7a664dc 100644 --- a/src/main/java/cz/jzitnik/game/mobs/EntityKill.java +++ b/src/main/java/cz/jzitnik/game/mobs/EntityKill.java @@ -7,7 +7,7 @@ import cz.jzitnik.game.annotations.EntityKillHandler; import org.reflections.Reflections; public class EntityKill { - private final HashMap handlerList = new HashMap<>(); + public final HashMap handlerList = new HashMap<>(); public EntityKill() { registerHandlers(); diff --git a/src/main/java/cz/jzitnik/game/mobs/EntityLogicProvider.java b/src/main/java/cz/jzitnik/game/mobs/EntityLogicProvider.java index 3c334cc..bde9842 100644 --- a/src/main/java/cz/jzitnik/game/mobs/EntityLogicProvider.java +++ b/src/main/java/cz/jzitnik/game/mobs/EntityLogicProvider.java @@ -14,7 +14,7 @@ import org.reflections.Reflections; public class EntityLogicProvider { private static final int CHUNK_SIZE = 20; - private final HashMap logicList = new HashMap<>(); + public final HashMap logicList = new HashMap<>(); @AllArgsConstructor @Getter diff --git a/src/main/java/cz/jzitnik/game/mobs/EntitySpawnProvider.java b/src/main/java/cz/jzitnik/game/mobs/EntitySpawnProvider.java index 9b00369..9474792 100644 --- a/src/main/java/cz/jzitnik/game/mobs/EntitySpawnProvider.java +++ b/src/main/java/cz/jzitnik/game/mobs/EntitySpawnProvider.java @@ -15,15 +15,6 @@ import org.reflections.Reflections; public class EntitySpawnProvider { private final List spawnList = new ArrayList<>(); - @AllArgsConstructor - @Getter - public static class EntityLogicMobDTO { - private Game game; - private Block mob; - private int x; - private int y; - } - public void update(Game game, Terminal terminal) { int[] playerLocation = game.getPlayerCords(); int playerX = playerLocation[0]; diff --git a/src/test/java/cz/jzitnik/game/crafting/CraftingRecipeListTest.java b/src/test/java/cz/jzitnik/game/crafting/CraftingRecipeListTest.java new file mode 100644 index 0000000..0f9f805 --- /dev/null +++ b/src/test/java/cz/jzitnik/game/crafting/CraftingRecipeListTest.java @@ -0,0 +1,30 @@ +package cz.jzitnik.game.crafting; + +import cz.jzitnik.game.entities.items.ItemBlockSupplier; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import java.util.Arrays; + +import static org.junit.jupiter.api.Assertions.*; + +class CraftingRecipeListTest { + @Test + @DisplayName("Verify that all items in the crafting recipe list are actual items") + void verifyAllItems() { + for (CraftingRecipe craftingRecipe : CraftingRecipeList.recipes) { + if (!craftingRecipe.isUsingRegex()) { + for (String[] arr : craftingRecipe.getRecipe()) { + for (String item : arr) { + if (item == null ) { + continue; + } + assertDoesNotThrow(() -> ItemBlockSupplier.getItem(item), "Item " + item + " does not exist but is present as source in crafting recipe list."); + } + } + } + + assertDoesNotThrow(craftingRecipe.getItemSupplier()::get, "Output item does not exist for recipe: " + Arrays.deepToString(craftingRecipe.getRecipe()) + "."); + } + } +} \ No newline at end of file diff --git a/src/test/java/cz/jzitnik/game/mobs/EntityHurtAnimationTest.java b/src/test/java/cz/jzitnik/game/mobs/EntityHurtAnimationTest.java new file mode 100644 index 0000000..705d297 --- /dev/null +++ b/src/test/java/cz/jzitnik/game/mobs/EntityHurtAnimationTest.java @@ -0,0 +1,18 @@ +package cz.jzitnik.game.mobs; + +import cz.jzitnik.game.entities.items.ItemBlockSupplier; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +class EntityHurtAnimationTest { + @Test + @DisplayName("Test that entities exists for all entity spawn handlers") + void allEntitiesExists() { + EntityHurtAnimation entityHurtAnimation = new EntityHurtAnimation(); + for (String entity : entityHurtAnimation.handlerList.keySet()) { + assertDoesNotThrow(() -> ItemBlockSupplier.getEntity(entity), "Entity " + entity + " does not exist but has hurt animation implemented."); + } + } +} \ No newline at end of file diff --git a/src/test/java/cz/jzitnik/game/mobs/EntityKillTest.java b/src/test/java/cz/jzitnik/game/mobs/EntityKillTest.java new file mode 100644 index 0000000..233b2d4 --- /dev/null +++ b/src/test/java/cz/jzitnik/game/mobs/EntityKillTest.java @@ -0,0 +1,18 @@ +package cz.jzitnik.game.mobs; + +import cz.jzitnik.game.entities.items.ItemBlockSupplier; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +class EntityKillTest { + @Test + @DisplayName("Test that entities exists for all entity spawn handlers") + void allEntitiesExists() { + EntityKill entityKill = new EntityKill(); + for (String entity : entityKill.handlerList.keySet()) { + assertDoesNotThrow(() -> ItemBlockSupplier.getEntity(entity), "Entity " + entity + " does not exist but has a kill implemented."); + } + } +} \ No newline at end of file diff --git a/src/test/java/cz/jzitnik/game/mobs/EntityLogicProviderTest.java b/src/test/java/cz/jzitnik/game/mobs/EntityLogicProviderTest.java new file mode 100644 index 0000000..c2cad2b --- /dev/null +++ b/src/test/java/cz/jzitnik/game/mobs/EntityLogicProviderTest.java @@ -0,0 +1,17 @@ +package cz.jzitnik.game.mobs; + +import cz.jzitnik.game.entities.items.ItemBlockSupplier; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; + +class EntityLogicProviderTest { + @Test + @DisplayName("Test that entities exists for all entity spawn handlers") + void allEntitiesExists() { + EntityLogicProvider entityLogicProvider = new EntityLogicProvider(); + for (String entity : entityLogicProvider.logicList.keySet()) { + assertDoesNotThrow(() -> ItemBlockSupplier.getEntity(entity), "Entity " + entity + " does not exist but has a logic implemented."); + } + } +} \ No newline at end of file diff --git a/src/test/java/cz/jzitnik/game/smelting/SmeltingTest.java b/src/test/java/cz/jzitnik/game/smelting/SmeltingTest.java index 2223ab8..1975693 100644 --- a/src/test/java/cz/jzitnik/game/smelting/SmeltingTest.java +++ b/src/test/java/cz/jzitnik/game/smelting/SmeltingTest.java @@ -4,7 +4,6 @@ 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; @@ -15,11 +14,15 @@ public class SmeltingTest { @DisplayName("Verity that all items in Smelting are actual items") void testAllItems() { for (String item : Smelting.smeltingList.keySet()) { - assertDoesNotThrow(() -> ItemBlockSupplier.getItem(item)); + assertDoesNotThrow(() -> ItemBlockSupplier.getItem(item), "Item " + item + "does not exist but is present as source in Smelting."); } for (Supplier supplier: Smelting.smeltingList.values()) { - assertDoesNotThrow(supplier::get); + assertDoesNotThrow(supplier::get, "Item does not exist but is present as result in Smelting."); + } + + for (String fuel : Smelting.fuelList.keySet()) { + assertDoesNotThrow(() -> ItemBlockSupplier.getItem(fuel), "Item " + fuel + "does not exist but is present as fuel in Smelting."); } } } \ No newline at end of file