package co.smartreceipts.android.identity.store;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
@RunWith(RobolectricTestRunner.class)
public class MutableIdentityStoreTest {
// Class under test
MutableIdentityStore mutableIdentityStore;
SharedPreferences sharedPreferences;
@Before
public void setUp() {
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(RuntimeEnvironment.application);
mutableIdentityStore = new MutableIdentityStore(sharedPreferences);
}
@After
public void tearDown() {
sharedPreferences.edit().clear().apply();
}
@Test
public void defaultValues() {
assertEquals(false, mutableIdentityStore.isLoggedIn());
assertNull(mutableIdentityStore.getEmail());
assertNull(mutableIdentityStore.getToken());
}
@Test
public void setEmailAndToken() {
final String email = "test@test.com";
final String token = "token";
mutableIdentityStore.setEmailAndToken(email, token);
assertEquals(true, mutableIdentityStore.isLoggedIn());
assertNotNull(mutableIdentityStore.getEmail());
assertNotNull(mutableIdentityStore.getToken());
assertEquals(email, mutableIdentityStore.getEmail().getId());
assertEquals(token, mutableIdentityStore.getToken().getId());
}
@Test
public void nullOutEmailAndToken() {
final String email = "test@test.com";
final String token = "token";
mutableIdentityStore.setEmailAndToken(email, token);
// Now null out
mutableIdentityStore.setEmailAndToken(null, null);
assertEquals(false, mutableIdentityStore.isLoggedIn());
assertNull(mutableIdentityStore.getEmail());
assertNull(mutableIdentityStore.getToken());
}
}