package org.iilab.pb; import android.app.Application; import android.content.SharedPreferences; import org.iilab.pb.common.ApplicationSettings; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.Robolectric; import org.robolectric.RobolectricTestRunner; import org.robolectric.shadows.ShadowPreferenceManager; import static junit.framework.Assert.assertNull; import static org.iilab.pb.common.ApplicationSettings.isFirstRun; import static org.iilab.pb.common.ApplicationSettings.setFirstRun; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; @RunWith(RobolectricTestRunner.class) public class ApplicationSettingsTest { private SharedPreferences sharedPreferences; private Application context; @Before public void setUp() { context = Robolectric.application; sharedPreferences = ShadowPreferenceManager.getDefaultSharedPreferences(context); } @Test public void shouldReturnTrueWhenOnFirstRun() { assertTrue(isFirstRun(context)); } @Test public void shouldReturnNullIfThereIsNoLocationStored() { assertNull(ApplicationSettings.getCurrentBestLocation(context)); } @Test public void shouldUpdateFirstRunFlagOnCompletion() { setFirstRun(context, false); assertFalse(sharedPreferences.getBoolean("FIRST_RUN", true)); } @Test public void shouldReturnFalseWhenFirstRunIsCompleted() { SharedPreferences.Editor editor = sharedPreferences.edit(); editor.putBoolean("FIRST_RUN", false); editor.commit(); assertFalse(isFirstRun(context)); } }