Skip to content

Commit

Permalink
Add more tests for HealthAuthoritySystem
Browse files Browse the repository at this point in the history
  • Loading branch information
e-aakash committed May 21, 2019
1 parent 9b6f581 commit a4d033f
Showing 1 changed file with 62 additions and 0 deletions.
62 changes: 62 additions & 0 deletions src/test/java/org/terasology/logic/health/HealEventTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,16 @@
import org.terasology.engine.Time;
import org.terasology.entitySystem.entity.EntityManager;
import org.terasology.entitySystem.entity.EntityRef;
import org.terasology.logic.health.event.BeforeHealEvent;
import org.terasology.logic.health.event.DoHealEvent;
import org.terasology.logic.players.PlayerCharacterComponent;
import org.terasology.moduletestingenvironment.ModuleTestingEnvironment;
import org.terasology.moduletestingenvironment.TestEventReceiver;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;

import java.util.List;
import java.util.Set;

public class HealEventTest extends ModuleTestingEnvironment {
Expand Down Expand Up @@ -67,4 +72,61 @@ public void healTest() {
assertEquals(player.getComponent(HealthComponent.class).currentHealth, 100);
}

@Test
public void healEventSentTest() {
TestEventReceiver<BeforeHealEvent> receiver = new TestEventReceiver<>(getHostContext(), BeforeHealEvent.class);
List<BeforeHealEvent> list = receiver.getEvents();
assertTrue(list.isEmpty());

HealthComponent healthComponent = new HealthComponent();
healthComponent.currentHealth = 0;
healthComponent.maxHealth = 100;

final EntityRef player = entityManager.create();
player.addComponent(new PlayerCharacterComponent());
player.addComponent(healthComponent);

player.send(new DoHealEvent(10));
assertEquals(1, list.size());
}

@Test
public void healEventCancelTest() {
HealthComponent healthComponent = new HealthComponent();
healthComponent.currentHealth = 0;
healthComponent.maxHealth = 100;

final EntityRef player = entityManager.create();
player.addComponent(new PlayerCharacterComponent());
player.addComponent(healthComponent);

TestEventReceiver<BeforeHealEvent> receiver = new TestEventReceiver<>(getHostContext(), BeforeHealEvent.class,
(event, entity) -> {
event.consume();
});
player.send(new DoHealEvent(10));
assertEquals(0, player.getComponent(HealthComponent.class).currentHealth);
}

@Test
public void healModifyEventTest() {
HealthComponent healthComponent = new HealthComponent();
healthComponent.currentHealth = 0;
healthComponent.maxHealth = 100;

final EntityRef player = entityManager.create();
player.addComponent(new PlayerCharacterComponent());
player.addComponent(healthComponent);

TestEventReceiver<BeforeHealEvent> receiver = new TestEventReceiver<>(getHostContext(), BeforeHealEvent.class,
(event, entity) -> {
event.add(10);
event.subtract(5);
event.multiply(2);
});
// expected = ( initial:10 + 10 - 5 ) * 2 = 30
player.send(new DoHealEvent(10));
assertEquals(30, player.getComponent(HealthComponent.class).currentHealth);
}

}

0 comments on commit a4d033f

Please sign in to comment.