Добавить первую волну мира Foundations
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
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.List;
|
||||
|
||||
public final class FoundationsContentTest {
|
||||
@Test
|
||||
public void firstFoundationsWaveMatchesTheApprovedMatrixAndTeachesOneIdeaAtATime() {
|
||||
List<LevelDefinition> levels = LevelCatalog.all();
|
||||
assertEquals(22, levels.size());
|
||||
|
||||
LevelDefinition firstReturn = levels.get(18);
|
||||
assertIdentity(firstReturn, 19, "foundations.first-return", "First Return", 0, 28);
|
||||
assertTrue(firstReturn.hazards.isEmpty());
|
||||
assertTrue(firstReturn.switches.isEmpty());
|
||||
assertTrue(firstReturn.doors.isEmpty());
|
||||
|
||||
LevelDefinition coveredPath = levels.get(19);
|
||||
assertIdentity(coveredPath, 20, "foundations.covered-path", "Covered Path", 2, 42);
|
||||
assertTrue(coveredPath.containsMechanic(LevelDefinition.HazardType.SPIKES));
|
||||
assertTrue(coveredPath.switches.isEmpty());
|
||||
|
||||
LevelDefinition heldOpen = levels.get(20);
|
||||
assertIdentity(heldOpen, 21, "foundations.held-open", "Held Open", 1, 45);
|
||||
assertTrue(heldOpen.containsMechanic(LevelDefinition.HazardType.SAW));
|
||||
assertTrue(heldOpen.containsMechanic(LevelDefinition.SwitchType.PRESSURE));
|
||||
assertFalse(heldOpen.doors.isEmpty());
|
||||
assertEquals(heldOpen.switches.get(0).signalId,
|
||||
heldOpen.doors.get(0).requiredSignals.get(0));
|
||||
|
||||
LevelDefinition clockwork = levels.get(21);
|
||||
assertIdentity(clockwork, 22, "foundations.clockwork-step", "Clockwork Step", 0, 48);
|
||||
assertTrue(clockwork.containsMechanic(LevelDefinition.SwitchType.TOGGLE));
|
||||
assertTrue(clockwork.containsMechanic(LevelDefinition.HazardType.PIT));
|
||||
assertTrue(clockwork.hasMovingPlatform());
|
||||
assertFalse(clockwork.platforms.get(2).controlId.isEmpty());
|
||||
assertEquals(clockwork.switches.get(0).signalId, clockwork.platforms.get(2).controlId);
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
@@ -15,7 +15,7 @@ public final class LevelCatalogTest {
|
||||
@Test
|
||||
public void productionCatalogContainsMechanicsAndChallengeTeachingLevels() {
|
||||
List<LevelDefinition> levels = LevelCatalog.all();
|
||||
assertEquals(18, levels.size());
|
||||
assertEquals(22, levels.size());
|
||||
Set<String> titles = new HashSet<>();
|
||||
for (int i = 0; i < levels.size(); i++) {
|
||||
LevelDefinition level = levels.get(i);
|
||||
|
||||
Reference in New Issue
Block a user