test: テストの型が落ちてるのを修正

This commit is contained in:
usbharu 2023-07-30 16:41:55 +09:00
parent 58f8005ce4
commit 2deed2980d
14 changed files with 327 additions and 163 deletions

View File

@ -10,6 +10,8 @@ open class Note : Object {
var inReplyTo: String? = null var inReplyTo: String? = null
protected constructor() : super() protected constructor() : super()
@Suppress("LongParameterList")
constructor( constructor(
type: List<String> = emptyList(), type: List<String> = emptyList(),
name: String, name: String,

View File

@ -7,6 +7,7 @@ import com.fasterxml.jackson.databind.JsonNode
import dev.usbharu.hideout.service.activitypub.ExtendedActivityVocabulary import dev.usbharu.hideout.service.activitypub.ExtendedActivityVocabulary
class ObjectDeserializer : JsonDeserializer<Object>() { class ObjectDeserializer : JsonDeserializer<Object>() {
@Suppress("LongMethod")
override fun deserialize(p: JsonParser?, ctxt: DeserializationContext?): Object { override fun deserialize(p: JsonParser?, ctxt: DeserializationContext?): Object {
requireNotNull(p) requireNotNull(p)
val treeNode: JsonNode = requireNotNull(p.codec?.readTree(p)) val treeNode: JsonNode = requireNotNull(p.codec?.readTree(p))

View File

@ -17,14 +17,14 @@ data class PostResponse(
companion object { companion object {
fun from(post: Post, user: User): PostResponse { fun from(post: Post, user: User): PostResponse {
return PostResponse( return PostResponse(
post.id, id = post.id,
UserResponse.from(user), user = UserResponse.from(user),
post.overview, overview = post.overview,
post.text, text = post.text,
post.createdAt, createdAt = post.createdAt,
post.visibility, visibility = post.visibility,
post.url, url = post.url,
post.sensitive sensitive = post.sensitive
) )
} }
} }

View File

@ -43,7 +43,7 @@ fun Application.configureRouting(
route("/api/internal/v1") { route("/api/internal/v1") {
posts(postService) posts(postService)
users(userService, userApiService) users(userService, userApiService)
auth(userAuthService, userRepository, jwtService, metaService) auth(userAuthService, userRepository, jwtService)
} }
} }
} }

View File

@ -7,9 +7,7 @@ import dev.usbharu.hideout.exception.UserNotFoundException
import dev.usbharu.hideout.plugins.TOKEN_AUTH import dev.usbharu.hideout.plugins.TOKEN_AUTH
import dev.usbharu.hideout.repository.IUserRepository import dev.usbharu.hideout.repository.IUserRepository
import dev.usbharu.hideout.service.auth.IJwtService import dev.usbharu.hideout.service.auth.IJwtService
import dev.usbharu.hideout.service.core.IMetaService
import dev.usbharu.hideout.service.user.IUserAuthService import dev.usbharu.hideout.service.user.IUserAuthService
import dev.usbharu.hideout.util.JsonWebKeyUtil
import io.ktor.http.* import io.ktor.http.*
import io.ktor.server.application.* import io.ktor.server.application.*
import io.ktor.server.auth.* import io.ktor.server.auth.*
@ -18,10 +16,11 @@ import io.ktor.server.request.*
import io.ktor.server.response.* import io.ktor.server.response.*
import io.ktor.server.routing.* import io.ktor.server.routing.*
fun Route.auth(userAuthService: IUserAuthService, fun Route.auth(
userAuthService: IUserAuthService,
userRepository: IUserRepository, userRepository: IUserRepository,
jwtService: IJwtService, jwtService: IJwtService
metaService: IMetaService) { ) {
post("/login") { post("/login") {
val loginUser = call.receive<UserLogin>() val loginUser = call.receive<UserLogin>()
val check = userAuthService.verifyAccount(loginUser.username, loginUser.password) val check = userAuthService.verifyAccount(loginUser.username, loginUser.password)

View File

@ -73,6 +73,7 @@ class ExposedJobRepository(
} }
} }
@Suppress("SuspendFunWithFlowReturnType")
override suspend fun findNext(names: Set<String>, status: Set<JobStatus>, limit: Int): Flow<ScheduledJob> { override suspend fun findNext(names: Set<String>, status: Set<JobStatus>, limit: Int): Flow<ScheduledJob> {
return query { return query {
jobs.select( jobs.select(

View File

@ -15,6 +15,7 @@ import dev.usbharu.hideout.domain.model.hideout.form.RefreshToken
import dev.usbharu.hideout.domain.model.hideout.form.UserLogin import dev.usbharu.hideout.domain.model.hideout.form.UserLogin
import dev.usbharu.hideout.exception.InvalidRefreshTokenException import dev.usbharu.hideout.exception.InvalidRefreshTokenException
import dev.usbharu.hideout.repository.IUserRepository import dev.usbharu.hideout.repository.IUserRepository
import dev.usbharu.hideout.routing.api.internal.v1.auth
import dev.usbharu.hideout.service.auth.IJwtService import dev.usbharu.hideout.service.auth.IJwtService
import dev.usbharu.hideout.service.core.IMetaService import dev.usbharu.hideout.service.core.IMetaService
import dev.usbharu.hideout.service.user.IUserAuthService import dev.usbharu.hideout.service.user.IUserAuthService
@ -24,6 +25,7 @@ import io.ktor.client.request.*
import io.ktor.client.statement.* import io.ktor.client.statement.*
import io.ktor.http.* import io.ktor.http.*
import io.ktor.server.config.* import io.ktor.server.config.*
import io.ktor.server.routing.*
import io.ktor.server.testing.* import io.ktor.server.testing.*
import org.junit.jupiter.api.Test import org.junit.jupiter.api.Test
import org.mockito.ArgumentMatchers.anyString import org.mockito.ArgumentMatchers.anyString
@ -70,7 +72,10 @@ class SecurityKtTest {
val jwkProvider = mock<JwkProvider>() val jwkProvider = mock<JwkProvider>()
application { application {
configureSerialization() configureSerialization()
configureSecurity(jwkProvider) configureSecurity(jwkProvider, metaService)
routing {
auth(userAuthService, userRepository, jwtService)
}
} }
client.post("/login") { client.post("/login") {
@ -97,7 +102,10 @@ class SecurityKtTest {
val jwkProvider = mock<JwkProvider>() val jwkProvider = mock<JwkProvider>()
application { application {
configureSerialization() configureSerialization()
configureSecurity(jwkProvider) configureSecurity(jwkProvider, metaService)
routing {
auth(userAuthService, userRepository, jwtService)
}
} }
client.post("/login") { client.post("/login") {
contentType(ContentType.Application.Json) contentType(ContentType.Application.Json)
@ -122,7 +130,10 @@ class SecurityKtTest {
val jwkProvider = mock<JwkProvider>() val jwkProvider = mock<JwkProvider>()
application { application {
configureSerialization() configureSerialization()
configureSecurity(jwkProvider) configureSecurity(jwkProvider, metaService)
routing {
auth(userAuthService, userRepository, jwtService)
}
} }
client.post("/login") { client.post("/login") {
contentType(ContentType.Application.Json) contentType(ContentType.Application.Json)
@ -140,7 +151,10 @@ class SecurityKtTest {
Config.configData = ConfigData(url = "http://example.com", objectMapper = jacksonObjectMapper()) Config.configData = ConfigData(url = "http://example.com", objectMapper = jacksonObjectMapper())
application { application {
configureSerialization() configureSerialization()
configureSecurity(mock()) configureSecurity(mock(), mock())
routing {
auth(mock(), mock(), mock())
}
} }
client.get("/auth-check").apply { client.get("/auth-check").apply {
assertEquals(HttpStatusCode.Unauthorized, call.response.status) assertEquals(HttpStatusCode.Unauthorized, call.response.status)
@ -155,7 +169,10 @@ class SecurityKtTest {
Config.configData = ConfigData(url = "http://example.com", objectMapper = jacksonObjectMapper()) Config.configData = ConfigData(url = "http://example.com", objectMapper = jacksonObjectMapper())
application { application {
configureSerialization() configureSerialization()
configureSecurity(mock()) configureSecurity(mock(), mock())
routing {
auth(mock(), mock(), mock())
}
} }
client.get("/auth-check") { client.get("/auth-check") {
header("Authorization", "Digest dsfjjhogalkjdfmlhaog") header("Authorization", "Digest dsfjjhogalkjdfmlhaog")
@ -172,7 +189,10 @@ class SecurityKtTest {
Config.configData = ConfigData(url = "http://example.com", objectMapper = jacksonObjectMapper()) Config.configData = ConfigData(url = "http://example.com", objectMapper = jacksonObjectMapper())
application { application {
configureSerialization() configureSerialization()
configureSecurity(mock()) configureSecurity(mock(), mock())
routing {
auth(mock(), mock(), mock())
}
} }
client.get("/auth-check") { client.get("/auth-check") {
header("Authorization", "") header("Authorization", "")
@ -190,7 +210,10 @@ class SecurityKtTest {
application { application {
configureSerialization() configureSerialization()
configureSecurity(mock()) configureSecurity(mock(), mock())
routing {
auth(mock(), mock(), mock())
}
} }
client.get("/auth-check") { client.get("/auth-check") {
header("Authorization", "Bearer ") header("Authorization", "Bearer ")
@ -244,11 +267,12 @@ class SecurityKtTest {
) )
) )
} }
val userRepository = mock<IUserRepository>()
val jwtService = mock<IJwtService>()
application { application {
configureSerialization() configureSerialization()
configureSecurity(jwkProvider) configureSecurity(jwkProvider, metaService)
routing {
auth(mock(), mock(), mock())
}
} }
client.get("/auth-check") { client.get("/auth-check") {
@ -304,11 +328,12 @@ class SecurityKtTest {
) )
) )
} }
val userRepository = mock<IUserRepository>()
val jwtService = mock<IJwtService>()
application { application {
configureSerialization() configureSerialization()
configureSecurity(jwkProvider) configureSecurity(jwkProvider, metaService)
routing {
auth(mock(), mock(), mock())
}
} }
client.get("/auth-check") { client.get("/auth-check") {
header("Authorization", "Bearer $token") header("Authorization", "Bearer $token")
@ -362,11 +387,12 @@ class SecurityKtTest {
) )
) )
} }
val userRepository = mock<IUserRepository>()
val jwtService = mock<IJwtService>()
application { application {
configureSerialization() configureSerialization()
configureSecurity(jwkProvider) configureSecurity(jwkProvider, metaService)
routing {
auth(mock(), mock(), mock())
}
} }
client.get("/auth-check") { client.get("/auth-check") {
header("Authorization", "Bearer $token") header("Authorization", "Bearer $token")
@ -420,11 +446,12 @@ class SecurityKtTest {
) )
) )
} }
val userRepository = mock<IUserRepository>()
val jwtService = mock<IJwtService>()
application { application {
configureSerialization() configureSerialization()
configureSecurity(jwkProvider) configureSecurity(jwkProvider, metaService)
routing {
auth(mock(), mock(), mock())
}
} }
client.get("/auth-check") { client.get("/auth-check") {
header("Authorization", "Bearer $token") header("Authorization", "Bearer $token")
@ -477,11 +504,12 @@ class SecurityKtTest {
) )
) )
} }
val userRepository = mock<IUserRepository>()
val jwtService = mock<IJwtService>()
application { application {
configureSerialization() configureSerialization()
configureSecurity(jwkProvider) configureSecurity(jwkProvider, metaService)
routing {
auth(mock(), mock(), mock())
}
} }
client.get("/auth-check") { client.get("/auth-check") {
header("Authorization", "Bearer $token") header("Authorization", "Bearer $token")
@ -501,7 +529,10 @@ class SecurityKtTest {
} }
application { application {
configureSerialization() configureSerialization()
configureSecurity(mock()) configureSecurity(mock(), mock())
routing {
auth(mock(), mock(), jwtService)
}
} }
client.post("/refresh-token") { client.post("/refresh-token") {
header("Content-Type", "application/json") header("Content-Type", "application/json")
@ -523,7 +554,10 @@ class SecurityKtTest {
application { application {
configureStatusPages() configureStatusPages()
configureSerialization() configureSerialization()
configureSecurity(mock()) configureSecurity(mock(), mock())
routing {
auth(mock(), mock(), jwtService)
}
} }
client.post("/refresh-token") { client.post("/refresh-token") {
header("Content-Type", "application/json") header("Content-Type", "application/json")

View File

@ -4,6 +4,8 @@ import com.auth0.jwt.interfaces.Claim
import com.auth0.jwt.interfaces.Payload import com.auth0.jwt.interfaces.Payload
import com.fasterxml.jackson.module.kotlin.readValue import com.fasterxml.jackson.module.kotlin.readValue
import dev.usbharu.hideout.config.Config import dev.usbharu.hideout.config.Config
import dev.usbharu.hideout.domain.model.hideout.dto.PostResponse
import dev.usbharu.hideout.domain.model.hideout.dto.UserResponse
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.Visibility import dev.usbharu.hideout.domain.model.hideout.entity.Visibility
import dev.usbharu.hideout.plugins.TOKEN_AUTH import dev.usbharu.hideout.plugins.TOKEN_AUTH
@ -32,18 +34,27 @@ class PostsTest {
environment { environment {
config = ApplicationConfig("empty.conf") config = ApplicationConfig("empty.conf")
} }
val user = UserResponse(
id = 54321,
name = "user1",
domain = "example.com",
screenName = "user 1",
description = "Test user",
url = "https://example.com/users/54321",
createdAt = Instant.now().toEpochMilli()
)
val posts = listOf( val posts = listOf(
Post( PostResponse(
id = 12345, id = 12345,
userId = 4321, user = user,
text = "test1", text = "test1",
visibility = Visibility.PUBLIC, visibility = Visibility.PUBLIC,
createdAt = Instant.now().toEpochMilli(), createdAt = Instant.now().toEpochMilli(),
url = "https://example.com/posts/1" url = "https://example.com/posts/1"
), ),
Post( PostResponse(
id = 123456, id = 123456,
userId = 4322, user = user,
text = "test2", text = "test2",
visibility = Visibility.PUBLIC, visibility = Visibility.PUBLIC,
createdAt = Instant.now().toEpochMilli(), createdAt = Instant.now().toEpochMilli(),
@ -64,7 +75,7 @@ class PostsTest {
} }
application { application {
configureSerialization() configureSerialization()
configureSecurity(mock()) configureSecurity(mock(), mock())
routing { routing {
route("/api/internal/v1") { route("/api/internal/v1") {
posts(postService) posts(postService)
@ -89,27 +100,35 @@ class PostsTest {
val payload = mock<Payload> { val payload = mock<Payload> {
on { getClaim(eq("uid")) } doReturn claim on { getClaim(eq("uid")) } doReturn claim
} }
val user = UserResponse(
id = 54321,
name = "user1",
domain = "example.com",
screenName = "user 1",
description = "Test user",
url = "https://example.com/users/54321",
createdAt = Instant.now().toEpochMilli()
)
val posts = listOf( val posts = listOf(
Post( PostResponse(
id = 12345, id = 12345,
userId = 4321, user = user,
text = "test1", text = "test1",
visibility = Visibility.PUBLIC, visibility = Visibility.PUBLIC,
createdAt = Instant.now().toEpochMilli(), createdAt = Instant.now().toEpochMilli(),
url = "https://example.com/posts/1" url = "https://example.com/posts/1"
), ),
Post( PostResponse(
id = 123456, id = 123456,
userId = 4322, user = user,
text = "test2", text = "test2",
visibility = Visibility.PUBLIC, visibility = Visibility.PUBLIC,
createdAt = Instant.now().toEpochMilli(), createdAt = Instant.now().toEpochMilli(),
url = "https://example.com/posts/2" url = "https://example.com/posts/2"
), ),
Post( PostResponse(
id = 1234567, id = 1234567,
userId = 4333, user = user,
text = "Followers only", text = "Followers only",
visibility = Visibility.FOLLOWERS, visibility = Visibility.FOLLOWERS,
createdAt = Instant.now().toEpochMilli(), createdAt = Instant.now().toEpochMilli(),
@ -156,9 +175,18 @@ class PostsTest {
environment { environment {
config = ApplicationConfig("empty.conf") config = ApplicationConfig("empty.conf")
} }
val post = Post( val user = UserResponse(
12345, id = 54321,
1234, name = "user1",
domain = "example.com",
screenName = "user 1",
description = "Test user",
url = "https://example.com/users/54321",
createdAt = Instant.now().toEpochMilli()
)
val post = PostResponse(
id = 12345,
user = user,
text = "aaa", text = "aaa",
visibility = Visibility.PUBLIC, visibility = Visibility.PUBLIC,
createdAt = Instant.now().toEpochMilli(), createdAt = Instant.now().toEpochMilli(),
@ -169,7 +197,7 @@ class PostsTest {
} }
application { application {
configureSerialization() configureSerialization()
configureSecurity(mock()) configureSecurity(mock(), mock())
routing { routing {
route("/api/internal/v1") { route("/api/internal/v1") {
posts(postService) posts(postService)
@ -187,9 +215,17 @@ class PostsTest {
environment { environment {
config = ApplicationConfig("empty.conf") config = ApplicationConfig("empty.conf")
} }
val post = Post( val post = PostResponse(
12345, 12345,
1234, UserResponse(
id = 54321,
name = "user1",
domain = "example.com",
screenName = "user 1",
description = "Test user",
url = "https://example.com/users/54321",
createdAt = Instant.now().toEpochMilli()
),
text = "aaa", text = "aaa",
visibility = Visibility.FOLLOWERS, visibility = Visibility.FOLLOWERS,
createdAt = Instant.now().toEpochMilli(), createdAt = Instant.now().toEpochMilli(),
@ -242,14 +278,22 @@ class PostsTest {
onBlocking { createPost(any(), any()) } doAnswer { onBlocking { createPost(any(), any()) } doAnswer {
val argument = it.getArgument<dev.usbharu.hideout.domain.model.hideout.form.Post>(0) val argument = it.getArgument<dev.usbharu.hideout.domain.model.hideout.form.Post>(0)
val userId = it.getArgument<Long>(1) val userId = it.getArgument<Long>(1)
Post( PostResponse(
123L, id = 123L,
userId, user = UserResponse(
null, id = 54321,
argument.text, name = "user1",
Instant.now().toEpochMilli(), domain = "example.com",
Visibility.PUBLIC, screenName = "user 1",
"https://example.com" description = "Test user",
url = "https://example.com/users/54321",
createdAt = Instant.now().toEpochMilli()
),
overview = null,
text = argument.text,
createdAt = Instant.now().toEpochMilli(),
visibility = Visibility.PUBLIC,
url = "https://example.com"
) )
} }
} }
@ -290,18 +334,27 @@ class PostsTest {
environment { environment {
config = ApplicationConfig("empty.conf") config = ApplicationConfig("empty.conf")
} }
val user = UserResponse(
id = 54321,
name = "user1",
domain = "example.com",
screenName = "user 1",
description = "Test user",
url = "https://example.com/users/54321",
createdAt = Instant.now().toEpochMilli()
)
val posts = listOf( val posts = listOf(
Post( PostResponse(
id = 12345, id = 12345,
userId = 1, user = user,
text = "test1", text = "test1",
visibility = Visibility.PUBLIC, visibility = Visibility.PUBLIC,
createdAt = Instant.now().toEpochMilli(), createdAt = Instant.now().toEpochMilli(),
url = "https://example.com/posts/1" url = "https://example.com/posts/1"
), ),
Post( PostResponse(
id = 123456, id = 123456,
userId = 1, user = user,
text = "test2", text = "test2",
visibility = Visibility.PUBLIC, visibility = Visibility.PUBLIC,
createdAt = Instant.now().toEpochMilli(), createdAt = Instant.now().toEpochMilli(),
@ -323,7 +376,7 @@ class PostsTest {
} }
application { application {
configureSerialization() configureSerialization()
configureSecurity(mock()) configureSecurity(mock(), mock())
routing { routing {
route("/api/internal/v1") { route("/api/internal/v1") {
posts(postService) posts(postService)
@ -342,18 +395,27 @@ class PostsTest {
environment { environment {
config = ApplicationConfig("empty.conf") config = ApplicationConfig("empty.conf")
} }
val user = UserResponse(
id = 54321,
name = "user1",
domain = "example.com",
screenName = "user 1",
description = "Test user",
url = "https://example.com/users/54321",
createdAt = Instant.now().toEpochMilli()
)
val posts = listOf( val posts = listOf(
Post( PostResponse(
id = 12345, id = 12345,
userId = 1, user = user,
text = "test1", text = "test1",
visibility = Visibility.PUBLIC, visibility = Visibility.PUBLIC,
createdAt = Instant.now().toEpochMilli(), createdAt = Instant.now().toEpochMilli(),
url = "https://example.com/posts/1" url = "https://example.com/posts/1"
), ),
Post( PostResponse(
id = 123456, id = 123456,
userId = 1, user = user,
text = "test2", text = "test2",
visibility = Visibility.PUBLIC, visibility = Visibility.PUBLIC,
createdAt = Instant.now().toEpochMilli(), createdAt = Instant.now().toEpochMilli(),
@ -375,7 +437,7 @@ class PostsTest {
} }
application { application {
configureSerialization() configureSerialization()
configureSecurity(mock()) configureSecurity(mock(), mock())
routing { routing {
route("/api/internal/v1") { route("/api/internal/v1") {
posts(postService) posts(postService)
@ -394,18 +456,27 @@ class PostsTest {
environment { environment {
config = ApplicationConfig("empty.conf") config = ApplicationConfig("empty.conf")
} }
val user = UserResponse(
id = 54321,
name = "user1",
domain = "example.com",
screenName = "user 1",
description = "Test user",
url = "https://example.com/users/54321",
createdAt = Instant.now().toEpochMilli()
)
val posts = listOf( val posts = listOf(
Post( PostResponse(
id = 12345, id = 12345,
userId = 1, user = user,
text = "test1", text = "test1",
visibility = Visibility.PUBLIC, visibility = Visibility.PUBLIC,
createdAt = Instant.now().toEpochMilli(), createdAt = Instant.now().toEpochMilli(),
url = "https://example.com/posts/1" url = "https://example.com/posts/1"
), ),
Post( PostResponse(
id = 123456, id = 123456,
userId = 1, user = user,
text = "test2", text = "test2",
visibility = Visibility.PUBLIC, visibility = Visibility.PUBLIC,
createdAt = Instant.now().toEpochMilli(), createdAt = Instant.now().toEpochMilli(),
@ -427,7 +498,7 @@ class PostsTest {
} }
application { application {
configureSerialization() configureSerialization()
configureSecurity(mock()) configureSecurity(mock(), mock())
routing { routing {
route("/api/internal/v1") { route("/api/internal/v1") {
posts(postService) posts(postService)
@ -446,18 +517,27 @@ class PostsTest {
environment { environment {
config = ApplicationConfig("empty.conf") config = ApplicationConfig("empty.conf")
} }
val user = UserResponse(
id = 54321,
name = "user1",
domain = "example.com",
screenName = "user 1",
description = "Test user",
url = "https://example.com/users/54321",
createdAt = Instant.now().toEpochMilli()
)
val posts = listOf( val posts = listOf(
Post( PostResponse(
id = 12345, id = 12345,
userId = 1, user = user,
text = "test1", text = "test1",
visibility = Visibility.PUBLIC, visibility = Visibility.PUBLIC,
createdAt = Instant.now().toEpochMilli(), createdAt = Instant.now().toEpochMilli(),
url = "https://example.com/posts/1" url = "https://example.com/posts/1"
), ),
Post( PostResponse(
id = 123456, id = 123456,
userId = 1, user = user,
text = "test2", text = "test2",
visibility = Visibility.PUBLIC, visibility = Visibility.PUBLIC,
createdAt = Instant.now().toEpochMilli(), createdAt = Instant.now().toEpochMilli(),
@ -479,7 +559,7 @@ class PostsTest {
} }
application { application {
configureSerialization() configureSerialization()
configureSecurity(mock()) configureSecurity(mock(), mock())
routing { routing {
route("/api/internal/v1") { route("/api/internal/v1") {
posts(postService) posts(postService)
@ -498,9 +578,17 @@ class PostsTest {
environment { environment {
config = ApplicationConfig("empty.conf") config = ApplicationConfig("empty.conf")
} }
val post = Post( val post = PostResponse(
id = 123456, id = 123456,
userId = 1, user = UserResponse(
id = 54321,
name = "user1",
domain = "example.com",
screenName = "user 1",
description = "Test user",
url = "https://example.com/users/54321",
createdAt = Instant.now().toEpochMilli()
),
text = "test2", text = "test2",
visibility = Visibility.PUBLIC, visibility = Visibility.PUBLIC,
createdAt = Instant.now().toEpochMilli(), createdAt = Instant.now().toEpochMilli(),
@ -511,7 +599,7 @@ class PostsTest {
} }
application { application {
configureSerialization() configureSerialization()
configureSecurity(mock()) configureSecurity(mock(), mock())
routing { routing {
route("/api/internal/v1") { route("/api/internal/v1") {
posts(postService) posts(postService)
@ -530,9 +618,17 @@ class PostsTest {
environment { environment {
config = ApplicationConfig("empty.conf") config = ApplicationConfig("empty.conf")
} }
val post = Post( val post = PostResponse(
id = 123456, id = 123456,
userId = 1, user = UserResponse(
id = 54321,
name = "user1",
domain = "example.com",
screenName = "user 1",
description = "Test user",
url = "https://example.com/users/54321",
createdAt = Instant.now().toEpochMilli()
),
text = "test2", text = "test2",
visibility = Visibility.PUBLIC, visibility = Visibility.PUBLIC,
createdAt = Instant.now().toEpochMilli(), createdAt = Instant.now().toEpochMilli(),
@ -543,7 +639,7 @@ class PostsTest {
} }
application { application {
configureSerialization() configureSerialization()
configureSecurity(mock()) configureSecurity(mock(), mock())
routing { routing {
route("/api/internal/v1") { route("/api/internal/v1") {
posts(postService) posts(postService)
@ -562,9 +658,17 @@ class PostsTest {
environment { environment {
config = ApplicationConfig("empty.conf") config = ApplicationConfig("empty.conf")
} }
val post = Post( val post = PostResponse(
id = 123456, id = 123456,
userId = 1, user = UserResponse(
id = 54321,
name = "user1",
domain = "example.com",
screenName = "user 1",
description = "Test user",
url = "https://example.com/users/54321",
createdAt = Instant.now().toEpochMilli()
),
text = "test2", text = "test2",
visibility = Visibility.PUBLIC, visibility = Visibility.PUBLIC,
createdAt = Instant.now().toEpochMilli(), createdAt = Instant.now().toEpochMilli(),
@ -575,7 +679,7 @@ class PostsTest {
} }
application { application {
configureSerialization() configureSerialization()
configureSecurity(mock()) configureSecurity(mock(), mock())
routing { routing {
route("/api/internal/v1") { route("/api/internal/v1") {
posts(postService) posts(postService)
@ -594,9 +698,17 @@ class PostsTest {
environment { environment {
config = ApplicationConfig("empty.conf") config = ApplicationConfig("empty.conf")
} }
val post = Post( val post = PostResponse(
id = 123456, id = 123456,
userId = 1, user = UserResponse(
id = 54321,
name = "user1",
domain = "example.com",
screenName = "user 1",
description = "Test user",
url = "https://example.com/users/54321",
createdAt = Instant.now().toEpochMilli()
),
text = "test2", text = "test2",
visibility = Visibility.PUBLIC, visibility = Visibility.PUBLIC,
createdAt = Instant.now().toEpochMilli(), createdAt = Instant.now().toEpochMilli(),
@ -607,7 +719,7 @@ class PostsTest {
} }
application { application {
configureSerialization() configureSerialization()
configureSecurity(mock()) configureSecurity(mock(), mock())
routing { routing {
route("/api/internal/v1") { route("/api/internal/v1") {
posts(postService) posts(postService)

View File

@ -58,7 +58,7 @@ class UsersTest {
} }
application { application {
configureSerialization() configureSerialization()
configureSecurity(mock()) configureSecurity(mock(), mock())
routing { routing {
route("/api/internal/v1") { route("/api/internal/v1") {
users(mock(), userService) users(mock(), userService)
@ -96,7 +96,7 @@ class UsersTest {
} }
application { application {
configureSerialization() configureSerialization()
configureSecurity(mock()) configureSecurity(mock(), mock())
routing { routing {
route("/api/internal/v1") { route("/api/internal/v1") {
users(userService, mock()) users(userService, mock())
@ -127,7 +127,7 @@ class UsersTest {
} }
application { application {
configureSerialization() configureSerialization()
configureSecurity(mock()) configureSecurity(mock(), mock())
routing { routing {
route("/api/internal/v1") { route("/api/internal/v1") {
users(userService, mock()) users(userService, mock())
@ -162,7 +162,7 @@ class UsersTest {
} }
application { application {
configureSerialization() configureSerialization()
configureSecurity(mock()) configureSecurity(mock(), mock())
routing { routing {
route("/api/internal/v1") { route("/api/internal/v1") {
users(mock(), userApiService) users(mock(), userApiService)
@ -195,7 +195,7 @@ class UsersTest {
} }
application { application {
configureSerialization() configureSerialization()
configureSecurity(mock()) configureSecurity(mock(), mock())
routing { routing {
route("/api/internal/v1") { route("/api/internal/v1") {
users(mock(), userApiService) users(mock(), userApiService)
@ -228,7 +228,7 @@ class UsersTest {
} }
application { application {
configureSerialization() configureSerialization()
configureSecurity(mock()) configureSecurity(mock(), mock())
routing { routing {
route("/api/internal/v1") { route("/api/internal/v1") {
users(mock(), userApiService) users(mock(), userApiService)
@ -261,7 +261,7 @@ class UsersTest {
} }
application { application {
configureSerialization() configureSerialization()
configureSecurity(mock()) configureSecurity(mock(), mock())
routing { routing {
route("/api/internal/v1") { route("/api/internal/v1") {
users(mock(), userApiService) users(mock(), userApiService)
@ -306,7 +306,7 @@ class UsersTest {
} }
application { application {
configureSerialization() configureSerialization()
configureSecurity(mock()) configureSecurity(mock(), mock())
routing { routing {
route("/api/internal/v1") { route("/api/internal/v1") {
users(mock(), userApiService) users(mock(), userApiService)
@ -351,7 +351,7 @@ class UsersTest {
} }
application { application {
configureSerialization() configureSerialization()
configureSecurity(mock()) configureSecurity(mock(), mock())
routing { routing {
route("/api/internal/v1") { route("/api/internal/v1") {
users(mock(), userApiService) users(mock(), userApiService)
@ -396,7 +396,7 @@ class UsersTest {
} }
application { application {
configureSerialization() configureSerialization()
configureSecurity(mock()) configureSecurity(mock(), mock())
routing { routing {
route("/api/internal/v1") { route("/api/internal/v1") {
users(mock(), userApiService) users(mock(), userApiService)
@ -591,7 +591,7 @@ class UsersTest {
} }
application { application {
configureSerialization() configureSerialization()
configureSecurity(mock()) configureSecurity(mock(), mock())
routing { routing {
route("/api/internal/v1") { route("/api/internal/v1") {
users(mock(), userApiService) users(mock(), userApiService)
@ -636,7 +636,7 @@ class UsersTest {
} }
application { application {
configureSerialization() configureSerialization()
configureSecurity(mock()) configureSecurity(mock(), mock())
routing { routing {
route("/api/internal/v1") { route("/api/internal/v1") {
users(mock(), userApiService) users(mock(), userApiService)
@ -681,7 +681,7 @@ class UsersTest {
} }
application { application {
configureSerialization() configureSerialization()
configureSecurity(mock()) configureSecurity(mock(), mock())
routing { routing {
route("/api/internal/v1") { route("/api/internal/v1") {
users(mock(), userApiService) users(mock(), userApiService)

View File

@ -48,13 +48,21 @@ class ActivityPubReceiveFollowServiceImplTest {
firstValue.invoke(scheduleContext, ReceiveFollowJob) firstValue.invoke(scheduleContext, ReceiveFollowJob)
val actor = scheduleContext.props.props[ReceiveFollowJob.actor.name] val actor = scheduleContext.props.props[ReceiveFollowJob.actor.name]
val targetActor = scheduleContext.props.props[ReceiveFollowJob.targetActor.name] val targetActor = scheduleContext.props.props[ReceiveFollowJob.targetActor.name]
val follow = scheduleContext.props.props[ReceiveFollowJob.follow.name] val follow = scheduleContext.props.props[ReceiveFollowJob.follow.name] as String
assertEquals("https://follower.example.com", actor) assertEquals("https://follower.example.com", actor)
assertEquals("https://example.com", targetActor) assertEquals("https://example.com", targetActor)
//language=JSON //language=JSON
assertEquals( assertEquals(
"""{"type":"Follow","name":"Follow","actor":"https://follower.example.com","object":"https://example.com","@context":null}""", Json.parseToJsonElement(
follow """{
"type": "Follow",
"name": "Follow",
"actor": "https://follower.example.com",
"object": "https://example.com",
"@context": null
}"""
),
Json.parseToJsonElement(follow)
) )
} }
} }
@ -155,7 +163,14 @@ class ActivityPubReceiveFollowServiceImplTest {
data = mapOf<String, Any>( data = mapOf<String, Any>(
ReceiveFollowJob.actor.name to "https://follower.example.com", ReceiveFollowJob.actor.name to "https://follower.example.com",
ReceiveFollowJob.targetActor.name to "https://example.com", ReceiveFollowJob.targetActor.name to "https://example.com",
ReceiveFollowJob.follow.name to """{"type":"Follow","name":"Follow","object":"https://example.com","actor":"https://follower.example.com","@context":null}""" //language=JSON
ReceiveFollowJob.follow.name to """{
"type": "Follow",
"name": "Follow",
"object": "https://example.com",
"actor": "https://follower.example.com",
"@context": null
}"""
), ),
json = Json json = Json
) )