fix(content): 크리에이터 관리자 시리즈 상세 조회 예외를 수정한다
This commit is contained in:
@@ -26,6 +26,7 @@ import org.springframework.transaction.annotation.Transactional
|
||||
import org.springframework.web.multipart.MultipartFile
|
||||
|
||||
@Service
|
||||
@Transactional(readOnly = true)
|
||||
class CreatorAdminContentSeriesService(
|
||||
private val repository: CreatorAdminContentSeriesRepository,
|
||||
private val genreRepository: CreatorAdminContentSeriesGenreRepository,
|
||||
|
||||
@@ -0,0 +1,96 @@
|
||||
package kr.co.vividnext.sodalive.creator.admin.content.series
|
||||
|
||||
import kr.co.vividnext.sodalive.admin.content.series.genre.SeriesGenre
|
||||
import kr.co.vividnext.sodalive.content.hashtag.HashTag
|
||||
import kr.co.vividnext.sodalive.creator.admin.content.series.keyword.SeriesKeyword
|
||||
import kr.co.vividnext.sodalive.member.Member
|
||||
import kr.co.vividnext.sodalive.member.MemberRole
|
||||
import kr.co.vividnext.sodalive.support.EmbeddedRedisInitializer
|
||||
import org.junit.jupiter.api.Assertions.assertEquals
|
||||
import org.junit.jupiter.api.DisplayName
|
||||
import org.junit.jupiter.api.Test
|
||||
import org.springframework.beans.factory.annotation.Autowired
|
||||
import org.springframework.boot.test.context.SpringBootTest
|
||||
import org.springframework.test.context.ContextConfiguration
|
||||
import org.springframework.transaction.support.TransactionTemplate
|
||||
import javax.persistence.EntityManager
|
||||
|
||||
@SpringBootTest(properties = ["cloud.aws.cloud-front.host=https://cdn.test"])
|
||||
@ContextConfiguration(initializers = [EmbeddedRedisInitializer::class])
|
||||
class CreatorAdminContentSeriesServiceIntegrationTest @Autowired constructor(
|
||||
private val service: CreatorAdminContentSeriesService,
|
||||
private val entityManager: EntityManager,
|
||||
private val transactionTemplate: TransactionTemplate
|
||||
) {
|
||||
@Test
|
||||
@DisplayName("OSIV off 환경에서 크리에이터 관리자 시리즈 상세는 키워드와 기존 필드를 반환한다")
|
||||
fun shouldReturnOwnedSeriesDetailWithKeywordsWhenOpenInViewIsDisabled() {
|
||||
val fixtureIds = createSeriesFixture()
|
||||
|
||||
val response = service.getDetail(id = fixtureIds.seriesId, memberId = fixtureIds.memberId)
|
||||
|
||||
assertEquals(fixtureIds.seriesId, response.seriesId)
|
||||
assertEquals("lazy series", response.title)
|
||||
assertEquals("lazy series introduction", response.introduction)
|
||||
assertEquals("https://cdn.test/series/lazy-series.png", response.coverImageUrl)
|
||||
assertEquals("월, 수", response.publishedDaysOfWeek)
|
||||
assertEquals("lazy genre", response.genre)
|
||||
assertEquals("#lazy-keyword", response.keywords)
|
||||
assertEquals(true, response.isAdult)
|
||||
assertEquals("완결", response.state)
|
||||
assertEquals("lazy writer", response.writer)
|
||||
assertEquals("lazy studio", response.studio)
|
||||
}
|
||||
|
||||
private fun createSeriesFixture(): FixtureIds {
|
||||
return transactionTemplate.execute {
|
||||
val member = Member(
|
||||
email = "creator-admin-series-detail@test.com",
|
||||
password = "password",
|
||||
nickname = "creator-admin-series-detail",
|
||||
role = MemberRole.CREATOR
|
||||
)
|
||||
entityManager.persist(member)
|
||||
|
||||
val genre = SeriesGenre(genre = "lazy genre")
|
||||
entityManager.persist(genre)
|
||||
|
||||
val hashTag = HashTag("#lazy-keyword")
|
||||
entityManager.persist(hashTag)
|
||||
|
||||
val series = Series(
|
||||
title = "lazy series",
|
||||
introduction = "lazy series introduction",
|
||||
state = SeriesState.COMPLETE,
|
||||
writer = "lazy writer",
|
||||
studio = "lazy studio",
|
||||
publishedDaysOfWeek = mutableSetOf(
|
||||
SeriesPublishedDaysOfWeek.MON,
|
||||
SeriesPublishedDaysOfWeek.WED
|
||||
),
|
||||
isAdult = true
|
||||
).apply {
|
||||
this.member = member
|
||||
this.genre = genre
|
||||
coverImage = "series/lazy-series.png"
|
||||
}
|
||||
series.keywordList.add(
|
||||
SeriesKeyword().apply {
|
||||
this.series = series
|
||||
keyword = hashTag
|
||||
}
|
||||
)
|
||||
entityManager.persist(series)
|
||||
|
||||
entityManager.flush()
|
||||
val fixtureIds = FixtureIds(memberId = member.id!!, seriesId = series.id!!)
|
||||
entityManager.clear()
|
||||
fixtureIds
|
||||
}!!
|
||||
}
|
||||
|
||||
private data class FixtureIds(
|
||||
val memberId: Long,
|
||||
val seriesId: Long
|
||||
)
|
||||
}
|
||||
Reference in New Issue
Block a user