49 lines
1.8 KiB
Java
49 lines
1.8 KiB
Java
package com.projectsacrifice.game;
|
|
|
|
import org.junit.Test;
|
|
|
|
import static org.junit.Assert.assertEquals;
|
|
|
|
public final class CompletionResultTest {
|
|
@Test
|
|
public void resultKeepsThisRunAndSavedBestSeparateAndSuggestsTheMissingTarget() {
|
|
LevelDefinition level = LevelCatalog.get(0);
|
|
|
|
CompletionResult result = CompletionResult.create(
|
|
level,
|
|
2,
|
|
42_000L,
|
|
0,
|
|
25_000L,
|
|
true
|
|
);
|
|
|
|
assertEquals(2, result.currentDeaths());
|
|
assertEquals(42_000L, result.currentTimeMs());
|
|
assertEquals(0, result.bestDeaths());
|
|
assertEquals(25_000L, result.bestTimeMs());
|
|
assertEquals(CompletionResult.NextGoal.TARGET_DEATHS, result.nextGoal());
|
|
assertEquals(0, result.nextGoalValue());
|
|
}
|
|
|
|
@Test
|
|
public void masteredLevelPointsAtTheNextLevelOrPersonalBest() {
|
|
LevelDefinition first = LevelCatalog.get(0);
|
|
CompletionResult timeTarget = CompletionResult.create(first, 0, 31_000L,
|
|
0, 25_000L, true);
|
|
assertEquals(CompletionResult.NextGoal.TARGET_TIME, timeTarget.nextGoal());
|
|
assertEquals(30_000L, timeTarget.nextGoalValue());
|
|
|
|
CompletionResult next = CompletionResult.create(first, 0, 25_000L,
|
|
0, 25_000L, true);
|
|
assertEquals(CompletionResult.NextGoal.NEXT_LEVEL, next.nextGoal());
|
|
assertEquals(2, next.nextGoalValue());
|
|
|
|
LevelDefinition last = LevelCatalog.get(LevelCatalog.all().size() - 1);
|
|
CompletionResult lastResult = CompletionResult.create(last,
|
|
last.targetDeaths, last.targetSeconds * 900L,
|
|
last.targetDeaths, last.targetSeconds * 900L, false);
|
|
assertEquals(CompletionResult.NextGoal.PERSONAL_BEST, lastResult.nextGoal());
|
|
}
|
|
}
|