Files
goon-game/app/src/test/java/com/projectsacrifice/game/FoundationsAdvancedContentTest.java
T

59 lines
2.5 KiB
Java

package com.projectsacrifice.game;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import org.junit.Test;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public final class FoundationsAdvancedContentTest {
@Test
public void secondFoundationsWaveMatchesMatrixAndPreservesRecoveryContracts() {
List<LevelDefinition> levels = LevelCatalog.all();
assertEquals(26, levels.size());
LevelDefinition remote = levels.get(22);
assertIdentity(remote, 23, "foundations.remote-volunteer", "Remote Volunteer", 1, 50);
assertTrue(remote.containsMechanic(LevelDefinition.HazardType.SAW));
assertTrue(remote.containsMechanic(LevelDefinition.SwitchType.PRESSURE));
assertFalse(remote.doors.isEmpty());
LevelDefinition frozen = levels.get(23);
assertIdentity(frozen, 24, "foundations.frozen-step", "Frozen Step", 1, 48);
assertTrue(frozen.containsMechanic(LevelDefinition.HazardType.FREEZER));
assertTrue(frozen.goal.y < 700f);
LevelDefinition live = levels.get(24);
assertIdentity(live, 25, "foundations.living-wire", "Living Wire", 1, 52);
assertTrue(live.containsMechanic(LevelDefinition.HazardType.ELECTRIC));
assertFalse(live.doors.isEmpty());
LevelDefinition timed = levels.get(25);
assertIdentity(timed, 26, "foundations.borrowed-time", "Second Hand", 0, 55);
assertTrue(timed.containsMechanic(LevelDefinition.SwitchType.TIMED));
assertTrue(timed.containsMechanic(LevelDefinition.HazardType.PIT));
assertTrue(timed.hasMovingPlatform());
assertFalse(timed.doors.isEmpty());
assertEquals(2, timed.switches.size());
Set<String> signals = new HashSet<>();
for (LevelDefinition.Switch item : timed.switches) signals.add(item.signalId);
assertEquals(Set.of(timed.platforms.get(3).controlId), signals);
}
private static void assertIdentity(LevelDefinition level, int number, String id, String title,
int targetDeaths, int targetSeconds) {
assertEquals(number, level.number);
assertEquals(id, level.levelId);
assertEquals("foundations", level.worldId);
assertEquals(title, level.title);
assertEquals(targetDeaths, level.targetDeaths);
assertEquals(targetSeconds, level.targetSeconds);
assertNotNull(level.collectible);
}
}