fix(admin-chat-character): JP 리전 캐릭터 등록 성별 값을 일본어로 변환한다
This commit is contained in:
@@ -206,7 +206,7 @@ class AdminChatCharacterController(
|
||||
body["description"] = request.description
|
||||
body["region"] = request.region
|
||||
request.age?.let { body["age"] = it }
|
||||
request.gender?.let { body["gender"] = it }
|
||||
request.gender?.let { body["gender"] = mapGenderForExternalApi(request.region, it) }
|
||||
request.mbti?.let { body["mbti"] = it }
|
||||
request.speechPattern?.let { body["speechPattern"] = it }
|
||||
request.speechStyle?.let { body["speechStyle"] = it }
|
||||
@@ -273,6 +273,19 @@ class AdminChatCharacterController(
|
||||
}
|
||||
}
|
||||
|
||||
private fun mapGenderForExternalApi(region: String, gender: String): String {
|
||||
if (!region.equals("JP", ignoreCase = true)) {
|
||||
return gender
|
||||
}
|
||||
|
||||
return when (gender) {
|
||||
"여성" -> "女性"
|
||||
"남성" -> "男性"
|
||||
"기타" -> "その他"
|
||||
else -> gender
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 캐릭터 수정 API
|
||||
* 1. JSON 문자열을 ChatCharacterUpdateRequest 객체로 변환
|
||||
|
||||
@@ -0,0 +1,63 @@
|
||||
package kr.co.vividnext.sodalive.admin.chat.character
|
||||
|
||||
import kr.co.vividnext.sodalive.admin.chat.character.service.AdminChatCharacterService
|
||||
import kr.co.vividnext.sodalive.admin.chat.original.service.AdminOriginalWorkService
|
||||
import kr.co.vividnext.sodalive.aws.s3.S3Uploader
|
||||
import kr.co.vividnext.sodalive.chat.character.service.ChatCharacterService
|
||||
import org.junit.jupiter.api.Assertions.assertEquals
|
||||
import org.junit.jupiter.api.Test
|
||||
import org.mockito.Mockito
|
||||
import org.springframework.context.ApplicationEventPublisher
|
||||
|
||||
class AdminChatCharacterControllerTest {
|
||||
private val controller = AdminChatCharacterController(
|
||||
service = Mockito.mock(ChatCharacterService::class.java),
|
||||
adminService = Mockito.mock(AdminChatCharacterService::class.java),
|
||||
s3Uploader = Mockito.mock(S3Uploader::class.java),
|
||||
originalWorkService = Mockito.mock(AdminOriginalWorkService::class.java),
|
||||
applicationEventPublisher = Mockito.mock(ApplicationEventPublisher::class.java),
|
||||
apiKey = "test-api-key",
|
||||
apiUrl = "https://example.com",
|
||||
s3Bucket = "test-bucket",
|
||||
imageHost = "https://cdn.example.com"
|
||||
)
|
||||
|
||||
private fun mapGender(region: String, gender: String): String {
|
||||
val method = AdminChatCharacterController::class.java.getDeclaredMethod(
|
||||
"mapGenderForExternalApi",
|
||||
String::class.java,
|
||||
String::class.java
|
||||
)
|
||||
method.isAccessible = true
|
||||
|
||||
return method.invoke(controller, region, gender) as String
|
||||
}
|
||||
|
||||
@Test
|
||||
fun shouldMapFemaleToJapaneseWhenRegionIsJp() {
|
||||
val mappedGender = mapGender(region = "JP", gender = "여성")
|
||||
|
||||
assertEquals("女性", mappedGender)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun shouldMapMaleToJapaneseWhenRegionIsJp() {
|
||||
val mappedGender = mapGender(region = "JP", gender = "남성")
|
||||
|
||||
assertEquals("男性", mappedGender)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun shouldMapOtherToJapaneseWhenRegionIsJp() {
|
||||
val mappedGender = mapGender(region = "JP", gender = "기타")
|
||||
|
||||
assertEquals("その他", mappedGender)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun shouldKeepGenderWhenRegionIsNotJp() {
|
||||
val mappedGender = mapGender(region = "KR", gender = "여성")
|
||||
|
||||
assertEquals("여성", mappedGender)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user