From a76f820b23f4a58437953bf7a5835417ed75eb0f Mon Sep 17 00:00:00 2001 From: wugawuga Date: Thu, 6 Jun 2024 10:48:08 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20=EB=A6=AC=EB=B7=B0=20=EB=B0=98?= =?UTF-8?q?=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../persistence/ProductRepositoryTest.java | 74 ++++++++++--------- 1 file changed, 39 insertions(+), 35 deletions(-) diff --git a/src/test/java/com/funeat/product/persistence/ProductRepositoryTest.java b/src/test/java/com/funeat/product/persistence/ProductRepositoryTest.java index 586f0575..b38f918d 100644 --- a/src/test/java/com/funeat/product/persistence/ProductRepositoryTest.java +++ b/src/test/java/com/funeat/product/persistence/ProductRepositoryTest.java @@ -199,7 +199,7 @@ class findAllWithReviewCountByNameContaining_성공_테스트 { } @Nested - class findAllByTagFirst_성공_테스트 { + class searchProductsByTopTagsFirst_성공_테스트 { @Test void 특정_태그가_포함된_상품들을_조회한다() { @@ -208,8 +208,8 @@ class findAllByTagFirst_성공_테스트 { 단일_카테고리_저장(category); final var 태그_맛있어요 = 태그_맛있어요_TASTE_생성(); - final var 태그_단짠단짠 = 태그_맛있어요_TASTE_생성(); - final var 태그_갓성비 = 태그_맛있어요_TASTE_생성(); + final var 태그_단짠단짠 = 태그_단짠단짠_TASTE_생성(); + final var 태그_갓성비 = 태그_갓성비_PRICE_생성(); final var 태그1 = 단일_태그_저장(태그_맛있어요); final var 태그2 = 단일_태그_저장(태그_단짠단짠); @@ -249,9 +249,13 @@ class findAllByTagFirst_성공_테스트 { .isEqualTo(expected2); }); } + } + + @Nested + class searchProductsByTopTagsFirst_실패_테스트 { @Test - void 특정_태그와_마지막_상품아이디_이후_상품들을_조회한다() { + void 간식_태그는_4위이므로_검색되지_말아야한다() { // given final var category = 카테고리_간편식사_생성(); 단일_카테고리_저장(category); @@ -259,15 +263,18 @@ class findAllByTagFirst_성공_테스트 { final var 태그_맛있어요 = 태그_맛있어요_TASTE_생성(); final var 태그_단짠단짠 = 태그_단짠단짠_TASTE_생성(); final var 태그_갓성비 = 태그_갓성비_PRICE_생성(); + final var 태그_간식 = 태그_간식_ETC_생성(); final var 태그1 = 단일_태그_저장(태그_맛있어요); final var 태그2 = 단일_태그_저장(태그_단짠단짠); final var 태그3 = 단일_태그_저장(태그_갓성비); + final var 태그4 = 단일_태그_저장(태그_간식); final var product1 = 상품_애플망고_가격3000원_평점5점_생성(category); final var product2 = 상품_망고빙수_가격5000원_평점4점_생성(category); final var product3 = 상품_망고빙수_가격5000원_평점4점_생성(category); - 복수_상품_저장(product1, product2, product3); + final var product4 = 상품_망고빙수_가격5000원_평점4점_생성(category); + 복수_상품_저장(product1, product2, product3, product4); final var member1 = 멤버_멤버1_생성(); final var member2 = 멤버_멤버2_생성(); @@ -278,45 +285,48 @@ class findAllByTagFirst_성공_테스트 { final var review2_1 = 리뷰_이미지test3_평점3점_재구매O_생성(member1, product2, 0L); 복수_리뷰_저장(review1_1, review1_2, review2_1); - 복수_리뷰_태그_저장(리뷰태그_생성(review1_1, 태그_맛있어요), 리뷰태그_생성(review1_1, 태그_단짠단짠), - 리뷰태그_생성(review1_1, 태그_갓성비), 리뷰태그_생성(review1_1, 태그_맛있어요), 리뷰태그_생성(review1_2, 태그_단짠단짠), - 리뷰태그_생성(review2_1, 태그_맛있어요)); - - final var expected = List.of(product1); + 복수_리뷰_태그_저장( + 리뷰태그_생성(review1_1, 태그_맛있어요), + 리뷰태그_생성(review1_1, 태그_맛있어요), + 리뷰태그_생성(review1_1, 태그_단짠단짠), + 리뷰태그_생성(review1_1, 태그_단짠단짠), + 리뷰태그_생성(review1_1, 태그_갓성비), + 리뷰태그_생성(review1_1, 태그_갓성비), + 리뷰태그_생성(review1_1, 태그_간식), + 리뷰태그_생성(review1_1, 태그_맛있어요), + 리뷰태그_생성(review1_2, 태그_단짠단짠), + 리뷰태그_생성(review2_1, 태그_맛있어요) + ); // when - final var actual = productRepository.searchProductsByTopTags(태그1, product2.getId(), PageRequest.of(0, 10)); + final var actual = productRepository.searchProductsByTopTagsFirst(태그4, PageRequest.of(0, 10)); // then - assertThat(actual).usingRecursiveComparison() - .isEqualTo(expected); + assertThat(actual).isEmpty(); } } @Nested - class findAllByTagFirst_실패_테스트 { + class searchProductsByTopTags_성공_테스트 { @Test - void 간식_태그는_4위이므로_검색되지_말아야한다() { + void 특정_태그와_마지막_상품아이디_이후_상품들을_조회한다() { // given final var category = 카테고리_간편식사_생성(); 단일_카테고리_저장(category); final var 태그_맛있어요 = 태그_맛있어요_TASTE_생성(); - final var 태그_단짠단짠 = 태그_맛있어요_TASTE_생성(); - final var 태그_갓성비 = 태그_맛있어요_TASTE_생성(); - final var 태그_간식 = 태그_간식_ETC_생성(); + final var 태그_단짠단짠 = 태그_단짠단짠_TASTE_생성(); + final var 태그_갓성비 = 태그_갓성비_PRICE_생성(); final var 태그1 = 단일_태그_저장(태그_맛있어요); final var 태그2 = 단일_태그_저장(태그_단짠단짠); final var 태그3 = 단일_태그_저장(태그_갓성비); - final var 태그4 = 단일_태그_저장(태그_간식); final var product1 = 상품_애플망고_가격3000원_평점5점_생성(category); final var product2 = 상품_망고빙수_가격5000원_평점4점_생성(category); final var product3 = 상품_망고빙수_가격5000원_평점4점_생성(category); - final var product4 = 상품_망고빙수_가격5000원_평점4점_생성(category); - 복수_상품_저장(product1, product2, product3, product4); + 복수_상품_저장(product1, product2, product3); final var member1 = 멤버_멤버1_생성(); final var member2 = 멤버_멤버2_생성(); @@ -327,24 +337,18 @@ class findAllByTagFirst_실패_테스트 { final var review2_1 = 리뷰_이미지test3_평점3점_재구매O_생성(member1, product2, 0L); 복수_리뷰_저장(review1_1, review1_2, review2_1); - 복수_리뷰_태그_저장( - 리뷰태그_생성(review1_1, 태그_맛있어요), - 리뷰태그_생성(review1_1, 태그_맛있어요), - 리뷰태그_생성(review1_1, 태그_단짠단짠), - 리뷰태그_생성(review1_1, 태그_단짠단짠), - 리뷰태그_생성(review1_1, 태그_갓성비), - 리뷰태그_생성(review1_1, 태그_갓성비), - 리뷰태그_생성(review1_1, 태그_간식), - 리뷰태그_생성(review1_1, 태그_맛있어요), - 리뷰태그_생성(review1_2, 태그_단짠단짠), - 리뷰태그_생성(review2_1, 태그_맛있어요) - ); + 복수_리뷰_태그_저장(리뷰태그_생성(review1_1, 태그_맛있어요), 리뷰태그_생성(review1_1, 태그_단짠단짠), + 리뷰태그_생성(review1_1, 태그_갓성비), 리뷰태그_생성(review1_1, 태그_맛있어요), 리뷰태그_생성(review1_2, 태그_단짠단짠), + 리뷰태그_생성(review2_1, 태그_맛있어요)); + + final var expected = List.of(product1); // when - final var actual = productRepository.searchProductsByTopTagsFirst(태그4, PageRequest.of(0, 10)); + final var actual = productRepository.searchProductsByTopTags(태그1, product2.getId(), PageRequest.of(0, 10)); // then - assertThat(actual).isEmpty(); + assertThat(actual).usingRecursiveComparison() + .isEqualTo(expected); } } }