Files
goon-game/app/src/androidTest/java/com/projectsacrifice/game/ChallengeCollectibleIntegrationTest.java
T

54 lines
2.4 KiB
Java

package com.projectsacrifice.game;
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 ChallengeCollectibleIntegrationTest {
@Test
public void collectedCacheSurvivesRecreationAndRestartResetsAttemptState() {
try (ActivityScenario<MainActivity> activity = ActivityScenario.launch(MainActivity.class)) {
activity.onActivity(current -> {
GameView view = current.gameViewForAutomation();
view.enableDeterministicAutomationClock();
view.startLevelForAutomation(18);
assertTrue(view.automationSnapshot().collectibleVisible());
view.setAutomationInput(false, true, false);
for (int decision = 0; decision < 400
&& view.automationSnapshot().playerX() < 650f; decision++) {
view.advanceDeterministicAutomation(16L);
}
assertTrue("approach x=" + view.automationSnapshot().playerX(),
view.automationSnapshot().playerX() >= 650f);
view.setAutomationInput(false, true, true);
for (int decision = 0; decision < 180
&& !view.automationSnapshot().collectibleFound(); decision++) {
view.advanceDeterministicAutomation(16L);
}
view.setAutomationInput(false, false, false);
assertTrue(view.automationSnapshot().collectibleFound());
assertFalse(view.automationSnapshot().collectibleVisible());
assertTrue(view.sessionSnapshotForAutomation().collectibleFound());
});
activity.recreate();
activity.onActivity(current -> {
GameView view = current.gameViewForAutomation();
assertTrue(view.automationSnapshot().visiblyPaused());
assertTrue(view.automationSnapshot().collectibleFound());
assertFalse(view.automationSnapshot().collectibleVisible());
view.startLevelForAutomation(18);
assertFalse(view.automationSnapshot().collectibleFound());
assertTrue(view.automationSnapshot().collectibleVisible());
});
}
}
}