package com.projectsacrifice.game; import org.junit.Test; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; public final class OnboardingFlowTest { @Test public void firstRunExplainsControlsAndCorpsesThenStaysDismissed() { OnboardingFlow flow = OnboardingFlow.firstRun(false); assertTrue(flow.isVisible()); assertEquals(OnboardingFlow.Step.MOVEMENT, flow.step()); flow.next(); assertEquals(OnboardingFlow.Step.MULTITOUCH_JUMP, flow.step()); flow.next(); assertEquals(OnboardingFlow.Step.CORPSES_ARE_TOOLS, flow.step()); flow.next(); assertFalse(flow.isVisible()); assertTrue(flow.isComplete()); assertFalse(OnboardingFlow.firstRun(flow.isComplete()).isVisible()); } @Test public void firstRunCanBeSkippedImmediately() { OnboardingFlow flow = OnboardingFlow.firstRun(false); flow.skip(); assertFalse(flow.isVisible()); assertTrue(flow.isComplete()); } }