From 3fcef0c86e80ea0b2275f2daf476b13f7090c534 Mon Sep 17 00:00:00 2001 From: kang yeon joo Date: Mon, 21 Oct 2024 13:55:36 +0900 Subject: [PATCH 1/2] =?UTF-8?q?fix:=20=ED=88=AC=EB=8D=B0=EC=9D=B4/?= =?UTF-8?q?=EB=B0=B1=EB=A1=9C=EA=B7=B8=20=EC=A1=B0=ED=9A=8C=20=EC=8B=9C=20?= =?UTF-8?q?=EB=8D=B0=EC=9D=B4=ED=84=B0=EA=B0=80=20=EC=97=86=EC=9D=84=20?= =?UTF-8?q?=EA=B2=BD=EC=9A=B0=20=EC=98=88=EC=99=B8=EA=B0=80=20=EC=95=84?= =?UTF-8?q?=EB=8B=8C=20=EB=B9=88=20=EB=A6=AC=EC=8A=A4=ED=8A=B8=20=EB=B0=98?= =?UTF-8?q?=ED=99=98=EC=9C=BC=EB=A1=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../poptato/todo/application/TodoService.java | 22 ++++++++----- .../todo/application/TodoServiceTest.java | 31 ++++++++++++++++++- 2 files changed, 45 insertions(+), 8 deletions(-) diff --git a/src/main/java/server/poptato/todo/application/TodoService.java b/src/main/java/server/poptato/todo/application/TodoService.java index ad0fe15..7c3d865 100644 --- a/src/main/java/server/poptato/todo/application/TodoService.java +++ b/src/main/java/server/poptato/todo/application/TodoService.java @@ -53,14 +53,22 @@ public TodayListResponseDto getTodayList(long userId, int page, int size, LocalD userId, Type.TODAY, todayDate, TodayStatus.COMPLETED); todays.addAll(completedTodos); - // 전체 리스트에서 페이징 - int start = (page) * size; - int end = Math.min(start + size, todays.size()); - if (start >= end) throw new TodoException(TodoExceptionErrorCode.INVALID_PAGE); - - List todaySubList = todays.subList(start, end); - int totalPageCount = (int) Math.ceil((double) todays.size() / size); + List todaySubList; + int totalPageCount; + if(todays.size()==0) { + totalPageCount = 0; + todaySubList = new ArrayList<>(); + } + else{ + // 전체 리스트에서 페이징 + int start = (page) * size; + int end = Math.min(start + size, todays.size()); + if (start >= end) throw new TodoException(TodoExceptionErrorCode.INVALID_PAGE); + + todaySubList = todays.subList(start, end); + totalPageCount = (int) Math.ceil((double) todays.size() / size); + } return TodayListResponseDto.builder() .date(todayDate) .todays(todaySubList) diff --git a/src/test/java/server/poptato/todo/application/TodoServiceTest.java b/src/test/java/server/poptato/todo/application/TodoServiceTest.java index c68b745..070a76a 100644 --- a/src/test/java/server/poptato/todo/application/TodoServiceTest.java +++ b/src/test/java/server/poptato/todo/application/TodoServiceTest.java @@ -63,13 +63,42 @@ class TodoServiceTest { Long userId = 1L; int page = 2; int size = 8; - LocalDate todayDate = LocalDate.now(); + LocalDate todayDate = LocalDate.of(2024,10,16); //when & then assertThatThrownBy(()-> todoService.getTodayList(userId,page,size,todayDate)) .isInstanceOf(TodoException.class) .hasMessage(TodoExceptionErrorCode.INVALID_PAGE.getMessage()); } + @DisplayName("투데이_데이터가 없는 경우 null을 반환한다.") + @Test + void 투데이_데이터_수_0개_응답(){ + //given + Long userId = 50L; + int page = 0; + int size = 8; + LocalDate todayDate = LocalDate.now(); + //when + TodayListResponseDto todayList = todoService.getTodayList(userId, page, size, todayDate); + //then + assertThat(todayList.getTodays()).isEmpty(); + assertThat(todayList.getTotalPageCount()).isEqualTo(0); + } + + @DisplayName("백로그_데이터가 없는 경우 null을 반환한다.") + @Test + void 백로그_데이터_수_0개_응답(){ + //given + Long userId = 50L; + int page = 0; + int size = 8; + //when + BacklogListResponseDto backlogList = todoService.getBacklogList(userId, page, size); + //then + assertThat(backlogList.getBacklogs()).isEmpty(); + assertThat(backlogList.getTotalPageCount()).isEqualTo(0); + } + @DisplayName("투데이 목록 조회 시, 미달성 투데이가 먼저 조회되고, 그 다음 달성 투데이가 조회된다.") @Test void 투데이_목록_조회_달성여부_정렬(){ From 2d213efe131c8148486ab83ea08a42f8aeb746e7 Mon Sep 17 00:00:00 2001 From: kang yeon joo Date: Mon, 21 Oct 2024 14:14:18 +0900 Subject: [PATCH 2/2] =?UTF-8?q?fix:=20=ED=88=AC=EB=8D=B0=EC=9D=B4/?= =?UTF-8?q?=EB=B0=B1=EB=A1=9C=EA=B7=B8=20=EB=B9=88=20=EB=AC=B8=EC=9E=90?= =?UTF-8?q?=EC=97=B4=EB=A1=9C=20=EC=9D=91=EB=8B=B5=20=ED=86=B5=EC=9D=BC(?= =?UTF-8?q?=EC=9C=A0=ED=98=80=ED=95=98=EC=A7=80=20=EC=95=8A=EC=9D=80=20?= =?UTF-8?q?=ED=8E=98=EC=9D=B4=EC=A7=80=20=EC=98=88=EC=99=B8=20=EC=97=86?= =?UTF-8?q?=EC=95=B0)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../poptato/todo/application/TodoService.java | 21 +++++++------------ .../todo/application/TodoServiceTest.java | 16 +++++++------- 2 files changed, 15 insertions(+), 22 deletions(-) diff --git a/src/main/java/server/poptato/todo/application/TodoService.java b/src/main/java/server/poptato/todo/application/TodoService.java index 7c3d865..11fbe5d 100644 --- a/src/main/java/server/poptato/todo/application/TodoService.java +++ b/src/main/java/server/poptato/todo/application/TodoService.java @@ -53,22 +53,15 @@ public TodayListResponseDto getTodayList(long userId, int page, int size, LocalD userId, Type.TODAY, todayDate, TodayStatus.COMPLETED); todays.addAll(completedTodos); + // 전체 리스트에서 페이징 + int start = (page) * size; + int end = Math.min(start + size, todays.size()); List todaySubList; - int totalPageCount; + if (start >= end) todaySubList = new ArrayList<>(); + else todaySubList = todays.subList(start, end); + + int totalPageCount = (int) Math.ceil((double) todays.size() / size); - if(todays.size()==0) { - totalPageCount = 0; - todaySubList = new ArrayList<>(); - } - else{ - // 전체 리스트에서 페이징 - int start = (page) * size; - int end = Math.min(start + size, todays.size()); - if (start >= end) throw new TodoException(TodoExceptionErrorCode.INVALID_PAGE); - - todaySubList = todays.subList(start, end); - totalPageCount = (int) Math.ceil((double) todays.size() / size); - } return TodayListResponseDto.builder() .date(todayDate) .todays(todaySubList) diff --git a/src/test/java/server/poptato/todo/application/TodoServiceTest.java b/src/test/java/server/poptato/todo/application/TodoServiceTest.java index 070a76a..a512fa1 100644 --- a/src/test/java/server/poptato/todo/application/TodoServiceTest.java +++ b/src/test/java/server/poptato/todo/application/TodoServiceTest.java @@ -56,21 +56,21 @@ class TodoServiceTest { assertThat(todoService.getTodayList(userId,page,size,todayDate).getTodays().size()).isEqualTo(size); } - @DisplayName("유효하지 않는 페이지 수일 경우 예외가 발생한다.") + @DisplayName("유효하지 않는 페이지 수일 경우 빈 리스트를 반환한다.") @Test - void 유효하지_않은_페이지_수_예외(){ + void 유효하지_않은_페이지_수_응답(){ //given Long userId = 1L; int page = 2; int size = 8; LocalDate todayDate = LocalDate.of(2024,10,16); - //when & then - assertThatThrownBy(()-> todoService.getTodayList(userId,page,size,todayDate)) - .isInstanceOf(TodoException.class) - .hasMessage(TodoExceptionErrorCode.INVALID_PAGE.getMessage()); + //when + TodayListResponseDto todayList = todoService.getTodayList(userId, page, size, todayDate); + //then + assertThat(todayList.getTodays()).isEmpty(); } - @DisplayName("투데이_데이터가 없는 경우 null을 반환한다.") + @DisplayName("투데이_데이터가 없는 경우 빈 리스트를 반환한다.") @Test void 투데이_데이터_수_0개_응답(){ //given @@ -85,7 +85,7 @@ class TodoServiceTest { assertThat(todayList.getTotalPageCount()).isEqualTo(0); } - @DisplayName("백로그_데이터가 없는 경우 null을 반환한다.") + @DisplayName("백로그_데이터가 없는 경우 빈 리스트를 반환한다.") @Test void 백로그_데이터_수_0개_응답(){ //given