package fi.hbp.angr.logic; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.equalTo; import org.junit.After; import org.junit.Before; import org.junit.Test; public class GameStateTest { GameState gameState; @Before public void setUp() throws Exception { gameState = new GameState(); } @After public void tearDown() throws Exception { } @Test public void testAddPoints() { gameState.addPoints(100, false); assertThat(gameState.getScore(), equalTo(100)); } @Test public void testInit() { gameState.init(1, 1, 10); assertThat(gameState.getScore(), equalTo(0)); } @Test public void testGetScore() { gameState.addPoints(100, false); assertThat(gameState.getScore(), equalTo(100)); gameState.addPoints(150, false); assertThat(gameState.getScore(), equalTo(250)); } @Test public void testGetGrenades() { gameState.init(0, 0, 10); gameState.getGrenades().decrement(); assertThat("Test that amount of grenades if decremented.", gameState.getGrenades().getCount(), equalTo(9)); assertThat(gameState.getGrenades().originalCount, equalTo(10)); for (int i = 0; i < 15; i++) { gameState.getGrenades().decrement(); } assertThat("Test that amount of grenades is zero.", gameState.getGrenades().getCount(), equalTo(0)); } @Test public void testGetBadgesZero() { gameState.init(100, 1, 1); gameState.addPoints(200, false); gameState.countFinalScore(); assertThat(gameState.getBadges(), equalTo(0)); } @Test public void testGetBadgesZeroB() { gameState.init(100, 0, 0); gameState.addPoints(90, false); gameState.countFinalScore(); assertThat(gameState.getBadges(), equalTo(0)); } @Test public void testGetBadgesOne() { gameState.init(100, 0, 0); gameState.addPoints(100, false); gameState.countFinalScore(); assertThat(gameState.getBadges(), equalTo(1)); } @Test public void testGetBadgesTwo() { gameState.init(100, 0, 0); gameState.addPoints(200, false); gameState.countFinalScore(); assertThat(gameState.getBadges(), equalTo(2)); } @Test public void testGetBadgesThree() { gameState.init(100, 1, 0); gameState.addPoints(90, true); gameState.addPoints(10, false); gameState.addPoints(5000, false); gameState.countFinalScore(); assertThat(gameState.getBadges(), equalTo(3)); } @Test public void testGameFinalized() { gameState.init(10, 10, 5); gameState.countFinalScore(); gameState.init(40, 50, 10); assertThat(gameState.getGrenades().getCount(), equalTo(5)); } @Test public void testGameFinalizedNotCleared() { boolean end; gameState.init(10, 10, 5); end = gameState.countFinalScore(); assertThat("Test that game was not cleared.", end, equalTo(false)); } @Test public void testGameFinalizedCleared() { boolean end; gameState.init(10, 10, 5); for (int i = 0; i < 10; i++) { gameState.addPoints(1, true); gameState.getGrenades().decrement(); } end = gameState.countFinalScore(); assertThat("Test that game was cleared.", end, equalTo(true)); } @Test public void testGameEndsEnemies() { gameState.init(1, 1, 10); assertThat(gameState.update(), equalTo(true)); gameState.addPoints(10, true); assertThat(gameState.update(), equalTo(false)); } @Test public void testGameEndsGrenades() { gameState.init(1, 1, 10); assertThat(gameState.update(), equalTo(true)); for (int i = 0; i < 15; i++) { gameState.getGrenades().decrement(); } assertThat(gameState.update(), equalTo(false)); } }