test(ai-character): 오디오 콘텐츠 수정 테스트를 안정화한다
This commit is contained in:
@@ -99,9 +99,9 @@ tasks.withType<KotlinCompile> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
tasks.withType<Test> {
|
tasks.withType<Test>().configureEach {
|
||||||
useJUnitPlatform()
|
useJUnitPlatform()
|
||||||
maxHeapSize = "4096m"
|
maxHeapSize = "4g"
|
||||||
jvmArgs("-Dfile.encoding=UTF-8")
|
jvmArgs("-Dfile.encoding=UTF-8")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -756,13 +756,15 @@ class AiCharacterAdminAudioContentControllerTest @Autowired constructor(
|
|||||||
title = "invalid release title",
|
title = "invalid release title",
|
||||||
contentPath = "private/invalid-release.mp3"
|
contentPath = "private/invalid-release.mp3"
|
||||||
)
|
)
|
||||||
|
val contentId = content.id!!
|
||||||
entityManager.flush()
|
entityManager.flush()
|
||||||
|
entityManager.clear()
|
||||||
val beforeAudioContents = countAudioContents()
|
val beforeAudioContents = countAudioContents()
|
||||||
val beforeSeriesContents = countSeriesContents()
|
val beforeSeriesContents = countSeriesContents()
|
||||||
val beforeReleaseDate = content.releaseDate
|
val beforeReleaseDate = entityManager.find(AudioContent::class.java, contentId).releaseDate
|
||||||
|
|
||||||
mockMvc.perform(
|
mockMvc.perform(
|
||||||
multipart(HttpMethod.PUT, "/api/v2/admin/ai-characters/${character.id}/audio-contents/${content.id}")
|
multipart(HttpMethod.PUT, "/api/v2/admin/ai-characters/${character.id}/audio-contents/$contentId")
|
||||||
.file(MockMultipartFile("coverImage", "cover.png", "image/png", byteArrayOf(1)))
|
.file(MockMultipartFile("coverImage", "cover.png", "image/png", byteArrayOf(1)))
|
||||||
.file(
|
.file(
|
||||||
MockMultipartFile(
|
MockMultipartFile(
|
||||||
@@ -778,7 +780,7 @@ class AiCharacterAdminAudioContentControllerTest @Autowired constructor(
|
|||||||
.andExpectApiError(message)
|
.andExpectApiError(message)
|
||||||
|
|
||||||
assertNoSideEffects(beforeAudioContents, beforeSeriesContents) {
|
assertNoSideEffects(beforeAudioContents, beforeSeriesContents) {
|
||||||
val persistedContent = entityManager.find(AudioContent::class.java, content.id)
|
val persistedContent = entityManager.find(AudioContent::class.java, contentId)
|
||||||
assertEquals("invalid release title", persistedContent.title)
|
assertEquals("invalid release title", persistedContent.title)
|
||||||
assertEquals(beforeReleaseDate, persistedContent.releaseDate)
|
assertEquals(beforeReleaseDate, persistedContent.releaseDate)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -235,17 +235,18 @@ class AiCharacterAdminAudioContentUpdateTest @Autowired constructor(
|
|||||||
)
|
)
|
||||||
val series = saveSeries("preserve-series", character.creatorMember!!)
|
val series = saveSeries("preserve-series", character.creatorMember!!)
|
||||||
val content = saveAudioContent(character.creatorMember!!, "preserve-series-content")
|
val content = saveAudioContent(character.creatorMember!!, "preserve-series-content")
|
||||||
val seriesContent = saveSeriesContent(series, content).apply { orders = 7 }
|
saveSeriesContent(series, content).apply { orders = 7 }
|
||||||
|
val contentId = content.id!!
|
||||||
entityManager.flush()
|
entityManager.flush()
|
||||||
|
|
||||||
val beforeId = seriesContent.id
|
|
||||||
val beforeCreatedAt = seriesContent.createdAt
|
|
||||||
entityManager.clear()
|
entityManager.clear()
|
||||||
|
val persistedSeriesContent = findSeriesContents(contentId).single()
|
||||||
|
val beforeId = persistedSeriesContent.id
|
||||||
|
val beforeCreatedAt = persistedSeriesContent.createdAt
|
||||||
Mockito.`when`(audioContentCloudFront.generateSignedURL(Mockito.anyString(), Mockito.anyLong()))
|
Mockito.`when`(audioContentCloudFront.generateSignedURL(Mockito.anyString(), Mockito.anyLong()))
|
||||||
.thenReturn("https://test.cloudfront.net/private/preserve-series-content.mp3")
|
.thenReturn("https://test.cloudfront.net/private/preserve-series-content.mp3")
|
||||||
|
|
||||||
mockMvc.perform(
|
mockMvc.perform(
|
||||||
multipart(HttpMethod.PUT, "/api/v2/admin/ai-characters/${character.id}/audio-contents/${content.id}")
|
multipart(HttpMethod.PUT, "/api/v2/admin/ai-characters/${character.id}/audio-contents/$contentId")
|
||||||
.file(
|
.file(
|
||||||
MockMultipartFile(
|
MockMultipartFile(
|
||||||
"request",
|
"request",
|
||||||
@@ -270,11 +271,11 @@ class AiCharacterAdminAudioContentUpdateTest @Autowired constructor(
|
|||||||
.andExpect(status().isOk)
|
.andExpect(status().isOk)
|
||||||
.andExpect(jsonPath("$.data").value(nullValue()))
|
.andExpect(jsonPath("$.data").value(nullValue()))
|
||||||
|
|
||||||
val saved = findSeriesContents(content.id!!).single()
|
val saved = findSeriesContents(contentId).single()
|
||||||
assertEquals(beforeId, saved.id)
|
assertEquals(beforeId, saved.id)
|
||||||
assertEquals(7, saved.orders)
|
assertEquals(7, saved.orders)
|
||||||
assertEquals(beforeCreatedAt, saved.createdAt)
|
assertEquals(beforeCreatedAt, saved.createdAt)
|
||||||
val updated = entityManager.find(AudioContent::class.java, content.id)
|
val updated = entityManager.find(AudioContent::class.java, contentId)
|
||||||
assertEquals("updated title", updated.title)
|
assertEquals("updated title", updated.title)
|
||||||
assertEquals("updated detail", updated.detail)
|
assertEquals("updated detail", updated.detail)
|
||||||
assertEquals(250, updated.price)
|
assertEquals(250, updated.price)
|
||||||
@@ -298,17 +299,19 @@ class AiCharacterAdminAudioContentUpdateTest @Autowired constructor(
|
|||||||
val addedSeries = saveSeries("added-series", character.creatorMember!!)
|
val addedSeries = saveSeries("added-series", character.creatorMember!!)
|
||||||
val content = saveAudioContent(character.creatorMember!!, "diff-series-content")
|
val content = saveAudioContent(character.creatorMember!!, "diff-series-content")
|
||||||
saveSeriesContent(removedSeries, content)
|
saveSeriesContent(removedSeries, content)
|
||||||
val keptSeriesContent = saveSeriesContent(keptSeries, content).apply { orders = 5 }
|
saveSeriesContent(keptSeries, content).apply { orders = 5 }
|
||||||
|
val contentId = content.id!!
|
||||||
entityManager.flush()
|
entityManager.flush()
|
||||||
|
|
||||||
val keptId = keptSeriesContent.id
|
|
||||||
val keptCreatedAt = keptSeriesContent.createdAt
|
|
||||||
entityManager.clear()
|
entityManager.clear()
|
||||||
|
val persistedKept = findSeriesContents(contentId).single { it.series!!.id == keptSeries.id }
|
||||||
|
val keptId = persistedKept.id
|
||||||
|
val keptCreatedAt = persistedKept.createdAt
|
||||||
Mockito.`when`(audioContentCloudFront.generateSignedURL(Mockito.anyString(), Mockito.anyLong()))
|
Mockito.`when`(audioContentCloudFront.generateSignedURL(Mockito.anyString(), Mockito.anyLong()))
|
||||||
.thenReturn("https://test.cloudfront.net/private/diff-series-content.mp3")
|
.thenReturn("https://test.cloudfront.net/private/diff-series-content.mp3")
|
||||||
|
|
||||||
mockMvc.perform(
|
mockMvc.perform(
|
||||||
multipart(HttpMethod.PUT, "/api/v2/admin/ai-characters/${character.id}/audio-contents/${content.id}")
|
multipart(HttpMethod.PUT, "/api/v2/admin/ai-characters/${character.id}/audio-contents/$contentId")
|
||||||
.file(
|
.file(
|
||||||
MockMultipartFile(
|
MockMultipartFile(
|
||||||
"request",
|
"request",
|
||||||
@@ -322,7 +325,7 @@ class AiCharacterAdminAudioContentUpdateTest @Autowired constructor(
|
|||||||
.andExpect(status().isOk)
|
.andExpect(status().isOk)
|
||||||
.andExpect(jsonPath("$.data").value(nullValue()))
|
.andExpect(jsonPath("$.data").value(nullValue()))
|
||||||
|
|
||||||
val saved = findSeriesContents(content.id!!)
|
val saved = findSeriesContents(contentId)
|
||||||
assertEquals(setOf(removedSeries.id, keptSeries.id), saved.map { it.series!!.id }.toSet())
|
assertEquals(setOf(removedSeries.id, keptSeries.id), saved.map { it.series!!.id }.toSet())
|
||||||
val kept = saved.single { it.series!!.id == keptSeries.id }
|
val kept = saved.single { it.series!!.id == keptSeries.id }
|
||||||
assertEquals(keptId, kept.id)
|
assertEquals(keptId, kept.id)
|
||||||
|
|||||||
Reference in New Issue
Block a user