From 2d44293b3cb208e54a00f00e649d13206a746d7d Mon Sep 17 00:00:00 2001 From: lcomment Date: Tue, 1 Oct 2024 14:08:32 +0900 Subject: [PATCH] =?UTF-8?q?Test=20|=20CAKK-91=20|=20=EB=A6=AC=ED=8C=A9?= =?UTF-8?q?=ED=86=A0=EB=A7=81=EC=97=90=20=EB=94=B0=EB=A5=B8=20=ED=85=8C?= =?UTF-8?q?=EC=8A=A4=ED=8A=B8=20=EC=BD=94=EB=93=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cakk/api/controller/SignControllerTest.kt | 26 ++++++++++++------- .../cakk/core/service/cake/CakeServiceTest.kt | 16 +++--------- .../cakk/core/service/shop/ShopServiceTest.kt | 15 +++-------- 3 files changed, 24 insertions(+), 33 deletions(-) diff --git a/cakk-api/src/test/java/com/cakk/api/controller/SignControllerTest.kt b/cakk-api/src/test/java/com/cakk/api/controller/SignControllerTest.kt index 64a7af7c..f5ac411b 100644 --- a/cakk-api/src/test/java/com/cakk/api/controller/SignControllerTest.kt +++ b/cakk-api/src/test/java/com/cakk/api/controller/SignControllerTest.kt @@ -9,24 +9,30 @@ 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") @@ -34,12 +40,12 @@ internal class SignControllerTest : MockMvcTest() { .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()) diff --git a/cakk-core/src/test/kotlin/com/cakk/core/service/cake/CakeServiceTest.kt b/cakk-core/src/test/kotlin/com/cakk/core/service/cake/CakeServiceTest.kt index 1089d42a..01491a89 100644 --- a/cakk-core/src/test/kotlin/com/cakk/core/service/cake/CakeServiceTest.kt +++ b/cakk-core/src/test/kotlin/com/cakk/core/service/cake/CakeServiceTest.kt @@ -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.* @@ -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() { @@ -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 @@ -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) @@ -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("인기 케이크 목록이 없을 시 빈 배열을 조회한다") @@ -167,7 +160,7 @@ internal class CakeServiceTest : MockitoTest() { val pageSize = 3 val dto = CakeSearchByViewsParam(cursor, pageSize) - doReturn(listOf()).`when`(cakeViewsRedisRepository).findTopCakeIdsByOffsetAndCount(cursor, pageSize.toLong()) + doReturn(Pair(listOf(), listOf())).`when`(cakeReadFacade).searchBestCakeImages(cursor, pageSize) // when val result = cakeService.searchCakeImagesByCursorAndViews(dto) @@ -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()) + verify(cakeReadFacade, times(1)).searchBestCakeImages(cursor, pageSize) } } diff --git a/cakk-core/src/test/kotlin/com/cakk/core/service/shop/ShopServiceTest.kt b/cakk-core/src/test/kotlin/com/cakk/core/service/shop/ShopServiceTest.kt index 6c5a90ee..38befd30 100644 --- a/cakk-core/src/test/kotlin/com/cakk/core/service/shop/ShopServiceTest.kt +++ b/cakk-core/src/test/kotlin/com/cakk/core/service/shop/ShopServiceTest.kt @@ -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 @@ -308,7 +305,6 @@ 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)) @@ -316,8 +312,7 @@ internal class ShopServiceTest : MockitoTest() { .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) @@ -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("인기 케이크 샵 목록이 없는 경우, 빈 배열을 조회한다.") @@ -338,7 +332,7 @@ internal class ShopServiceTest : MockitoTest() { val param = CakeShopSearchByViewsParam(offset, pageSize) val cakeShopIds: List = listOf() - doReturn(cakeShopIds).`when`(cakeShopViewsRedisRepository).findTopShopIdsByOffsetAndCount(offset, pageSize.toLong()) + doReturn(cakeShopIds).`when`(cakeShopReadFacade).searchBestShops(offset, pageSize) // when val result = shopService.searchCakeShopsByCursorAndViews(param) @@ -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("케이크샵 기본 정보 수정을 한다")