43 lines
1.8 KiB
Java
43 lines
1.8 KiB
Java
package com.projectsacrifice.game;
|
|
|
|
import static org.junit.Assert.assertEquals;
|
|
import static org.junit.Assert.assertFalse;
|
|
import static org.junit.Assert.assertTrue;
|
|
|
|
import androidx.test.core.app.ActivityScenario;
|
|
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
|
|
|
import org.junit.Test;
|
|
import org.junit.runner.RunWith;
|
|
|
|
@RunWith(AndroidJUnit4.class)
|
|
public final class WeightedObjectIntegrationTest {
|
|
@Test
|
|
public void productionInputPushesSharedMassOntoPlateAndSaveCapturesEveryObject() {
|
|
try (ActivityScenario<MainActivity> activity = ActivityScenario.launch(MainActivity.class)) {
|
|
activity.onActivity(current -> {
|
|
GameView view = current.gameViewForAutomation();
|
|
view.enableDeterministicAutomationClock();
|
|
view.startLevelForAutomation(17);
|
|
|
|
GameView.AutomationSnapshot initial = view.automationSnapshot();
|
|
assertEquals(5, initial.physicalObjectCount());
|
|
assertEquals("COUNTERWEIGHT", initial.firstPhysicalObjectType());
|
|
assertEquals(3, initial.firstPhysicalObjectMass());
|
|
assertFalse(initial.allDoorsOpen());
|
|
|
|
view.setAutomationInput(false, true, false);
|
|
view.advanceDeterministicAutomation(3_000L);
|
|
GameView.AutomationSnapshot pushed = view.automationSnapshot();
|
|
assertTrue(pushed.firstPhysicalObjectX() >= 920f);
|
|
assertTrue(pushed.allDoorsOpen());
|
|
|
|
GameSessionSnapshot saved = view.sessionSnapshotForAutomation();
|
|
assertEquals(5, saved.objects().size());
|
|
assertEquals(LevelDefinition.PhysicalObjectType.COUNTERWEIGHT,
|
|
saved.objects().get(0).type());
|
|
});
|
|
}
|
|
}
|
|
}
|