From 394a2d22cc21f357f26bcd65bab9098d7a794cff Mon Sep 17 00:00:00 2001 From: ayoung-dev Date: Tue, 26 Nov 2024 16:35:20 +0900 Subject: [PATCH 1/4] =?UTF-8?q?test(community):=20CommunityBoard=20id?= =?UTF-8?q?=EB=A1=9C=20=EC=A1=B0=ED=9A=8C=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=20=EB=B0=8F=20=EC=98=88=EC=99=B8=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../repository/CommunityRepositoryTest.java | 27 ++++++++++++++++--- .../CreateCommunityBoardServiceTest.java | 4 +-- 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/src/test/java/com/somemore/community/repository/CommunityRepositoryTest.java b/src/test/java/com/somemore/community/repository/CommunityRepositoryTest.java index 9529439ce..482ca5464 100644 --- a/src/test/java/com/somemore/community/repository/CommunityRepositoryTest.java +++ b/src/test/java/com/somemore/community/repository/CommunityRepositoryTest.java @@ -19,9 +19,9 @@ class CommunityRepositoryTest extends IntegrationTestSupport { @Autowired private CommunityBoardRepository communityBoardRepository; - @DisplayName("커뮤니티 id로 커뮤니티 상세 정보를 조회할 수 있다. (Repository)") + @DisplayName("커뮤니티 게시글 id로 커뮤니티 상세 정보를 조회할 수 있다. (Repository)") @Test - void findById() { + void getCommunityBoardById() { //given CommunityBoard communityBoard = CommunityBoard.builder() .title("테스트 커뮤니티 게시글 제목") @@ -33,7 +33,7 @@ void findById() { communityBoardRepository.save(communityBoard); //when - Optional foundCommunityBoard = communityBoardRepository.findById(communityBoard.getId()); + Optional foundCommunityBoard = communityBoardRepository.getCommunityBoardWithId(communityBoard.getId()); //then assertThat(foundCommunityBoard).isNotNull(); @@ -43,6 +43,27 @@ void findById() { assertThat(foundCommunityBoard.get().getWriterId()).isEqualTo(communityBoard.getWriterId()); } + @DisplayName("삭제된 커뮤니티 id로 커뮤니티 상세 정보를 조회할 때 예외를 반환할 수 있다. (Repository)") + @Test + void getCommunityBoardByDeletedId() { + //given + CommunityBoard communityBoard = CommunityBoard.builder() + .title("테스트 커뮤니티 게시글 제목") + .content("테스트 커뮤니티 게시글 내용") + .imgUrl("http://community.example.com/123") + .writerId(UUID.randomUUID()) + .build(); + + communityBoardRepository.save(communityBoard); + communityBoardRepository.deleteAllInBatch(); + + //when + Optional foundCommunityBoard = communityBoardRepository.getCommunityBoardWithId(communityBoard.getId()); + + //then + assertThat(foundCommunityBoard).isEmpty(); + } + @DisplayName("저장된 전체 커뮤니티 게시글을 목록으로 조회할 수 있다. (Repository)") @Test void getCommunityBoards() { diff --git a/src/test/java/com/somemore/community/service/command/CreateCommunityBoardServiceTest.java b/src/test/java/com/somemore/community/service/command/CreateCommunityBoardServiceTest.java index d2cb672a7..b0261b01c 100644 --- a/src/test/java/com/somemore/community/service/command/CreateCommunityBoardServiceTest.java +++ b/src/test/java/com/somemore/community/service/command/CreateCommunityBoardServiceTest.java @@ -41,7 +41,7 @@ void createCommunityWithDto() { Long communityId = createCommunityBoardService.createCommunityBoard(dto, writerId, imgUrl); //then - Optional communityBoard = communityBoardRepository.findById(communityId); + Optional communityBoard = communityBoardRepository.getCommunityBoardWithId(communityId); assertThat(communityBoard).isPresent(); assertThat(communityBoard.get().getId()).isEqualTo(communityId); @@ -67,7 +67,7 @@ void createCommunityWithoutImgUrl() { Long communityId = createCommunityBoardService.createCommunityBoard(dto, writerId, imgUrl); //then - Optional communityBoard = communityBoardRepository.findById(communityId); + Optional communityBoard = communityBoardRepository.getCommunityBoardWithId(communityId); assertThat(communityBoard).isPresent(); assertThat(communityBoard.get().getId()).isEqualTo(communityId); From 6c410fa68785017946c007871946085488a59299 Mon Sep 17 00:00:00 2001 From: ayoung-dev Date: Tue, 26 Nov 2024 16:35:54 +0900 Subject: [PATCH 2/4] =?UTF-8?q?test(community):=20CommunityBoard=20id?= =?UTF-8?q?=EB=A1=9C=20=EC=A1=B0=ED=9A=8C=20Service=20=EB=B0=8F=20Reposito?= =?UTF-8?q?ry=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../community/repository/CommunityBoardRepository.java | 2 +- .../community/repository/CommunityRepositoryImpl.java | 10 ++++++++-- .../service/query/CommunityBoardQueryService.java | 2 +- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/somemore/community/repository/CommunityBoardRepository.java b/src/main/java/com/somemore/community/repository/CommunityBoardRepository.java index a089b011b..befd4b81f 100644 --- a/src/main/java/com/somemore/community/repository/CommunityBoardRepository.java +++ b/src/main/java/com/somemore/community/repository/CommunityBoardRepository.java @@ -8,7 +8,7 @@ public interface CommunityBoardRepository { CommunityBoard save(CommunityBoard communityBoard); - Optional findById(Long id); + Optional getCommunityBoardWithId(Long id); List getCommunityBoards(); List getCommunityBoardsByWriterId(UUID writerId); void deleteAllInBatch(); diff --git a/src/main/java/com/somemore/community/repository/CommunityRepositoryImpl.java b/src/main/java/com/somemore/community/repository/CommunityRepositoryImpl.java index 1219a55fc..20f2d3444 100644 --- a/src/main/java/com/somemore/community/repository/CommunityRepositoryImpl.java +++ b/src/main/java/com/somemore/community/repository/CommunityRepositoryImpl.java @@ -23,8 +23,14 @@ public CommunityBoard save(CommunityBoard communityBoard) { } @Override - public Optional findById(Long id) { - return communityBoardJpaRepository.findById(id); + public Optional getCommunityBoardWithId(Long id) { + QCommunityBoard communityBoard = QCommunityBoard.communityBoard; + + return Optional.ofNullable(queryFactory + .selectFrom(communityBoard) + .where(communityBoard.id.eq(id) + .and(communityBoard.deleted.eq(false))) + .fetchOne()); } @Override diff --git a/src/main/java/com/somemore/community/service/query/CommunityBoardQueryService.java b/src/main/java/com/somemore/community/service/query/CommunityBoardQueryService.java index 14c192423..633b15a3f 100644 --- a/src/main/java/com/somemore/community/service/query/CommunityBoardQueryService.java +++ b/src/main/java/com/somemore/community/service/query/CommunityBoardQueryService.java @@ -53,7 +53,7 @@ public List getCommunityBoardsByWriterId(UUID writ @Override public CommunityBoardGetDetailResponseDto getCommunityBoardDetail(Long id) { - CommunityBoard board = communityBoardRepository.findById(id) + CommunityBoard board = communityBoardRepository.getCommunityBoardWithId(id) .orElseThrow(() -> new BadRequestException(NOT_EXISTS_COMMUNITY_BOARD.getMessage())); return CommunityBoardGetDetailResponseDto.fromEntity(board, getWriterDetail(board.getWriterId())); From 135b111cf5b4fc6f4e3a7052c87888fcb396105e Mon Sep 17 00:00:00 2001 From: ayoung-dev Date: Tue, 26 Nov 2024 16:35:20 +0900 Subject: [PATCH 3/4] =?UTF-8?q?test(community):=20CommunityBoard=20id?= =?UTF-8?q?=EB=A1=9C=20=EC=A1=B0=ED=9A=8C=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=20=EB=B0=8F=20=EC=98=88=EC=99=B8=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/query/CommunityBoardQueryServiceTest.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/test/java/com/somemore/community/service/query/CommunityBoardQueryServiceTest.java b/src/test/java/com/somemore/community/service/query/CommunityBoardQueryServiceTest.java index 068e3b8d1..02b432004 100644 --- a/src/test/java/com/somemore/community/service/query/CommunityBoardQueryServiceTest.java +++ b/src/test/java/com/somemore/community/service/query/CommunityBoardQueryServiceTest.java @@ -85,8 +85,8 @@ void getAllCommunityBoards() { List dtos = communityBoardQueryService.getCommunityBoards(); // then - Optional communityBoard1 = communityBoardRepository.findById(communityId1); - Optional communityBoard2 = communityBoardRepository.findById(communityId2); + Optional communityBoard1 = communityBoardRepository.getCommunityBoardWithId(communityId1); + Optional communityBoard2 = communityBoardRepository.getCommunityBoardWithId(communityId2); assertThat(dtos) @@ -135,8 +135,8 @@ void getCommunityBoardsByWriter() { List dtos = communityBoardQueryService.getCommunityBoardsByWriterId(volunteer.getId()); //then - Optional communityBoard1 = communityBoardRepository.findById(communityId1); - Optional communityBoard2 = communityBoardRepository.findById(communityId2); + Optional communityBoard1 = communityBoardRepository.getCommunityBoardWithId(communityId1); + Optional communityBoard2 = communityBoardRepository.getCommunityBoardWithId(communityId2); assertThat(dtos) .isNotNull() From e04e6113a366306c16f0363cd9d71f910026195e Mon Sep 17 00:00:00 2001 From: ayoung-dev Date: Tue, 26 Nov 2024 17:10:31 +0900 Subject: [PATCH 4/4] =?UTF-8?q?refactor(community):=20repository=20getComm?= =?UTF-8?q?unityBoardWithId=20->=20findById,=20getCommunityBoardsByWriterI?= =?UTF-8?q?d=20->=20findByWriterId=20=EC=9D=B4=EB=A6=84=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../community/repository/CommunityBoardRepository.java | 4 ++-- .../community/repository/CommunityRepositoryImpl.java | 4 ++-- .../service/query/CommunityBoardQueryService.java | 4 ++-- .../community/repository/CommunityRepositoryTest.java | 6 +++--- .../service/command/CreateCommunityBoardServiceTest.java | 4 ++-- .../service/query/CommunityBoardQueryServiceTest.java | 8 ++++---- 6 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/somemore/community/repository/CommunityBoardRepository.java b/src/main/java/com/somemore/community/repository/CommunityBoardRepository.java index befd4b81f..ccb3a9d07 100644 --- a/src/main/java/com/somemore/community/repository/CommunityBoardRepository.java +++ b/src/main/java/com/somemore/community/repository/CommunityBoardRepository.java @@ -8,8 +8,8 @@ public interface CommunityBoardRepository { CommunityBoard save(CommunityBoard communityBoard); - Optional getCommunityBoardWithId(Long id); + Optional findById(Long id); List getCommunityBoards(); - List getCommunityBoardsByWriterId(UUID writerId); + List findByWriterId(UUID writerId); void deleteAllInBatch(); } diff --git a/src/main/java/com/somemore/community/repository/CommunityRepositoryImpl.java b/src/main/java/com/somemore/community/repository/CommunityRepositoryImpl.java index 20f2d3444..8393474bc 100644 --- a/src/main/java/com/somemore/community/repository/CommunityRepositoryImpl.java +++ b/src/main/java/com/somemore/community/repository/CommunityRepositoryImpl.java @@ -23,7 +23,7 @@ public CommunityBoard save(CommunityBoard communityBoard) { } @Override - public Optional getCommunityBoardWithId(Long id) { + public Optional findById(Long id) { QCommunityBoard communityBoard = QCommunityBoard.communityBoard; return Optional.ofNullable(queryFactory @@ -45,7 +45,7 @@ public List getCommunityBoards() { } @Override - public List getCommunityBoardsByWriterId(UUID writerId) { + public List findByWriterId(UUID writerId) { QCommunityBoard communityBoard = QCommunityBoard.communityBoard; return queryFactory diff --git a/src/main/java/com/somemore/community/service/query/CommunityBoardQueryService.java b/src/main/java/com/somemore/community/service/query/CommunityBoardQueryService.java index 633b15a3f..a1ce199f2 100644 --- a/src/main/java/com/somemore/community/service/query/CommunityBoardQueryService.java +++ b/src/main/java/com/somemore/community/service/query/CommunityBoardQueryService.java @@ -43,7 +43,7 @@ public List getCommunityBoards() { @Override public List getCommunityBoardsByWriterId(UUID writerId) { - List boards = communityBoardRepository.getCommunityBoardsByWriterId(writerId); + List boards = communityBoardRepository.findByWriterId(writerId); String writerNickname = getWriterNickname(writerId); return boards.stream() @@ -53,7 +53,7 @@ public List getCommunityBoardsByWriterId(UUID writ @Override public CommunityBoardGetDetailResponseDto getCommunityBoardDetail(Long id) { - CommunityBoard board = communityBoardRepository.getCommunityBoardWithId(id) + CommunityBoard board = communityBoardRepository.findById(id) .orElseThrow(() -> new BadRequestException(NOT_EXISTS_COMMUNITY_BOARD.getMessage())); return CommunityBoardGetDetailResponseDto.fromEntity(board, getWriterDetail(board.getWriterId())); diff --git a/src/test/java/com/somemore/community/repository/CommunityRepositoryTest.java b/src/test/java/com/somemore/community/repository/CommunityRepositoryTest.java index 482ca5464..b908f2db8 100644 --- a/src/test/java/com/somemore/community/repository/CommunityRepositoryTest.java +++ b/src/test/java/com/somemore/community/repository/CommunityRepositoryTest.java @@ -33,7 +33,7 @@ void getCommunityBoardById() { communityBoardRepository.save(communityBoard); //when - Optional foundCommunityBoard = communityBoardRepository.getCommunityBoardWithId(communityBoard.getId()); + Optional foundCommunityBoard = communityBoardRepository.findById(communityBoard.getId()); //then assertThat(foundCommunityBoard).isNotNull(); @@ -58,7 +58,7 @@ void getCommunityBoardByDeletedId() { communityBoardRepository.deleteAllInBatch(); //when - Optional foundCommunityBoard = communityBoardRepository.getCommunityBoardWithId(communityBoard.getId()); + Optional foundCommunityBoard = communityBoardRepository.findById(communityBoard.getId()); //then assertThat(foundCommunityBoard).isEmpty(); @@ -124,7 +124,7 @@ void getCommunityBoardsByWriterId() { communityBoardRepository.save(communityBoard3); //when - List communityBoards = communityBoardRepository.getCommunityBoardsByWriterId(communityBoard1.getWriterId()); + List communityBoards = communityBoardRepository.findByWriterId(communityBoard1.getWriterId()); //then assertThat(communityBoards).hasSize(2); diff --git a/src/test/java/com/somemore/community/service/command/CreateCommunityBoardServiceTest.java b/src/test/java/com/somemore/community/service/command/CreateCommunityBoardServiceTest.java index b0261b01c..d2cb672a7 100644 --- a/src/test/java/com/somemore/community/service/command/CreateCommunityBoardServiceTest.java +++ b/src/test/java/com/somemore/community/service/command/CreateCommunityBoardServiceTest.java @@ -41,7 +41,7 @@ void createCommunityWithDto() { Long communityId = createCommunityBoardService.createCommunityBoard(dto, writerId, imgUrl); //then - Optional communityBoard = communityBoardRepository.getCommunityBoardWithId(communityId); + Optional communityBoard = communityBoardRepository.findById(communityId); assertThat(communityBoard).isPresent(); assertThat(communityBoard.get().getId()).isEqualTo(communityId); @@ -67,7 +67,7 @@ void createCommunityWithoutImgUrl() { Long communityId = createCommunityBoardService.createCommunityBoard(dto, writerId, imgUrl); //then - Optional communityBoard = communityBoardRepository.getCommunityBoardWithId(communityId); + Optional communityBoard = communityBoardRepository.findById(communityId); assertThat(communityBoard).isPresent(); assertThat(communityBoard.get().getId()).isEqualTo(communityId); diff --git a/src/test/java/com/somemore/community/service/query/CommunityBoardQueryServiceTest.java b/src/test/java/com/somemore/community/service/query/CommunityBoardQueryServiceTest.java index 02b432004..068e3b8d1 100644 --- a/src/test/java/com/somemore/community/service/query/CommunityBoardQueryServiceTest.java +++ b/src/test/java/com/somemore/community/service/query/CommunityBoardQueryServiceTest.java @@ -85,8 +85,8 @@ void getAllCommunityBoards() { List dtos = communityBoardQueryService.getCommunityBoards(); // then - Optional communityBoard1 = communityBoardRepository.getCommunityBoardWithId(communityId1); - Optional communityBoard2 = communityBoardRepository.getCommunityBoardWithId(communityId2); + Optional communityBoard1 = communityBoardRepository.findById(communityId1); + Optional communityBoard2 = communityBoardRepository.findById(communityId2); assertThat(dtos) @@ -135,8 +135,8 @@ void getCommunityBoardsByWriter() { List dtos = communityBoardQueryService.getCommunityBoardsByWriterId(volunteer.getId()); //then - Optional communityBoard1 = communityBoardRepository.getCommunityBoardWithId(communityId1); - Optional communityBoard2 = communityBoardRepository.getCommunityBoardWithId(communityId2); + Optional communityBoard1 = communityBoardRepository.findById(communityId1); + Optional communityBoard2 = communityBoardRepository.findById(communityId2); assertThat(dtos) .isNotNull()