From 5b1b06caa95a7d945044924bb342637250fed560 Mon Sep 17 00:00:00 2001 From: Dev Uni Date: Sun, 24 Sep 2023 19:13:06 +0900 Subject: [PATCH] =?UTF-8?q?[JT-72]=20=EC=9B=B9=ED=88=B0=20=EC=84=9C?= =?UTF-8?q?=EB=B9=84=EC=8A=A4=20=ED=85=8C=EC=8A=A4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../application/EpisodeServiceTest.java | 30 +++---- .../jtoon/webtoon/factory/CreatorFactory.java | 86 ------------------- .../jtoon/webtoon/factory/WebtoonFactory.java | 25 +++--- 3 files changed, 28 insertions(+), 113 deletions(-) delete mode 100644 module-application/app-api/src/test/java/shop/jtoon/webtoon/factory/CreatorFactory.java diff --git a/module-application/app-api/src/test/java/shop/jtoon/webtoon/application/EpisodeServiceTest.java b/module-application/app-api/src/test/java/shop/jtoon/webtoon/application/EpisodeServiceTest.java index 22c2e1e..bdda6d3 100644 --- a/module-application/app-api/src/test/java/shop/jtoon/webtoon/application/EpisodeServiceTest.java +++ b/module-application/app-api/src/test/java/shop/jtoon/webtoon/application/EpisodeServiceTest.java @@ -33,7 +33,7 @@ import shop.jtoon.response.EpisodeInfoRes; import shop.jtoon.response.EpisodeItemRes; import shop.jtoon.service.S3Service; -import shop.jtoon.webtoon.factory.CreatorFactory; +import shop.jtoon.webtoon.factory.WebtoonFactory; import shop.jtoon.webtoon.request.CreateEpisodeReq; import shop.jtoon.webtoon.request.GetEpisodesReq; @@ -69,9 +69,9 @@ class EpisodeServiceTest { @BeforeEach void beforeEach() { - member = spy(CreatorFactory.createMember()); + member = spy(WebtoonFactory.createMember()); lenient().when(member.getId()).thenReturn(1L); - webtoon = spy(CreatorFactory.createWebtoon(member)); + webtoon = spy(WebtoonFactory.createWebtoon(member)); lenient().when(webtoon.getId()).thenReturn(1L); } @@ -79,8 +79,8 @@ void beforeEach() { @Test void createEpisode_Void() { // Given - CreateEpisodeReq request = CreatorFactory.createEpisodeReq(); - MockMultipartFile image = CreatorFactory.createMultipartFile(); + CreateEpisodeReq request = WebtoonFactory.createEpisodeReq(); + MockMultipartFile image = WebtoonFactory.createMultipartFile(); given(webtoonService.getWebtoonById(webtoon.getId())).willReturn(webtoon); given(s3Service.uploadImage(any(UploadImageDto.class))).willReturn("https://webtoons/episodes/image"); @@ -95,8 +95,8 @@ void createEpisode_Void() { @Test void createEpisode_DuplicatedException() { // Given - CreateEpisodeReq request = CreatorFactory.createEpisodeReq(); - MockMultipartFile image = CreatorFactory.createMultipartFile(); + CreateEpisodeReq request = WebtoonFactory.createEpisodeReq(); + MockMultipartFile image = WebtoonFactory.createMultipartFile(); given(webtoonService.getWebtoonById(webtoon.getId())).willReturn(webtoon); given(episodeRepository.existsByWebtoonAndNo(any(Webtoon.class), anyInt())).willReturn(true); @@ -110,8 +110,8 @@ void createEpisode_DuplicatedException() { @Test void createEpisode_InvalidRequestException() { // Given - CreateEpisodeReq request = CreatorFactory.createEpisodeReq(); - MockMultipartFile image = CreatorFactory.createMultipartFile(); + CreateEpisodeReq request = WebtoonFactory.createEpisodeReq(); + MockMultipartFile image = WebtoonFactory.createMultipartFile(); given(webtoonService.getWebtoonById(webtoon.getId())).willReturn(webtoon); given(s3Service.uploadImage(any(UploadImageDto.class))).willReturn("https://webtoons/episodes/image"); given(episodeRepository.save(any(Episode.class))).willThrow(new RuntimeException()); @@ -127,7 +127,7 @@ void createEpisode_InvalidRequestException() { @Test void getEpisodes_EmptyList() { // Given - GetEpisodesReq request = CreatorFactory.createGetEpisodesReq(); + GetEpisodesReq request = WebtoonFactory.createGetEpisodesReq(); List episodes = new ArrayList<>(); given(episodeSearchRepository.getEpisodes(webtoon.getId(), request.getSize(), request.getOffset())) .willReturn(episodes); @@ -143,10 +143,10 @@ void getEpisodes_EmptyList() { @Test void getEpisodes_EpisodeItemResList() { // Given - GetEpisodesReq request = CreatorFactory.createGetEpisodesReq(); + GetEpisodesReq request = WebtoonFactory.createGetEpisodesReq(); List episodes = new ArrayList<>(); - episodes.add(CreatorFactory.createEpisode(webtoon, 1)); - episodes.add(CreatorFactory.createEpisode(webtoon, 2)); + episodes.add(WebtoonFactory.createEpisode(webtoon, 1)); + episodes.add(WebtoonFactory.createEpisode(webtoon, 2)); given(episodeSearchRepository.getEpisodes(webtoon.getId(), request.getSize(), request.getOffset())) .willReturn(episodes); @@ -173,7 +173,7 @@ void getEpisode_NotFoundException() { @Test void getEpisode_EpisodeInfoRes() { // Given - Episode episode = CreatorFactory.createEpisode(webtoon, 1); + Episode episode = WebtoonFactory.createEpisode(webtoon, 1); given(episodeRepository.findById(anyLong())).willReturn(Optional.of(episode)); // When @@ -187,7 +187,7 @@ void getEpisode_EpisodeInfoRes() { @Test void purchaseEpisode_Void() { // Given - Episode episode = spy(CreatorFactory.createEpisode(webtoon, 1)); + Episode episode = spy(WebtoonFactory.createEpisode(webtoon, 1)); given(episode.getId()).willReturn(1L); given(memberService.findById(member.getId())).willReturn(member); given(episodeRepository.findById(anyLong())).willReturn(Optional.of(episode)); diff --git a/module-application/app-api/src/test/java/shop/jtoon/webtoon/factory/CreatorFactory.java b/module-application/app-api/src/test/java/shop/jtoon/webtoon/factory/CreatorFactory.java deleted file mode 100644 index 8d0d352..0000000 --- a/module-application/app-api/src/test/java/shop/jtoon/webtoon/factory/CreatorFactory.java +++ /dev/null @@ -1,86 +0,0 @@ -package shop.jtoon.webtoon.factory; - -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.time.LocalDateTime; - -import org.springframework.mock.web.MockMultipartFile; - -import shop.jtoon.entity.Episode; -import shop.jtoon.entity.Gender; -import shop.jtoon.entity.LoginType; -import shop.jtoon.entity.Member; -import shop.jtoon.entity.Role; -import shop.jtoon.entity.Webtoon; -import shop.jtoon.entity.enums.AgeLimit; -import shop.jtoon.webtoon.request.CreateEpisodeReq; -import shop.jtoon.webtoon.request.GetEpisodesReq; - -public class CreatorFactory { - - public static Member createMember() { - return Member.builder() - .email("test@gmail.com") - .password("Test123!") - .name("홍길동") - .nickname("길동") - .gender(Gender.MALE) - .phone("01012345678") - .role(Role.USER) - .loginType(LoginType.LOCAL) - .build(); - } - - public static Webtoon createWebtoon(Member member) { - return Webtoon.builder() - .title("웹툰 제목") - .description("웹툰 설명") - .ageLimit(AgeLimit.ALL) - .thumbnailUrl("https://webtoons/thumbnail") - .cookieCount(3) - .author(member) - .build(); - } - - public static Episode createEpisode(Webtoon webtoon, int no) { - return Episode.builder() - .no(no) - .title("회차 제목") - .mainUrl("https://webtoons/episodes/main") - .thumbnailUrl("https://webtoons/episodes/thumbnail") - .hasComment(true) - .openedAt(LocalDateTime.of(2023, 9, 20, 0, 0, 0)) - .webtoon(webtoon) - .build(); - } - - public static CreateEpisodeReq createEpisodeReq() { - return CreateEpisodeReq.builder() - .no(1) - .title("회차 제목") - .hasComment(true) - .openedAt(LocalDateTime.of(2023, 9, 20, 0, 0, 0)) - .build(); - } - - public static GetEpisodesReq createGetEpisodesReq() { - return GetEpisodesReq.builder().build(); - } - - public static MockMultipartFile createMultipartFile() { - Path path = Paths.get("src/test/resources/test.png"); - - try { - return new MockMultipartFile( - "image", - "test.png", - "image/png", - Files.readAllBytes(path) - ); - } catch (IOException e) { - throw new RuntimeException(e); - } - } -} diff --git a/module-application/app-api/src/test/java/shop/jtoon/webtoon/factory/WebtoonFactory.java b/module-application/app-api/src/test/java/shop/jtoon/webtoon/factory/WebtoonFactory.java index 17a21a4..60cce7e 100644 --- a/module-application/app-api/src/test/java/shop/jtoon/webtoon/factory/WebtoonFactory.java +++ b/module-application/app-api/src/test/java/shop/jtoon/webtoon/factory/WebtoonFactory.java @@ -25,6 +25,7 @@ import shop.jtoon.webtoon.request.GetWebtoonsReq; public class WebtoonFactory { + public static Member createMember() { return Member.builder() .email("test@gmail.com") @@ -49,18 +50,6 @@ public static Webtoon createWebtoon(Member member) { .build(); } - public static Episode createEpisode(Webtoon webtoon, int no) { - return Episode.builder() - .no(no) - .title("회차 제목") - .mainUrl("https://webtoons/episodes/main") - .thumbnailUrl("https://webtoons/episodes/thumbnail") - .hasComment(true) - .openedAt(LocalDateTime.of(2023, 9, 20, 0, 0, 0)) - .webtoon(webtoon) - .build(); - } - public static CreateWebtoonReq createWebtoonReq() { Set dayOfWeeks = new HashSet<>(); dayOfWeeks.add(DayOfWeek.MON); @@ -84,6 +73,18 @@ public static GetWebtoonsReq getWebtoonsReq() { .build(); } + public static Episode createEpisode(Webtoon webtoon, int no) { + return Episode.builder() + .no(no) + .title("회차 제목") + .mainUrl("https://webtoons/episodes/main") + .thumbnailUrl("https://webtoons/episodes/thumbnail") + .hasComment(true) + .openedAt(LocalDateTime.of(2023, 9, 20, 0, 0, 0)) + .webtoon(webtoon) + .build(); + } + public static CreateEpisodeReq createEpisodeReq() { return CreateEpisodeReq.builder() .no(1)