Replace AccountManager with EncryptedSharedPreferences

This commit is contained in:
Kirill Kamakin
2022-04-08 20:00:53 +05:00
parent ba28f7d322
commit 7c081c199a
41 changed files with 243 additions and 722 deletions

View File

@@ -32,7 +32,7 @@ class AuthDataSourceImplTest {
fun setUp() {
MockKAnnotations.init(this)
subject = AuthDataSourceImpl(authServiceFactory, NetworkModule.createJson())
coEvery { authServiceFactory.provideService(any(), eq(false)) } returns authService
coEvery { authServiceFactory.provideService(any()) } returns authService
}
@Test
@@ -72,7 +72,7 @@ class AuthDataSourceImplTest {
@Test(expected = MalformedUrl::class)
fun `when authenticate and provideService throws then MalformedUrl`() = runTest {
coEvery {
authServiceFactory.provideService(any(), eq(false))
authServiceFactory.provideService(any())
} throws MalformedUrl(RuntimeException())
callAuthenticate()
}

View File

@@ -1,22 +0,0 @@
package gq.kirmanak.mealient.data.auth.impl
import gq.kirmanak.mealient.service.auth.AccountManagerInteractor
import io.mockk.MockKAnnotations
import io.mockk.impl.annotations.MockK
import org.junit.Before
class AuthRepoImplTest {
@MockK
lateinit var accountManagerInteractor: AccountManagerInteractor
lateinit var subject: AuthRepoImpl
@Before
fun setUp() {
MockKAnnotations.init(this)
subject = AuthRepoImpl(accountManagerInteractor)
}
// TODO write the actual tests
}

View File

@@ -66,7 +66,7 @@ class AuthenticationInterceptorTest {
coVerifySequence {
authRepo.getAuthHeader()
authRepo.invalidateAuthHeader(TEST_AUTH_HEADER)
authRepo.invalidateAuthHeader()
authRepo.getAuthHeader()
}
}

View File

@@ -33,7 +33,7 @@ class RetrofitServiceFactoryTest {
fun setUp() {
MockKAnnotations.init(this)
subject = retrofitBuilder.createServiceFactory(baseURLStorage)
coEvery { retrofitBuilder.buildRetrofit(any(), eq(true)) } returns retrofit
coEvery { retrofitBuilder.buildRetrofit(any()) } returns retrofit
every { retrofit.create(eq(VersionService::class.java)) } returns versionService
coEvery { baseURLStorage.requireBaseURL() } returns TEST_BASE_URL
}
@@ -53,7 +53,7 @@ class RetrofitServiceFactoryTest {
fun `when provideService called twice then builder called once`() = runTest {
subject.provideService()
subject.provideService()
coVerifyAll { retrofitBuilder.buildRetrofit(eq(TEST_BASE_URL), eq(true)) }
coVerifyAll { retrofitBuilder.buildRetrofit(eq(TEST_BASE_URL)) }
}
@Test
@@ -61,8 +61,8 @@ class RetrofitServiceFactoryTest {
subject.provideService()
subject.provideService("new url")
coVerifyAll {
retrofitBuilder.buildRetrofit(eq(TEST_BASE_URL), eq(true))
retrofitBuilder.buildRetrofit(eq("new url"), eq(true))
retrofitBuilder.buildRetrofit(eq(TEST_BASE_URL))
retrofitBuilder.buildRetrofit(eq("new url"))
}
}
}

View File

@@ -1,10 +1,8 @@
package gq.kirmanak.mealient.ui.baseurl
import com.google.common.truth.Truth.assertThat
import gq.kirmanak.mealient.data.baseurl.BaseURLStorage
import gq.kirmanak.mealient.data.baseurl.VersionDataSource
import gq.kirmanak.mealient.data.baseurl.VersionInfo
import gq.kirmanak.mealient.data.network.NetworkError
import gq.kirmanak.mealient.test.AuthImplTestData.TEST_BASE_URL
import gq.kirmanak.mealient.test.RobolectricTest
import io.mockk.MockKAnnotations
@@ -34,35 +32,6 @@ class BaseURLViewModelTest : RobolectricTest() {
subject = BaseURLViewModel(baseURLStorage, versionDataSource)
}
@Test
fun `when initialized then error is null`() {
assertThat(subject.currentScreenState.error).isNull()
}
@Test
fun `when initialized then navigateNext is false`() {
assertThat(subject.currentScreenState.navigateNext).isFalse()
}
@Test
fun `when saveBaseUrl and getVersionInfo throws then state is correct`() = runTest {
val error = NetworkError.Unauthorized(RuntimeException())
coEvery { versionDataSource.getVersionInfo(eq(TEST_BASE_URL)) } throws error
subject.saveBaseUrl(TEST_BASE_URL)
advanceUntilIdle()
assertThat(subject.currentScreenState).isEqualTo(BaseURLScreenState(error, false))
}
@Test
fun `when saveBaseUrl and getVersionInfo returns result then state is correct`() = runTest {
coEvery {
versionDataSource.getVersionInfo(eq(TEST_BASE_URL))
} returns VersionInfo(true, "0.5.6", true)
subject.saveBaseUrl(TEST_BASE_URL)
advanceUntilIdle()
assertThat(subject.currentScreenState).isEqualTo(BaseURLScreenState(null, true))
}
@Test
fun `when saveBaseUrl and getVersionInfo returns result then saves to storage`() = runTest {
coEvery {