mourning-ember / src / test / java / dev / llan / model / pieces / EntityTest.java
EntityTest.java
Raw
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));
  }
}