Skip to content

Commit

Permalink
[JT-72] 웹툰 서비스 테스트
Browse files Browse the repository at this point in the history
  • Loading branch information
Shin-Jae-Yoon committed Sep 24, 2023
1 parent 494c7a6 commit 5b1b06c
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 113 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down Expand Up @@ -69,18 +69,18 @@ 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);
}

@DisplayName("createEpisode - 회차 생성 성공, - Void")
@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");

Expand All @@ -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);

Expand All @@ -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());
Expand All @@ -127,7 +127,7 @@ void createEpisode_InvalidRequestException() {
@Test
void getEpisodes_EmptyList() {
// Given
GetEpisodesReq request = CreatorFactory.createGetEpisodesReq();
GetEpisodesReq request = WebtoonFactory.createGetEpisodesReq();
List<Episode> episodes = new ArrayList<>();
given(episodeSearchRepository.getEpisodes(webtoon.getId(), request.getSize(), request.getOffset()))
.willReturn(episodes);
Expand All @@ -143,10 +143,10 @@ void getEpisodes_EmptyList() {
@Test
void getEpisodes_EpisodeItemResList() {
// Given
GetEpisodesReq request = CreatorFactory.createGetEpisodesReq();
GetEpisodesReq request = WebtoonFactory.createGetEpisodesReq();
List<Episode> 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);

Expand All @@ -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
Expand All @@ -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));
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import shop.jtoon.webtoon.request.GetWebtoonsReq;

public class WebtoonFactory {

public static Member createMember() {
return Member.builder()
.email("test@gmail.com")
Expand All @@ -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<DayOfWeek> dayOfWeeks = new HashSet<>();
dayOfWeeks.add(DayOfWeek.MON);
Expand All @@ -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)
Expand Down

0 comments on commit 5b1b06c

Please sign in to comment.