package com.zachklipp.captivate.test.state_machine; import android.test.AndroidTestCase; import com.zachklipp.captivate.state_machine.PortalStateMachine; import com.zachklipp.captivate.state_machine.PortalStateMachineStorageBackend; import com.zachklipp.captivate.test.captive_portal.MockPortalDetector; public class PortalStateMachineStorageBackendTest extends AndroidTestCase { private PortalStateMachine mStateMachine; private PortalStateMachineStorageBackend mBackend; @Override protected void setUp() { MockPortalDetector detector = new MockPortalDetector(); mStateMachine = new PortalStateMachine(detector); mBackend = new PortalStateMachineStorageBackend(mContext, new MockPortalDetector()); mBackend.clear(); } @Override protected void tearDown() { if (mBackend != null) { mBackend.clear(); } } public void testSaveThenLoad() { mStateMachine.transitionTo(PortalStateMachine.State.SIGNIN_REQUIRED); mBackend.save(mStateMachine); mStateMachine = (PortalStateMachine) mBackend.load(); assertNotNull(mStateMachine); assertEquals(PortalStateMachine.State.SIGNIN_REQUIRED, mStateMachine.getCurrentState()); } public void testCanLoad() { assertFalse(mBackend.canLoad()); mBackend.save(mStateMachine); assertTrue(mBackend.canLoad()); mBackend.clear(); assertFalse(mBackend.canLoad()); } public void testCreate() { mStateMachine = (PortalStateMachine) mBackend.create(); assertNotNull(mStateMachine); assertSame(mStateMachine.getCurrentState(), PortalStateMachine.State.UNKNOWN); } }