mirror of https://github.com/usbharu/Hideout.git
test: APUndoServiceImplのテストを追加
This commit is contained in:
parent
353fc8f87a
commit
40d1b6cbd3
|
@ -0,0 +1,48 @@
|
|||
package dev.usbharu.hideout.service.ap
|
||||
|
||||
import dev.usbharu.hideout.domain.model.ActivityPubStringResponse
|
||||
import dev.usbharu.hideout.domain.model.ap.Follow
|
||||
import dev.usbharu.hideout.domain.model.ap.Undo
|
||||
import dev.usbharu.hideout.query.UserQueryService
|
||||
import io.ktor.http.*
|
||||
import kotlinx.coroutines.test.runTest
|
||||
import org.junit.jupiter.api.Assertions.assertEquals
|
||||
import org.junit.jupiter.api.Test
|
||||
import org.mockito.kotlin.doReturn
|
||||
import org.mockito.kotlin.eq
|
||||
import org.mockito.kotlin.mock
|
||||
import utils.TestTransaction
|
||||
import utils.UserBuilder
|
||||
import java.time.Instant
|
||||
|
||||
class APUndoServiceImplTest {
|
||||
@Test
|
||||
fun `receiveUndo FollowのUndoを処理できる`() = runTest {
|
||||
|
||||
val userQueryService = mock<UserQueryService> {
|
||||
onBlocking { findByUrl(eq("https://follower.example.com/actor")) } doReturn UserBuilder.remoteUserOf()
|
||||
onBlocking { findByUrl(eq("https://example.com/actor")) } doReturn UserBuilder.localUserOf()
|
||||
}
|
||||
val apUndoServiceImpl = APUndoServiceImpl(
|
||||
userService = mock(),
|
||||
apUserService = mock(),
|
||||
userQueryService = userQueryService,
|
||||
transaction = TestTransaction
|
||||
)
|
||||
|
||||
val undo = Undo(
|
||||
name = "Undo",
|
||||
actor = "https://follower.example.com/actor",
|
||||
id = "https://follower.example.com/undo/follow",
|
||||
`object` = Follow(
|
||||
name = "Follow",
|
||||
`object` = "https://example.com/actor",
|
||||
actor = "https://follower.example.com/actor"
|
||||
),
|
||||
published = Instant.now()
|
||||
)
|
||||
val activityPubResponse = apUndoServiceImpl.receiveUndo(undo)
|
||||
assertEquals(ActivityPubStringResponse(HttpStatusCode.OK, "Accept"), activityPubResponse)
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue