Skip to content
This repository has been archived by the owner on Oct 23, 2023. It is now read-only.

Commit

Permalink
test(access): used mockk instead of mockito
Browse files Browse the repository at this point in the history
  • Loading branch information
AndreaBrighi committed Jun 27, 2023
1 parent 450b8fe commit 2184c45
Showing 1 changed file with 12 additions and 23 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,18 +8,16 @@ import com.intelligentbackpack.accessdata.datasource.AccessRemoteDataSource
import com.intelligentbackpack.accessdata.exception.MissingUserException
import com.intelligentbackpack.accessdata.storage.UserStorageImpl
import com.intelligentbackpack.accessdomain.entities.User
import io.mockk.coEvery
import io.mockk.coVerify
import io.mockk.mockk
import kotlinx.coroutines.runBlocking
import org.junit.Assert.assertEquals
import org.junit.Assert.assertFalse
import org.junit.Assert.assertThrows
import org.junit.Assert.assertTrue
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.ArgumentMatchers
import org.mockito.Mockito.mock
import org.mockito.Mockito.times
import org.mockito.Mockito.verify
import org.mockito.Mockito.`when`

/**
* Instrumented test, which will execute on an Android device.
Expand All @@ -34,24 +32,21 @@ class AccessDomainRepositoryInstrumentedTest {
name = "test"
surname = "test"
}
private val accessRemoteDataSource = mockk<AccessRemoteDataSource>(relaxed = true)

@Test
fun loginWithData() = runBlocking {
val appContext = InstrumentationRegistry
.getInstrumentation()
.targetContext
val accessRemoteDataSource = mock(AccessRemoteDataSource::class.java)
`when`(
accessRemoteDataSource.accessWithData(
ArgumentMatchers.anyString(),
ArgumentMatchers.anyString(),
),
).thenReturn(expectedUser)
coEvery { accessRemoteDataSource.accessWithData(any(), any()) } returns expectedUser
val localAccessDataSource = AccessLocalDataSourceImpl(UserStorageImpl(appContext))
val accessDomainRepository = AccessDomainRepositoryImpl(localAccessDataSource, accessRemoteDataSource)
assertFalse(localAccessDataSource.isUserSaved())
val user = accessDomainRepository.loginWithData("test@gmail.com", "Test#1234")
verify(accessRemoteDataSource).accessWithData("test@gmail.com", "Test#1234")
coVerify {
accessRemoteDataSource.accessWithData("test@gmail.com", "Test#1234")
}
assertEquals(expectedUser, user)
assertEquals(expectedUser, localAccessDataSource.getUser())
assertTrue(localAccessDataSource.isUserSaved())
Expand All @@ -62,19 +57,15 @@ class AccessDomainRepositoryInstrumentedTest {
val appContext = InstrumentationRegistry
.getInstrumentation()
.targetContext
val accessRemoteDataSource = mock(AccessRemoteDataSource::class.java)
`when`(
accessRemoteDataSource.accessWithData(
ArgumentMatchers.anyString(),
ArgumentMatchers.anyString(),
),
).thenReturn(expectedUser)
coEvery { accessRemoteDataSource.accessWithData(any(), any()) } returns expectedUser
val accessLocalDataSource = AccessLocalDataSourceImpl(UserStorageImpl(appContext))
accessLocalDataSource.saveUser(expectedUser)
val accessDomainRepository = AccessDomainRepositoryImpl(accessLocalDataSource, accessRemoteDataSource)
assertTrue(accessLocalDataSource.isUserSaved())
val user = accessDomainRepository.automaticLogin()
verify(accessRemoteDataSource, times(1)).accessWithData("test@gmail.com", "Test#1234")
coVerify(exactly = 1) {
accessRemoteDataSource.accessWithData("test@gmail.com", "Test#1234")
}
assertEquals(expectedUser, user)
}

Expand All @@ -83,7 +74,6 @@ class AccessDomainRepositoryInstrumentedTest {
val appContext = InstrumentationRegistry
.getInstrumentation()
.targetContext
val accessRemoteDataSource = mock(AccessRemoteDataSource::class.java)
val accessLocalDataStorage = AccessLocalDataSourceImpl(UserStorageImpl(appContext))
val accessDomainRepository = AccessDomainRepositoryImpl(accessLocalDataStorage, accessRemoteDataSource)
assertFalse(accessLocalDataStorage.isUserSaved())
Expand All @@ -100,7 +90,6 @@ class AccessDomainRepositoryInstrumentedTest {
InstrumentationRegistry
.getInstrumentation()
.targetContext
val accessRemoteDataSource = mock(AccessRemoteDataSource::class.java)
val accessLocalDataSource = AccessLocalDataSourceImpl(UserStorageImpl(appContext))
accessLocalDataSource.saveUser(expectedUser)
val accessDomainRepository = AccessDomainRepositoryImpl(accessLocalDataSource, accessRemoteDataSource)
Expand Down

0 comments on commit 2184c45

Please sign in to comment.