package com.rapidftr.services; import static org.mockito.Mockito.mock; import org.junit.After; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import com.rapidftr.Key; import com.rapidftr.datastore.MockStore; import com.rapidftr.net.HttpService; import com.rapidftr.utilities.Settings; public class LoginServiceTest { private LoginSettings settings; private HttpService service; private MockStore store; @Before public void setUpStore(){ service = mock(HttpService.class); store = new MockStore(new Key("mock")); settings = new LoginSettings(new Settings(store)); settings.setLastUsedUserName("test"); settings.setLastUsedPassword("pass"); settings.setAuthorisationTokenForOfflineLogin("token"); } @After public void clearData(){ settings.clear(); } @Test public void shouldAuthenticateOfflineUserWithLastUsedCredentials() { LoginService login = new LoginService(service, settings); Assert.assertTrue(login.offlineLogin("test", "pass")); String user = store.getString("current.user"); Assert.assertNotNull(user); Assert.assertEquals("test", user); } @Test public void shouldNotAuthenticateOfflineUserCredentialsAreInValid() { LoginService login = new LoginService(service, settings); Assert.assertFalse(login.offlineLogin("test2", "pass")); String user = store.getString("current.user"); Assert.assertNull(user); } }