mirror of https://github.com/usbharu/Hideout.git
test: MetaService、ServerInitialiseServiceのテストを追加
This commit is contained in:
parent
4014c128de
commit
d78f5e201f
|
@ -0,0 +1,72 @@
|
||||||
|
@file:OptIn(ExperimentalCoroutinesApi::class)
|
||||||
|
|
||||||
|
package dev.usbharu.hideout.service
|
||||||
|
|
||||||
|
import dev.usbharu.hideout.domain.model.hideout.entity.Jwt
|
||||||
|
import dev.usbharu.hideout.domain.model.hideout.entity.Meta
|
||||||
|
import dev.usbharu.hideout.exception.NotInitException
|
||||||
|
import dev.usbharu.hideout.repository.IMetaRepository
|
||||||
|
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||||
|
import kotlinx.coroutines.test.runTest
|
||||||
|
import org.junit.jupiter.api.Test
|
||||||
|
import org.junit.jupiter.api.assertThrows
|
||||||
|
import org.mockito.kotlin.*
|
||||||
|
import java.util.*
|
||||||
|
import kotlin.test.assertEquals
|
||||||
|
|
||||||
|
class MetaServiceImplTest {
|
||||||
|
@Test
|
||||||
|
fun `getMeta メタデータを取得できる`() = runTest {
|
||||||
|
val meta = Meta("1.0.0", Jwt(UUID.randomUUID(), "sdfsdjk", "adafda"))
|
||||||
|
val metaRepository = mock<IMetaRepository> {
|
||||||
|
onBlocking { get() } doReturn meta
|
||||||
|
}
|
||||||
|
val metaService = MetaServiceImpl(metaRepository)
|
||||||
|
val actual = metaService.getMeta()
|
||||||
|
assertEquals(meta, actual)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `getMeta メタデータが無いときはNotInitExceptionがthrowされる`() = runTest {
|
||||||
|
val metaRepository = mock<IMetaRepository> {
|
||||||
|
onBlocking { get() } doReturn null
|
||||||
|
}
|
||||||
|
val metaService = MetaServiceImpl(metaRepository)
|
||||||
|
assertThrows<NotInitException> { metaService.getMeta() }
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `updateMeta メタデータを保存できる`() = runTest {
|
||||||
|
|
||||||
|
val meta = Meta("1.0.1", Jwt(UUID.randomUUID(), "sdfsdjk", "adafda"))
|
||||||
|
val metaRepository = mock<IMetaRepository> {
|
||||||
|
onBlocking { save(any()) } doReturn Unit
|
||||||
|
}
|
||||||
|
val metaServiceImpl = MetaServiceImpl(metaRepository)
|
||||||
|
metaServiceImpl.updateMeta(meta)
|
||||||
|
argumentCaptor<Meta> {
|
||||||
|
verify(metaRepository).save(capture())
|
||||||
|
assertEquals(meta, firstValue)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `getJwtMeta Jwtメタデータを取得できる`() = runTest {
|
||||||
|
val meta = Meta("1.0.0", Jwt(UUID.randomUUID(), "sdfsdjk", "adafda"))
|
||||||
|
val metaRepository = mock<IMetaRepository> {
|
||||||
|
onBlocking { get() } doReturn meta
|
||||||
|
}
|
||||||
|
val metaService = MetaServiceImpl(metaRepository)
|
||||||
|
val actual = metaService.getJwtMeta()
|
||||||
|
assertEquals(meta.jwt, actual)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `getJwtMeta メタデータが無いときはNotInitExceptionがthrowされる`() = runTest {
|
||||||
|
val metaRepository = mock<IMetaRepository> {
|
||||||
|
onBlocking { get() } doReturn null
|
||||||
|
}
|
||||||
|
val metaService = MetaServiceImpl(metaRepository)
|
||||||
|
assertThrows<NotInitException> { metaService.getJwtMeta() }
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,56 @@
|
||||||
|
@file:OptIn(ExperimentalCoroutinesApi::class)
|
||||||
|
|
||||||
|
package dev.usbharu.hideout.service
|
||||||
|
|
||||||
|
import dev.usbharu.hideout.domain.model.hideout.entity.Jwt
|
||||||
|
import dev.usbharu.hideout.domain.model.hideout.entity.Meta
|
||||||
|
import dev.usbharu.hideout.repository.IMetaRepository
|
||||||
|
import dev.usbharu.hideout.util.ServerUtil
|
||||||
|
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||||
|
import kotlinx.coroutines.test.runTest
|
||||||
|
import org.junit.jupiter.api.Test
|
||||||
|
import org.mockito.kotlin.*
|
||||||
|
import java.util.*
|
||||||
|
import kotlin.test.assertEquals
|
||||||
|
|
||||||
|
class ServerInitialiseServiceImplTest {
|
||||||
|
@Test
|
||||||
|
fun `init メタデータが無いときに初期化を実行する`() = runTest {
|
||||||
|
val metaRepository = mock<IMetaRepository> {
|
||||||
|
onBlocking { get() } doReturn null
|
||||||
|
onBlocking { save(any()) } doReturn Unit
|
||||||
|
}
|
||||||
|
val serverInitialiseServiceImpl = ServerInitialiseServiceImpl(metaRepository)
|
||||||
|
|
||||||
|
serverInitialiseServiceImpl.init()
|
||||||
|
verify(metaRepository,times(1)).save(any())
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `init メタデータが存在して同じバージョンのときは何もしない`() = runTest {
|
||||||
|
val meta = Meta(ServerUtil.getImplementationVersion(), Jwt(UUID.randomUUID(),"aaafafd","afafasdf"))
|
||||||
|
val metaRepository = mock<IMetaRepository> {
|
||||||
|
onBlocking { get() } doReturn meta
|
||||||
|
}
|
||||||
|
val serverInitialiseServiceImpl = ServerInitialiseServiceImpl(metaRepository)
|
||||||
|
serverInitialiseServiceImpl.init()
|
||||||
|
verify(metaRepository,times(0)).save(any())
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `init メタデータが存在して違うバージョンのときはバージョンを変更する`() = runTest {
|
||||||
|
val meta = Meta("1.0.0", Jwt(UUID.randomUUID(),"aaafafd","afafasdf"))
|
||||||
|
val metaRepository = mock<IMetaRepository> {
|
||||||
|
onBlocking { get() } doReturn meta
|
||||||
|
onBlocking { save(any()) } doReturn Unit
|
||||||
|
}
|
||||||
|
|
||||||
|
val serverInitialiseServiceImpl = ServerInitialiseServiceImpl(metaRepository)
|
||||||
|
serverInitialiseServiceImpl.init()
|
||||||
|
verify(metaRepository,times(1)).save(any())
|
||||||
|
argumentCaptor<Meta> {
|
||||||
|
verify(metaRepository,times(1)).save(capture())
|
||||||
|
assertEquals(ServerUtil.getImplementationVersion(),firstValue.version)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue