Skip to content

Commit

Permalink
Test | CAKK-91 | 리팩토링에 따른 테스트 코드 수정
Browse files Browse the repository at this point in the history
  • Loading branch information
lcomment committed Oct 1, 2024
1 parent 05a8945 commit 2d44293
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 33 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,37 +9,43 @@ import org.springframework.test.web.servlet.result.MockMvcResultMatchers.status
import com.cakk.api.common.annotation.TestWithDisplayName
import com.cakk.api.common.base.MockMvcTest
import com.cakk.api.common.fixture.FixtureCommon.fixtureMonkey
import com.cakk.api.common.fixture.FixtureCommon.getDateFixture
import com.cakk.api.common.fixture.FixtureCommon.getEnumFixture
import com.cakk.api.common.fixture.FixtureCommon.getStringFixtureBw
import com.cakk.api.dto.request.user.GenerateCodeRequest
import com.cakk.api.dto.request.user.UserSignUpRequest
import com.cakk.api.dto.request.user.VerifyEmailRequest
import com.cakk.common.enums.Gender
import com.cakk.common.enums.Provider
import com.cakk.core.dto.param.user.UserSignInParam
import com.cakk.core.dto.param.user.UserSignUpParam
import com.cakk.core.dto.response.user.JwtResponse
import org.mockito.kotlin.any

internal class SignControllerTest : MockMvcTest() {

@TestWithDisplayName("")
fun signUp() {
// given
val param = fixtureMonkey.giveMeBuilder(UserSignUpParam::class.java)
.setNotNull("provider")
.setNotNull("idToken")
.setNotNull("nickname")
.setNotNull("email")
.setNotNull("birthday")
.setNotNull("gender")
val dto = fixtureMonkey.giveMeBuilder(UserSignUpRequest::class.java)
.set("provider", getEnumFixture(Provider::class.java))
.set("idToken", getStringFixtureBw(100, 200))
.set("nickname", getStringFixtureBw(2, 10))
.set("email", getStringFixtureBw(5, 20))
.set("birthday", getDateFixture())
.set("gender", getEnumFixture(Gender::class.java))
.sample()
val jwt = fixtureMonkey.giveMeBuilder(JwtResponse::class.java)
.setNotNull("accessToken")
.setNotNull("refreshToken")
.setNotNull("grantType")
.sample()

doReturn(jwt).`when`(signService).signUp(param)
doReturn(jwt).`when`(signService).signUp(any())

// when & then
mockMvc.perform(
post("/sign-up")
.content(objectMapper.writeValueAsString(param))
.content(objectMapper.writeValueAsString(dto))
.contentType(MediaType.APPLICATION_JSON)
)
.andExpect(status().isOk())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import io.kotest.matchers.shouldNotBe
import net.jqwik.api.Arbitraries

import org.junit.jupiter.api.DisplayName
import org.mockito.ArgumentMatchers
import org.mockito.InjectMocks
import org.mockito.Mock
import org.mockito.Mockito.*
Expand All @@ -27,7 +26,6 @@ import com.cakk.core.facade.cake.CakeReadFacade
import com.cakk.core.facade.cake.CakeShopReadFacade
import com.cakk.core.facade.tag.TagReadFacade
import com.cakk.domain.mysql.dto.param.cake.CakeImageResponseParam
import com.cakk.domain.redis.repository.CakeViewsRedisRepository

@DisplayName("케이크 조회 관련 비즈니스 로직 테스트")
internal class CakeServiceTest : MockitoTest() {
Expand All @@ -47,9 +45,6 @@ internal class CakeServiceTest : MockitoTest() {
@Mock
private lateinit var cakeManageFacade: CakeManageFacade

@Mock
private lateinit var cakeViewsRedisRepository: CakeViewsRedisRepository

@Mock
private lateinit var eventPublisher: ApplicationEventPublisher

Expand Down Expand Up @@ -146,8 +141,7 @@ internal class CakeServiceTest : MockitoTest() {
.set("cakeImageUrl", Arbitraries.strings().alpha().ofMinLength(10).ofMaxLength(20))
.sampleList(3)

doReturn(cakeIds).`when`(cakeViewsRedisRepository).findTopCakeIdsByOffsetAndCount(cursor, pageSize.toLong())
doReturn(cakeImages).`when`(cakeReadFacade).searchCakeImagesByCakeIds(cakeIds)
doReturn(Pair(cakeIds, cakeImages)).`when`(cakeReadFacade).searchBestCakeImages(cursor, pageSize)

// when
val result = cakeService.searchCakeImagesByCursorAndViews(dto)
Expand All @@ -156,8 +150,7 @@ internal class CakeServiceTest : MockitoTest() {
result.cakeImages shouldNotBe null
result.lastCakeId shouldBe null

verify(cakeViewsRedisRepository, times(1)).findTopCakeIdsByOffsetAndCount(cursor, pageSize.toLong())
verify(cakeReadFacade, times(1)).searchCakeImagesByCakeIds(cakeIds)
verify(cakeReadFacade, times(1)).searchBestCakeImages(cursor, pageSize)
}

@TestWithDisplayName("인기 케이크 목록이 없을 시 빈 배열을 조회한다")
Expand All @@ -167,7 +160,7 @@ internal class CakeServiceTest : MockitoTest() {
val pageSize = 3
val dto = CakeSearchByViewsParam(cursor, pageSize)

doReturn(listOf<Long>()).`when`(cakeViewsRedisRepository).findTopCakeIdsByOffsetAndCount(cursor, pageSize.toLong())
doReturn(Pair(listOf<Long>(), listOf<CakeSearchByViewsParam>())).`when`(cakeReadFacade).searchBestCakeImages(cursor, pageSize)

// when
val result = cakeService.searchCakeImagesByCursorAndViews(dto)
Expand All @@ -176,7 +169,6 @@ internal class CakeServiceTest : MockitoTest() {
result.cakeImages.size shouldBe 0
result.lastCakeId shouldBe null

verify(cakeViewsRedisRepository, times(1)).findTopCakeIdsByOffsetAndCount(cursor, pageSize.toLong())
verify(cakeReadFacade, never()).searchCakeImagesByCakeIds(ArgumentMatchers.anyList<Long>())
verify(cakeReadFacade, times(1)).searchBestCakeImages(cursor, pageSize)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -66,9 +66,6 @@ internal class ShopServiceTest : MockitoTest() {
@Mock
private lateinit var cakeShopManageFacade: CakeShopManageFacade

@Mock
private lateinit var cakeShopViewsRedisRepository: CakeShopViewsRedisRepository

@Mock
private lateinit var publisher: ApplicationEventPublisher

Expand Down Expand Up @@ -308,16 +305,14 @@ internal class ShopServiceTest : MockitoTest() {
val offset: Long = 0L
val pageSize: Int = 3
val param = CakeShopSearchByViewsParam(offset, pageSize)
val cakeShopIds = listOf(1L, 2L, 3L)
val cakeShops = getConstructorMonkey().giveMeBuilder(CakeShop::class.java)
.set("cakeShopId", getLongFixtureGoe(1))
.set("thumbnailUrl", getStringFixtureBw(100, 200))
.set("cakeShopName", getStringFixtureBw(1, 30))
.set("cakeShopBio", getStringFixtureBw(1, 40))
.sampleList(3)

doReturn(cakeShopIds).`when`(cakeShopViewsRedisRepository).findTopShopIdsByOffsetAndCount(offset, pageSize.toLong())
doReturn(cakeShops).`when`(cakeShopReadFacade).searchShopsByShopIds(cakeShopIds)
doReturn(cakeShops).`when`(cakeShopReadFacade).searchBestShops(offset, pageSize)

// when
val result = shopService.searchCakeShopsByCursorAndViews(param)
Expand All @@ -326,8 +321,7 @@ internal class ShopServiceTest : MockitoTest() {
result shouldNotBe null
result.size shouldBe cakeShops.size

verify(cakeShopViewsRedisRepository, times(1)).findTopShopIdsByOffsetAndCount(offset, pageSize.toLong())
verify(cakeShopReadFacade, times(1)).searchShopsByShopIds(cakeShopIds)
verify(cakeShopReadFacade, times(1)).searchBestShops(offset, pageSize)
}

@TestWithDisplayName("인기 케이크 샵 목록이 없는 경우, 빈 배열을 조회한다.")
Expand All @@ -338,7 +332,7 @@ internal class ShopServiceTest : MockitoTest() {
val param = CakeShopSearchByViewsParam(offset, pageSize)
val cakeShopIds: List<Long> = listOf()

doReturn(cakeShopIds).`when`(cakeShopViewsRedisRepository).findTopShopIdsByOffsetAndCount(offset, pageSize.toLong())
doReturn(cakeShopIds).`when`(cakeShopReadFacade).searchBestShops(offset, pageSize)

// when
val result = shopService.searchCakeShopsByCursorAndViews(param)
Expand All @@ -347,8 +341,7 @@ internal class ShopServiceTest : MockitoTest() {
result shouldNotBe null
result.cakeShops shouldHaveSize 0

verify(cakeShopViewsRedisRepository, times(1)).findTopShopIdsByOffsetAndCount(offset, pageSize.toLong())
verify(cakeShopReadFacade, never()).searchShopsByShopIds(cakeShopIds)
verify(cakeShopReadFacade, times(1)).searchBestShops(offset, pageSize)
}

@TestWithDisplayName("케이크샵 기본 정보 수정을 한다")
Expand Down

0 comments on commit 2d44293

Please sign in to comment.