diff --git a/LoginTest/app/build.gradle b/LoginTest/app/build.gradle index 05b2def..1e2e884 100644 --- a/LoginTest/app/build.gradle +++ b/LoginTest/app/build.gradle @@ -23,6 +23,7 @@ dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.3.0' - testCompile "org.mockito:mockito-core:1.+" + testCompile 'org.mockito:mockito-core:1.+' testCompile 'org.hamcrest:hamcrest-library:1.3' + testCompile 'org.robolectric:robolectric:3.0' } diff --git a/LoginTest/app/src/main/java/piotrek/logintest/CredentialsStorage.java b/LoginTest/app/src/main/java/piotrek/logintest/CredentialsStorage.java new file mode 100644 index 0000000..85a04c1 --- /dev/null +++ b/LoginTest/app/src/main/java/piotrek/logintest/CredentialsStorage.java @@ -0,0 +1,26 @@ +package piotrek.logintest; + +import android.content.SharedPreferences; + +/** + * Created by Admin on 2016-04-27. + */ +public class CredentialsStorage implements ICredentialsStorage { + private final SharedPreferences preferences; + + public CredentialsStorage(SharedPreferences preferences) { + + this.preferences = preferences; + } + + @Override + public void storeUsername(String username) { + preferences + .edit() + .putString("user", username) + .apply(); + + // apply - asynchroniczny + // commit - synchroniczny + } +} diff --git a/LoginTest/app/src/test/java/piotrek/logintest/ICredentialsStorageTest.java b/LoginTest/app/src/test/java/piotrek/logintest/ICredentialsStorageTest.java new file mode 100644 index 0000000..32d0f5f --- /dev/null +++ b/LoginTest/app/src/test/java/piotrek/logintest/ICredentialsStorageTest.java @@ -0,0 +1,36 @@ +package piotrek.logintest; + +import android.content.SharedPreferences; +import android.preference.PreferenceManager; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.robolectric.RobolectricGradleTestRunner; +import org.robolectric.RuntimeEnvironment; +import org.robolectric.annotation.Config; +import org.robolectric.shadows.ShadowPreferenceManager; + +import static org.junit.Assert.*; + +/** + * Created by Admin on 2016-04-27. + */ +@RunWith(RobolectricGradleTestRunner.class) +@Config(constants = BuildConfig.class, sdk = 21) +public class ICredentialsStorageTest { + + @Test + public void should_save_in_shared_preferences() throws Exception { + // prepare + SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(RuntimeEnvironment.application); + + ICredentialsStorage credentialsStorage = new CredentialsStorage(preferences); + + // run + credentialsStorage.storeUsername("username"); + // assert + + String current = preferences.getString("user", null); + assertEquals("username", current); + } +} \ No newline at end of file diff --git a/LoginTest/app/src/test/java/piotrek/logintest/LoginManagerTests.java b/LoginTest/app/src/test/java/piotrek/logintest/LoginManagerTests.java index 385275e..71ff0ef 100644 --- a/LoginTest/app/src/test/java/piotrek/logintest/LoginManagerTests.java +++ b/LoginTest/app/src/test/java/piotrek/logintest/LoginManagerTests.java @@ -87,6 +87,6 @@ public void setUp() throws Exception { when(api.login(anyString(), anyString())) .thenReturn("OK"); - sut = new LoginManager(credentialsStorage, api, view); + sut = new LoginManager(credentialsStorage, api); } }