mirror of https://github.com/usbharu/Hideout.git
test: APReactionServiceImplのテストを追加
This commit is contained in:
parent
8e4a0d6584
commit
e0b471fb7f
|
@ -0,0 +1,92 @@
|
|||
package dev.usbharu.hideout.service.ap
|
||||
|
||||
|
||||
import dev.usbharu.hideout.domain.model.hideout.entity.Reaction
|
||||
import dev.usbharu.hideout.domain.model.job.DeliverReactionJob
|
||||
import dev.usbharu.hideout.domain.model.job.DeliverRemoveReactionJob
|
||||
import dev.usbharu.hideout.query.FollowerQueryService
|
||||
import dev.usbharu.hideout.query.PostQueryService
|
||||
import dev.usbharu.hideout.service.core.TwitterSnowflakeIdGenerateService
|
||||
import dev.usbharu.hideout.service.job.JobQueueParentService
|
||||
import kotlinx.coroutines.test.runTest
|
||||
import org.junit.jupiter.api.Test
|
||||
import org.mockito.kotlin.*
|
||||
import utils.JsonObjectMapper.objectMapper
|
||||
import utils.PostBuilder
|
||||
import utils.UserBuilder
|
||||
|
||||
class APReactionServiceImplTest {
|
||||
@Test
|
||||
fun `reaction リアクションするとフォロワーの数だけ配送ジョブが作成される`() = runTest {
|
||||
|
||||
val user = UserBuilder.localUserOf()
|
||||
val post = PostBuilder.of()
|
||||
|
||||
val postQueryService = mock<PostQueryService> {
|
||||
onBlocking { findById(eq(post.id)) } doReturn post
|
||||
}
|
||||
val followerQueryService = mock<FollowerQueryService> {
|
||||
onBlocking { findFollowersById(eq(user.id)) } doReturn listOf(
|
||||
UserBuilder.localUserOf(),
|
||||
UserBuilder.localUserOf(),
|
||||
UserBuilder.localUserOf()
|
||||
)
|
||||
}
|
||||
val jobQueueParentService = mock<JobQueueParentService>()
|
||||
val apReactionServiceImpl = APReactionServiceImpl(
|
||||
jobQueueParentService = jobQueueParentService,
|
||||
userQueryService = mock(),
|
||||
followerQueryService = followerQueryService,
|
||||
postQueryService = postQueryService,
|
||||
objectMapper = objectMapper
|
||||
)
|
||||
|
||||
apReactionServiceImpl.reaction(
|
||||
Reaction(
|
||||
id = TwitterSnowflakeIdGenerateService.generateId(),
|
||||
emojiId = 0,
|
||||
postId = post.id,
|
||||
userId = user.id
|
||||
)
|
||||
)
|
||||
|
||||
verify(jobQueueParentService, times(3)).schedule(eq(DeliverReactionJob), any())
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `removeReaction リアクションを削除するとフォロワーの数だけ配送ジョブが作成される`() = runTest {
|
||||
|
||||
val user = UserBuilder.localUserOf()
|
||||
val post = PostBuilder.of()
|
||||
|
||||
val postQueryService = mock<PostQueryService> {
|
||||
onBlocking { findById(eq(post.id)) } doReturn post
|
||||
}
|
||||
val followerQueryService = mock<FollowerQueryService> {
|
||||
onBlocking { findFollowersById(eq(user.id)) } doReturn listOf(
|
||||
UserBuilder.localUserOf(),
|
||||
UserBuilder.localUserOf(),
|
||||
UserBuilder.localUserOf()
|
||||
)
|
||||
}
|
||||
val jobQueueParentService = mock<JobQueueParentService>()
|
||||
val apReactionServiceImpl = APReactionServiceImpl(
|
||||
jobQueueParentService = jobQueueParentService,
|
||||
userQueryService = mock(),
|
||||
followerQueryService = followerQueryService,
|
||||
postQueryService = postQueryService,
|
||||
objectMapper = objectMapper
|
||||
)
|
||||
|
||||
apReactionServiceImpl.removeReaction(
|
||||
Reaction(
|
||||
id = TwitterSnowflakeIdGenerateService.generateId(),
|
||||
emojiId = 0,
|
||||
postId = post.id,
|
||||
userId = user.id
|
||||
)
|
||||
)
|
||||
|
||||
verify(jobQueueParentService, times(3)).schedule(eq(DeliverRemoveReactionJob), any())
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue