mirror of https://github.com/usbharu/Hideout.git
test: fix test
This commit is contained in:
parent
7427030f00
commit
1e676901e7
|
@ -3,6 +3,8 @@
|
||||||
|
|
||||||
package dev.usbharu.hideout.service.ap
|
package dev.usbharu.hideout.service.ap
|
||||||
|
|
||||||
|
import dev.usbharu.hideout.config.ApplicationConfig
|
||||||
|
import dev.usbharu.hideout.config.CharacterLimit
|
||||||
import dev.usbharu.hideout.domain.model.hideout.entity.Post
|
import dev.usbharu.hideout.domain.model.hideout.entity.Post
|
||||||
import dev.usbharu.hideout.domain.model.hideout.entity.User
|
import dev.usbharu.hideout.domain.model.hideout.entity.User
|
||||||
import dev.usbharu.hideout.domain.model.hideout.entity.Visibility
|
import dev.usbharu.hideout.domain.model.hideout.entity.Visibility
|
||||||
|
@ -21,21 +23,28 @@ import org.junit.jupiter.api.Test
|
||||||
import org.mockito.Mockito.anyLong
|
import org.mockito.Mockito.anyLong
|
||||||
import org.mockito.Mockito.eq
|
import org.mockito.Mockito.eq
|
||||||
import org.mockito.kotlin.*
|
import org.mockito.kotlin.*
|
||||||
import org.springframework.boot.context.config.ConfigData
|
|
||||||
import utils.JsonObjectMapper.objectMapper
|
import utils.JsonObjectMapper.objectMapper
|
||||||
import utils.TestApplicationConfig.testApplicationConfig
|
import utils.TestApplicationConfig.testApplicationConfig
|
||||||
|
import java.net.URL
|
||||||
import java.time.Instant
|
import java.time.Instant
|
||||||
import kotlin.test.assertEquals
|
import kotlin.test.assertEquals
|
||||||
|
|
||||||
class APNoteServiceImplTest {
|
class APNoteServiceImplTest {
|
||||||
|
|
||||||
|
val userBuilder = User.UserBuilder(CharacterLimit(), ApplicationConfig(URL("https://example.com")))
|
||||||
|
val postBuilder = Post.PostBuilder(CharacterLimit())
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `createPost 新しい投稿`() {
|
fun `createPost 新しい投稿`() {
|
||||||
val mediaQueryService = mock<MediaQueryService> {
|
val mediaQueryService = mock<MediaQueryService> {
|
||||||
onBlocking { findByPostId(anyLong()) } doReturn emptyList()
|
onBlocking { findByPostId(anyLong()) } doReturn emptyList()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
runTest {
|
runTest {
|
||||||
val followers = listOf(
|
val followers = listOf(
|
||||||
User.of(
|
userBuilder.of(
|
||||||
2L,
|
2L,
|
||||||
"follower",
|
"follower",
|
||||||
"follower.example.com",
|
"follower.example.com",
|
||||||
|
@ -49,7 +58,7 @@ class APNoteServiceImplTest {
|
||||||
createdAt = Instant.now(),
|
createdAt = Instant.now(),
|
||||||
keyId = "a"
|
keyId = "a"
|
||||||
),
|
),
|
||||||
User.of(
|
userBuilder.of(
|
||||||
3L,
|
3L,
|
||||||
"follower2",
|
"follower2",
|
||||||
"follower2.example.com",
|
"follower2.example.com",
|
||||||
|
@ -65,7 +74,7 @@ class APNoteServiceImplTest {
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
val userQueryService = mock<UserQueryService> {
|
val userQueryService = mock<UserQueryService> {
|
||||||
onBlocking { findById(eq(1L)) } doReturn User.of(
|
onBlocking { findById(eq(1L)) } doReturn userBuilder.of(
|
||||||
1L,
|
1L,
|
||||||
"test",
|
"test",
|
||||||
"example.com",
|
"example.com",
|
||||||
|
@ -99,9 +108,10 @@ class APNoteServiceImplTest {
|
||||||
postService = mock(),
|
postService = mock(),
|
||||||
apResourceResolveService = mock(),
|
apResourceResolveService = mock(),
|
||||||
apRequestService = mock(),
|
apRequestService = mock(),
|
||||||
transaction = mock()
|
transaction = mock(),
|
||||||
|
postBuilder = postBuilder
|
||||||
)
|
)
|
||||||
val postEntity = Post.of(
|
val postEntity = postBuilder.of(
|
||||||
1L,
|
1L,
|
||||||
1L,
|
1L,
|
||||||
null,
|
null,
|
||||||
|
@ -121,7 +131,7 @@ class APNoteServiceImplTest {
|
||||||
val mediaQueryService = mock<MediaQueryService> {
|
val mediaQueryService = mock<MediaQueryService> {
|
||||||
onBlocking { findByPostId(anyLong()) } doReturn emptyList()
|
onBlocking { findByPostId(anyLong()) } doReturn emptyList()
|
||||||
}
|
}
|
||||||
Config.configData = ConfigData()
|
|
||||||
val httpClient = HttpClient(
|
val httpClient = HttpClient(
|
||||||
MockEngine { httpRequestData ->
|
MockEngine { httpRequestData ->
|
||||||
assertEquals("https://follower.example.com/inbox", httpRequestData.url.toString())
|
assertEquals("https://follower.example.com/inbox", httpRequestData.url.toString())
|
||||||
|
@ -141,7 +151,8 @@ class APNoteServiceImplTest {
|
||||||
postService = mock(),
|
postService = mock(),
|
||||||
apResourceResolveService = mock(),
|
apResourceResolveService = mock(),
|
||||||
apRequestService = mock(),
|
apRequestService = mock(),
|
||||||
transaction = mock()
|
transaction = mock(),
|
||||||
|
postBuilder = postBuilder
|
||||||
)
|
)
|
||||||
activityPubNoteService.createNoteJob(
|
activityPubNoteService.createNoteJob(
|
||||||
JobProps(
|
JobProps(
|
||||||
|
|
|
@ -3,10 +3,13 @@
|
||||||
|
|
||||||
package dev.usbharu.hideout.service.ap
|
package dev.usbharu.hideout.service.ap
|
||||||
|
|
||||||
|
import dev.usbharu.hideout.config.ApplicationConfig
|
||||||
|
import dev.usbharu.hideout.config.CharacterLimit
|
||||||
import dev.usbharu.hideout.domain.model.ap.Follow
|
import dev.usbharu.hideout.domain.model.ap.Follow
|
||||||
import dev.usbharu.hideout.domain.model.ap.Image
|
import dev.usbharu.hideout.domain.model.ap.Image
|
||||||
import dev.usbharu.hideout.domain.model.ap.Key
|
import dev.usbharu.hideout.domain.model.ap.Key
|
||||||
import dev.usbharu.hideout.domain.model.ap.Person
|
import dev.usbharu.hideout.domain.model.ap.Person
|
||||||
|
import dev.usbharu.hideout.domain.model.hideout.entity.Post
|
||||||
import dev.usbharu.hideout.domain.model.hideout.entity.User
|
import dev.usbharu.hideout.domain.model.hideout.entity.User
|
||||||
import dev.usbharu.hideout.domain.model.job.ReceiveFollowJob
|
import dev.usbharu.hideout.domain.model.job.ReceiveFollowJob
|
||||||
import dev.usbharu.hideout.query.UserQueryService
|
import dev.usbharu.hideout.query.UserQueryService
|
||||||
|
@ -21,12 +24,16 @@ import org.junit.jupiter.api.Assertions.assertEquals
|
||||||
import org.junit.jupiter.api.Test
|
import org.junit.jupiter.api.Test
|
||||||
import org.mockito.ArgumentMatchers.anyString
|
import org.mockito.ArgumentMatchers.anyString
|
||||||
import org.mockito.kotlin.*
|
import org.mockito.kotlin.*
|
||||||
import org.springframework.boot.context.config.ConfigData
|
|
||||||
import utils.JsonObjectMapper.objectMapper
|
import utils.JsonObjectMapper.objectMapper
|
||||||
import utils.TestTransaction
|
import utils.TestTransaction
|
||||||
|
import java.net.URL
|
||||||
import java.time.Instant
|
import java.time.Instant
|
||||||
|
|
||||||
class APReceiveFollowServiceImplTest {
|
class APReceiveFollowServiceImplTest {
|
||||||
|
|
||||||
|
val userBuilder = User.UserBuilder(CharacterLimit(), ApplicationConfig(URL("https://example.com")))
|
||||||
|
val postBuilder = Post.PostBuilder(CharacterLimit())
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `receiveFollow フォロー受付処理`() = runTest {
|
fun `receiveFollow フォロー受付処理`() = runTest {
|
||||||
val jobQueueParentService = mock<JobQueueParentService> {
|
val jobQueueParentService = mock<JobQueueParentService> {
|
||||||
|
@ -78,7 +85,6 @@ class APReceiveFollowServiceImplTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `receiveFollowJob フォロー受付処理のJob`() = runTest {
|
fun `receiveFollowJob フォロー受付処理のJob`() = runTest {
|
||||||
Config.configData = ConfigData()
|
|
||||||
val person = Person(
|
val person = Person(
|
||||||
type = emptyList(),
|
type = emptyList(),
|
||||||
name = "follower",
|
name = "follower",
|
||||||
|
@ -110,7 +116,7 @@ class APReceiveFollowServiceImplTest {
|
||||||
}
|
}
|
||||||
val userQueryService = mock<UserQueryService> {
|
val userQueryService = mock<UserQueryService> {
|
||||||
onBlocking { findByUrl(eq("https://example.com")) } doReturn
|
onBlocking { findByUrl(eq("https://example.com")) } doReturn
|
||||||
User.of(
|
userBuilder.of(
|
||||||
id = 1L,
|
id = 1L,
|
||||||
name = "test",
|
name = "test",
|
||||||
domain = "example.com",
|
domain = "example.com",
|
||||||
|
@ -120,11 +126,13 @@ class APReceiveFollowServiceImplTest {
|
||||||
outbox = "https://example.com/outbox",
|
outbox = "https://example.com/outbox",
|
||||||
url = "https://example.com",
|
url = "https://example.com",
|
||||||
publicKey = "",
|
publicKey = "",
|
||||||
|
password = "a",
|
||||||
|
privateKey = "a",
|
||||||
createdAt = Instant.now(),
|
createdAt = Instant.now(),
|
||||||
keyId = "a"
|
keyId = "a"
|
||||||
)
|
)
|
||||||
onBlocking { findByUrl(eq("https://follower.example.com")) } doReturn
|
onBlocking { findByUrl(eq("https://follower.example.com")) } doReturn
|
||||||
User.of(
|
userBuilder.of(
|
||||||
id = 2L,
|
id = 2L,
|
||||||
name = "follower",
|
name = "follower",
|
||||||
domain = "follower.example.com",
|
domain = "follower.example.com",
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
package dev.usbharu.hideout.service.ap.resource
|
package dev.usbharu.hideout.service.ap.resource
|
||||||
|
|
||||||
|
import dev.usbharu.hideout.config.ApplicationConfig
|
||||||
|
import dev.usbharu.hideout.config.CharacterLimit
|
||||||
import dev.usbharu.hideout.domain.model.ap.Object
|
import dev.usbharu.hideout.domain.model.ap.Object
|
||||||
|
import dev.usbharu.hideout.domain.model.hideout.entity.Post
|
||||||
import dev.usbharu.hideout.domain.model.hideout.entity.User
|
import dev.usbharu.hideout.domain.model.hideout.entity.User
|
||||||
import dev.usbharu.hideout.repository.UserRepository
|
import dev.usbharu.hideout.repository.UserRepository
|
||||||
import io.ktor.client.*
|
import io.ktor.client.*
|
||||||
|
@ -16,6 +19,7 @@ import org.mockito.kotlin.any
|
||||||
import org.mockito.kotlin.doReturn
|
import org.mockito.kotlin.doReturn
|
||||||
import org.mockito.kotlin.mock
|
import org.mockito.kotlin.mock
|
||||||
import org.mockito.kotlin.whenever
|
import org.mockito.kotlin.whenever
|
||||||
|
import java.net.URL
|
||||||
import java.time.Instant
|
import java.time.Instant
|
||||||
import kotlin.test.assertEquals
|
import kotlin.test.assertEquals
|
||||||
|
|
||||||
|
@ -23,6 +27,9 @@ import kotlin.test.assertEquals
|
||||||
@Disabled
|
@Disabled
|
||||||
class APResourceResolveServiceImplTest {
|
class APResourceResolveServiceImplTest {
|
||||||
|
|
||||||
|
val userBuilder = User.UserBuilder(CharacterLimit(), ApplicationConfig(URL("https://example.com")))
|
||||||
|
val postBuilder = Post.PostBuilder(CharacterLimit())
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `単純な一回のリクエスト`() = runTest {
|
fun `単純な一回のリクエスト`() = runTest {
|
||||||
|
|
||||||
|
@ -36,7 +43,7 @@ class APResourceResolveServiceImplTest {
|
||||||
val userRepository = mock<UserRepository>()
|
val userRepository = mock<UserRepository>()
|
||||||
|
|
||||||
whenever(userRepository.findById(any())).doReturn(
|
whenever(userRepository.findById(any())).doReturn(
|
||||||
User.of(
|
userBuilder.of(
|
||||||
2L,
|
2L,
|
||||||
"follower",
|
"follower",
|
||||||
"follower.example.com",
|
"follower.example.com",
|
||||||
|
@ -72,7 +79,7 @@ class APResourceResolveServiceImplTest {
|
||||||
val userRepository = mock<UserRepository>()
|
val userRepository = mock<UserRepository>()
|
||||||
|
|
||||||
whenever(userRepository.findById(any())).doReturn(
|
whenever(userRepository.findById(any())).doReturn(
|
||||||
User.of(
|
userBuilder.of(
|
||||||
2L,
|
2L,
|
||||||
"follower",
|
"follower",
|
||||||
"follower.example.com",
|
"follower.example.com",
|
||||||
|
@ -111,7 +118,7 @@ class APResourceResolveServiceImplTest {
|
||||||
val userRepository = mock<UserRepository>()
|
val userRepository = mock<UserRepository>()
|
||||||
|
|
||||||
whenever(userRepository.findById(any())).doReturn(
|
whenever(userRepository.findById(any())).doReturn(
|
||||||
User.of(
|
userBuilder.of(
|
||||||
2L,
|
2L,
|
||||||
"follower",
|
"follower",
|
||||||
"follower.example.com",
|
"follower.example.com",
|
||||||
|
@ -161,7 +168,7 @@ class APResourceResolveServiceImplTest {
|
||||||
val userRepository = mock<UserRepository>()
|
val userRepository = mock<UserRepository>()
|
||||||
|
|
||||||
whenever(userRepository.findById(any())).doReturn(
|
whenever(userRepository.findById(any())).doReturn(
|
||||||
User.of(
|
userBuilder.of(
|
||||||
2L,
|
2L,
|
||||||
"follower",
|
"follower",
|
||||||
"follower.example.com",
|
"follower.example.com",
|
||||||
|
|
|
@ -2,24 +2,30 @@
|
||||||
|
|
||||||
package dev.usbharu.hideout.service.user
|
package dev.usbharu.hideout.service.user
|
||||||
|
|
||||||
|
import dev.usbharu.hideout.config.ApplicationConfig
|
||||||
|
import dev.usbharu.hideout.config.CharacterLimit
|
||||||
import dev.usbharu.hideout.domain.model.hideout.dto.RemoteUserCreateDto
|
import dev.usbharu.hideout.domain.model.hideout.dto.RemoteUserCreateDto
|
||||||
import dev.usbharu.hideout.domain.model.hideout.dto.UserCreateDto
|
import dev.usbharu.hideout.domain.model.hideout.dto.UserCreateDto
|
||||||
|
import dev.usbharu.hideout.domain.model.hideout.entity.Post
|
||||||
|
import dev.usbharu.hideout.domain.model.hideout.entity.User
|
||||||
import dev.usbharu.hideout.repository.UserRepository
|
import dev.usbharu.hideout.repository.UserRepository
|
||||||
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
import org.junit.jupiter.api.Test
|
import org.junit.jupiter.api.Test
|
||||||
import org.mockito.ArgumentMatchers.anyString
|
import org.mockito.ArgumentMatchers.anyString
|
||||||
import org.mockito.kotlin.*
|
import org.mockito.kotlin.*
|
||||||
import org.springframework.boot.context.config.ConfigData
|
|
||||||
import utils.TestApplicationConfig.testApplicationConfig
|
import utils.TestApplicationConfig.testApplicationConfig
|
||||||
|
import java.net.URL
|
||||||
import java.security.KeyPairGenerator
|
import java.security.KeyPairGenerator
|
||||||
import kotlin.test.assertEquals
|
import kotlin.test.assertEquals
|
||||||
import kotlin.test.assertNull
|
import kotlin.test.assertNull
|
||||||
|
|
||||||
class UserServiceTest {
|
class UserServiceTest {
|
||||||
|
val userBuilder = User.UserBuilder(CharacterLimit(), ApplicationConfig(URL("https://example.com")))
|
||||||
|
val postBuilder = Post.PostBuilder(CharacterLimit())
|
||||||
@Test
|
@Test
|
||||||
fun `createLocalUser ローカルユーザーを作成できる`() = runTest {
|
fun `createLocalUser ローカルユーザーを作成できる`() = runTest {
|
||||||
Config.configData = ConfigData(domain = "example.com", url = "https://example.com")
|
|
||||||
val userRepository = mock<UserRepository> {
|
val userRepository = mock<UserRepository> {
|
||||||
onBlocking { nextId() } doReturn 110001L
|
onBlocking { nextId() } doReturn 110001L
|
||||||
}
|
}
|
||||||
|
@ -29,7 +35,15 @@ class UserServiceTest {
|
||||||
onBlocking { generateKeyPair() } doReturn generateKeyPair
|
onBlocking { generateKeyPair() } doReturn generateKeyPair
|
||||||
}
|
}
|
||||||
val userService =
|
val userService =
|
||||||
UserServiceImpl(userRepository, userAuthService, mock(), mock(), mock(), testApplicationConfig)
|
UserServiceImpl(
|
||||||
|
userRepository,
|
||||||
|
userAuthService,
|
||||||
|
mock(),
|
||||||
|
mock(),
|
||||||
|
mock(),
|
||||||
|
userBuilder,
|
||||||
|
testApplicationConfig,
|
||||||
|
)
|
||||||
userService.createLocalUser(UserCreateDto("test", "testUser", "XXXXXXXXXXXXX", "test"))
|
userService.createLocalUser(UserCreateDto("test", "testUser", "XXXXXXXXXXXXX", "test"))
|
||||||
verify(userRepository, times(1)).save(any())
|
verify(userRepository, times(1)).save(any())
|
||||||
argumentCaptor<dev.usbharu.hideout.domain.model.hideout.entity.User> {
|
argumentCaptor<dev.usbharu.hideout.domain.model.hideout.entity.User> {
|
||||||
|
@ -50,20 +64,20 @@ class UserServiceTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `createRemoteUser リモートユーザーを作成できる`() = runTest {
|
fun `createRemoteUser リモートユーザーを作成できる`() = runTest {
|
||||||
Config.configData = ConfigData(domain = "remote.example.com", url = "https://remote.example.com")
|
|
||||||
|
|
||||||
val userRepository = mock<UserRepository> {
|
val userRepository = mock<UserRepository> {
|
||||||
onBlocking { nextId() } doReturn 113345L
|
onBlocking { nextId() } doReturn 113345L
|
||||||
}
|
}
|
||||||
val userService = UserServiceImpl(userRepository, mock(), mock(), mock(), mock(), testApplicationConfig)
|
val userService =
|
||||||
|
UserServiceImpl(userRepository, mock(), mock(), mock(), mock(), userBuilder, testApplicationConfig)
|
||||||
val user = RemoteUserCreateDto(
|
val user = RemoteUserCreateDto(
|
||||||
name = "test",
|
name = "test",
|
||||||
domain = "example.com",
|
domain = "remote.example.com",
|
||||||
screenName = "testUser",
|
screenName = "testUser",
|
||||||
description = "test user",
|
description = "test user",
|
||||||
inbox = "https://example.com/inbox",
|
inbox = "https://remote.example.com/inbox",
|
||||||
outbox = "https://example.com/outbox",
|
outbox = "https://remote.example.com/outbox",
|
||||||
url = "https://example.com",
|
url = "https://remote.example.com",
|
||||||
publicKey = "-----BEGIN PUBLIC KEY-----...-----END PUBLIC KEY-----",
|
publicKey = "-----BEGIN PUBLIC KEY-----...-----END PUBLIC KEY-----",
|
||||||
keyId = "a",
|
keyId = "a",
|
||||||
following = "",
|
following = "",
|
||||||
|
@ -78,10 +92,10 @@ class UserServiceTest {
|
||||||
assertEquals("test user", firstValue.description)
|
assertEquals("test user", firstValue.description)
|
||||||
assertNull(firstValue.password)
|
assertNull(firstValue.password)
|
||||||
assertEquals(113345L, firstValue.id)
|
assertEquals(113345L, firstValue.id)
|
||||||
assertEquals("https://example.com", firstValue.url)
|
assertEquals("https://remote.example.com", firstValue.url)
|
||||||
assertEquals("example.com", firstValue.domain)
|
assertEquals("remote.example.com", firstValue.domain)
|
||||||
assertEquals("https://example.com/inbox", firstValue.inbox)
|
assertEquals("https://remote.example.com/inbox", firstValue.inbox)
|
||||||
assertEquals("https://example.com/outbox", firstValue.outbox)
|
assertEquals("https://remote.example.com/outbox", firstValue.outbox)
|
||||||
assertEquals("-----BEGIN PUBLIC KEY-----...-----END PUBLIC KEY-----", firstValue.publicKey)
|
assertEquals("-----BEGIN PUBLIC KEY-----...-----END PUBLIC KEY-----", firstValue.publicKey)
|
||||||
assertNull(firstValue.privateKey)
|
assertNull(firstValue.privateKey)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue