mirror of https://github.com/usbharu/Hideout.git
test: APCreateServiceimplのテストを追加
This commit is contained in:
parent
0e665dac34
commit
24ae118bb6
|
@ -0,0 +1,63 @@
|
||||||
|
package dev.usbharu.hideout.service.ap
|
||||||
|
|
||||||
|
import dev.usbharu.hideout.domain.model.ActivityPubStringResponse
|
||||||
|
import dev.usbharu.hideout.domain.model.ap.Create
|
||||||
|
import dev.usbharu.hideout.domain.model.ap.Like
|
||||||
|
import dev.usbharu.hideout.domain.model.ap.Note
|
||||||
|
import dev.usbharu.hideout.exception.ap.IllegalActivityPubObjectException
|
||||||
|
import io.ktor.http.*
|
||||||
|
import kotlinx.coroutines.test.runTest
|
||||||
|
import org.junit.jupiter.api.Assertions.assertEquals
|
||||||
|
import org.junit.jupiter.api.Test
|
||||||
|
import org.junit.jupiter.api.assertThrows
|
||||||
|
import org.mockito.kotlin.*
|
||||||
|
import utils.TestTransaction
|
||||||
|
|
||||||
|
class APCreateServiceImplTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `receiveCreate 正常なCreateを処理できる`() = runTest {
|
||||||
|
val create = Create(
|
||||||
|
name = "Create",
|
||||||
|
`object` = Note(
|
||||||
|
name = "Note",
|
||||||
|
id = "https://example.com/note",
|
||||||
|
attributedTo = "https://example.com/actor",
|
||||||
|
content = "Hello World",
|
||||||
|
published = "Date: Wed, 21 Oct 2015 07:28:00 GMT"
|
||||||
|
),
|
||||||
|
actor = "https://example.com/actor",
|
||||||
|
id = "https://example.com/create",
|
||||||
|
)
|
||||||
|
|
||||||
|
val apNoteService = mock<APNoteService>()
|
||||||
|
val apCreateServiceImpl = APCreateServiceImpl(apNoteService, TestTransaction)
|
||||||
|
|
||||||
|
val actual = ActivityPubStringResponse(HttpStatusCode.OK, "Created")
|
||||||
|
|
||||||
|
val receiveCreate = apCreateServiceImpl.receiveCreate(create)
|
||||||
|
verify(apNoteService, times(1)).fetchNote(any<Note>(), anyOrNull())
|
||||||
|
assertEquals(actual, receiveCreate)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `reveiveCreate CreateのobjectのtypeがNote以外の場合IllegalActivityPubObjectExceptionがthrowされる`() = runTest {
|
||||||
|
val create = Create(
|
||||||
|
name = "Create",
|
||||||
|
`object` = Like(
|
||||||
|
name = "Like",
|
||||||
|
id = "https://example.com/note",
|
||||||
|
actor = "https://example.com/actor",
|
||||||
|
`object` = "https://example.com/create",
|
||||||
|
content = "aaa"
|
||||||
|
),
|
||||||
|
actor = "https://example.com/actor",
|
||||||
|
id = "https://example.com/create",
|
||||||
|
)
|
||||||
|
|
||||||
|
val apCreateServiceImpl = APCreateServiceImpl(mock(), TestTransaction)
|
||||||
|
assertThrows<IllegalActivityPubObjectException> {
|
||||||
|
apCreateServiceImpl.receiveCreate(create)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue