mirror of
https://github.com/LiveFastEatTrashRaccoon/RaccoonForLemmy.git
synced 2025-02-03 03:37:37 +01:00
chore: add test for domain inbox (#635)
This commit is contained in:
parent
fded58bcd1
commit
8998a04800
@ -11,6 +11,7 @@ import org.junit.Test
|
||||
import kotlin.test.assertEquals
|
||||
|
||||
class DefaultApiConfigurationRepositoryTest {
|
||||
|
||||
@get:Rule
|
||||
val dispatcherTestRule = DispatcherTestRule()
|
||||
|
||||
@ -37,4 +38,4 @@ class DefaultApiConfigurationRepositoryTest {
|
||||
keyStore.save(any(), "feddit.it")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -17,6 +17,7 @@ import org.junit.Test
|
||||
import kotlin.test.assertEquals
|
||||
|
||||
class DefaultAuthRepositoryTest {
|
||||
|
||||
@get:Rule
|
||||
val dispatcherTestRule = DispatcherTestRule()
|
||||
|
||||
@ -47,4 +48,4 @@ class DefaultAuthRepositoryTest {
|
||||
authService.login(LoginForm("username", "password"))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -20,6 +20,7 @@ import kotlin.test.assertEquals
|
||||
import kotlin.test.assertNull
|
||||
|
||||
class DefaultIdentityRepositoryTest {
|
||||
|
||||
@get:Rule
|
||||
val dispatcherTestRule = DispatcherTestRule()
|
||||
|
||||
@ -107,4 +108,4 @@ class DefaultIdentityRepositoryTest {
|
||||
siteRepository wasNot Called
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -10,6 +10,7 @@ import org.junit.Rule
|
||||
import org.junit.Test
|
||||
|
||||
class DefaultDeleteAccountUseCaseTest {
|
||||
|
||||
@get:Rule
|
||||
val dispatcherTestRule = DispatcherTestRule()
|
||||
|
||||
@ -26,4 +27,4 @@ class DefaultDeleteAccountUseCaseTest {
|
||||
|
||||
coVerify { accountRepository.delete(1) }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -23,6 +23,7 @@ import org.junit.Test
|
||||
import kotlin.test.assertEquals
|
||||
|
||||
class DefaultLoginUseCaseTest {
|
||||
|
||||
@get:Rule
|
||||
val dispatcherTestRule = DispatcherTestRule()
|
||||
|
||||
@ -180,4 +181,4 @@ class DefaultLoginUseCaseTest {
|
||||
settingsRepository.createSettings(any(), any())
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -17,6 +17,7 @@ import org.junit.Rule
|
||||
import org.junit.Test
|
||||
|
||||
class DefaultLogoutUseCaseTest {
|
||||
|
||||
@get:Rule
|
||||
val dispatcherTestRule = DispatcherTestRule()
|
||||
|
||||
@ -34,7 +35,7 @@ class DefaultLogoutUseCaseTest {
|
||||
)
|
||||
|
||||
@Test
|
||||
fun givenNewAccount_whenExecute_thenInteractionsAreAsExpected() = runTest {
|
||||
fun whenExecute_thenInteractionsAreAsExpected() = runTest {
|
||||
val accountId = 1L
|
||||
coEvery {
|
||||
accountRepository.getActive()
|
||||
|
@ -18,6 +18,7 @@ import org.junit.Rule
|
||||
import org.junit.Test
|
||||
|
||||
class DefaultSwitchAccountUseCaseTest {
|
||||
|
||||
@get:Rule
|
||||
val dispatcherTestRule = DispatcherTestRule()
|
||||
|
||||
@ -82,4 +83,4 @@ class DefaultSwitchAccountUseCaseTest {
|
||||
serviceProvider.changeInstance("new-instance")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -38,9 +38,13 @@ kotlin {
|
||||
implementation(projects.domain.lemmy.repository)
|
||||
}
|
||||
}
|
||||
val commonTest by getting {
|
||||
val androidUnitTest by getting {
|
||||
dependencies {
|
||||
implementation(kotlin("test"))
|
||||
implementation(libs.kotlinx.coroutines.test)
|
||||
implementation(kotlin("test-junit"))
|
||||
implementation(libs.mockk)
|
||||
implementation(libs.turbine)
|
||||
implementation(projects.core.testutils)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,59 @@
|
||||
package com.github.diegoberaldin.raccoonforlemmy.domain.inbox
|
||||
|
||||
import app.cash.turbine.test
|
||||
import com.github.diegoberaldin.raccoonforlemmy.core.testutils.DispatcherTestRule
|
||||
import com.github.diegoberaldin.raccoonforlemmy.domain.identity.repository.IdentityRepository
|
||||
import com.github.diegoberaldin.raccoonforlemmy.domain.inbox.usecase.GetUnreadItemsUseCase
|
||||
import io.mockk.coEvery
|
||||
import io.mockk.every
|
||||
import io.mockk.mockk
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.test.runTest
|
||||
import org.junit.Rule
|
||||
import org.junit.Test
|
||||
import kotlin.test.assertEquals
|
||||
import kotlin.test.assertNotEquals
|
||||
|
||||
class DefaultInboxCoordinatorTest {
|
||||
|
||||
@get:Rule
|
||||
val dispatcherTestRule = DispatcherTestRule()
|
||||
|
||||
private val identityRepository = mockk<IdentityRepository>(relaxUnitFun = true) {
|
||||
every { isLogged } returns MutableStateFlow(true)
|
||||
every { authToken } returns MutableStateFlow("fake-token")
|
||||
}
|
||||
private val getUnreadItemsUseCase = mockk<GetUnreadItemsUseCase>(relaxUnitFun = true) {
|
||||
coEvery { getUnreadReplies() } returns 0
|
||||
coEvery { getUnreadMentions() } returns 0
|
||||
coEvery { getUnreadMessages() } returns 0
|
||||
}
|
||||
|
||||
private val sut = DefaultInboxCoordinator(
|
||||
identityRepository = identityRepository,
|
||||
getUnreadItemsUseCase = getUnreadItemsUseCase,
|
||||
)
|
||||
|
||||
@Test
|
||||
fun whenSetUnreadOnly_thenValueIsUpdated() = runTest {
|
||||
val resBefore = sut.unreadOnly.value
|
||||
sut.setUnreadOnly(!resBefore)
|
||||
|
||||
val resAfter = sut.unreadOnly.value
|
||||
assertNotEquals(resBefore, resAfter)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun whenSendEvent_thenValueIsUpdated() = runTest {
|
||||
val evt = InboxCoordinator.Event.Refresh
|
||||
launch {
|
||||
sut.sendEvent(evt)
|
||||
}
|
||||
|
||||
sut.events.test {
|
||||
val item = awaitItem()
|
||||
assertEquals(evt, item)
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,75 @@
|
||||
package com.github.diegoberaldin.raccoonforlemmy.domain.inbox.usecase
|
||||
|
||||
import com.github.diegoberaldin.raccoonforlemmy.core.testutils.DispatcherTestRule
|
||||
import com.github.diegoberaldin.raccoonforlemmy.domain.identity.repository.IdentityRepository
|
||||
import com.github.diegoberaldin.raccoonforlemmy.domain.lemmy.data.PrivateMessageModel
|
||||
import com.github.diegoberaldin.raccoonforlemmy.domain.lemmy.data.UserModel
|
||||
import com.github.diegoberaldin.raccoonforlemmy.domain.lemmy.repository.PrivateMessageRepository
|
||||
import com.github.diegoberaldin.raccoonforlemmy.domain.lemmy.repository.UserRepository
|
||||
import io.mockk.coEvery
|
||||
import io.mockk.coVerify
|
||||
import io.mockk.every
|
||||
import io.mockk.mockk
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
import kotlinx.coroutines.test.runTest
|
||||
import org.junit.Rule
|
||||
import org.junit.Test
|
||||
import kotlin.test.assertEquals
|
||||
|
||||
class DefaultGetUnreadItemsUseCaseTest {
|
||||
|
||||
@get:Rule
|
||||
val dispatcherTestRule = DispatcherTestRule()
|
||||
|
||||
private val identityRepository = mockk<IdentityRepository>(relaxUnitFun = true) {
|
||||
every { authToken } returns MutableStateFlow("fake-token")
|
||||
}
|
||||
private val userRepository = mockk<UserRepository>(relaxUnitFun = true)
|
||||
private val messageRepository = mockk<PrivateMessageRepository>(relaxUnitFun = true)
|
||||
|
||||
private val sut = DefaultGetUnreadItemsUseCase(
|
||||
identityRepository = identityRepository,
|
||||
userRepository = userRepository,
|
||||
messageRepository = messageRepository,
|
||||
)
|
||||
|
||||
@Test
|
||||
fun whenGetUnreadReplies_thenResultIsAsExpected() = runTest {
|
||||
coEvery { userRepository.getReplies(any(), any(), any()) } returns listOf(mockk())
|
||||
|
||||
val res = sut.getUnreadReplies()
|
||||
|
||||
assertEquals(1, res)
|
||||
coVerify {
|
||||
userRepository.getReplies(auth = "fake-token", page = 1, limit = any())
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun whenGetUnreadMentions_thenResultIsAsExpected() = runTest {
|
||||
coEvery { userRepository.getMentions(any(), any(), any()) } returns listOf(mockk())
|
||||
|
||||
val res = sut.getUnreadMentions()
|
||||
|
||||
assertEquals(1, res)
|
||||
coVerify {
|
||||
userRepository.getMentions(auth = "fake-token", page = 1, limit = any())
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun whenGetUnreadMessages_thenResultIsAsExpected() = runTest {
|
||||
val fakeMessage = mockk<PrivateMessageModel> {
|
||||
every { creator } returns UserModel(id = 1)
|
||||
every { recipient } returns UserModel(id = 2)
|
||||
}
|
||||
coEvery { messageRepository.getAll(any(), any(), any()) } returns listOf(fakeMessage)
|
||||
|
||||
val res = sut.getUnreadMessages()
|
||||
|
||||
assertEquals(1, res)
|
||||
coVerify {
|
||||
messageRepository.getAll(auth = "fake-token", page = 1, limit = any())
|
||||
}
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user