package dev.llan.model.pieces; import dev.llan.model.Game; import dev.llan.model.GameContainer; import dev.llan.model.pieces.attributes.stats.Stats; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.*; class EntityTest { private Entity entity; private Game game; @BeforeEach void setUp() { GameContainer.getInstance().initGame(); game = GameContainer.getInstance().getCurrentGame(); entity = game.getPlayer(); } @Test void reduceHealth() { entity.reduceHealth(5.0); assertEquals(10.0, entity.getStats().getHealth(), 0.0001); } @Test void reduceHealthPastZero() { entity.reduceHealth(20.0); assertEquals(0.0, entity.getStats().getHealth(), 0.0001); } @Test void getStats() { Stats stats = entity.getStats(); assertEquals(15.0, stats.getMaxHealth(), 0.0001); assertEquals(3.0, stats.getSpeed(), 0.0001); assertEquals(3.0, stats.getMovement(), 0.0001); assertEquals(1.0, stats.getAttack(), 0.0001); assertEquals(7.0, stats.getScoutingRadius(), 0.0001); } @Test void reduceMovement() { entity.reduceMovement(1.5); assertEquals(1.5, entity.getStats().getMovement(), 0.0001); } @Test void reduceMovementPastZero() { entity.reduceMovement(3.5); assertEquals(0.0, entity.getStats().getMovement(), 0.0001); } @Test void rejectsCanMove() { entity.reduceMovement(2.5); double cost = 1.5; assertFalse(entity.canMove(cost)); } @Test void canMove() { entity.reduceMovement(0.5); double cost = 1.5; assertTrue(entity.canMove(cost)); } }