59 lines
2.5 KiB
Java
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);
|
|
}
|
|
}
|