diff --git a/src/main/java/com/somemore/community/repository/CommunityBoardRepository.java b/src/main/java/com/somemore/community/repository/CommunityBoardRepository.java index a089b011b..ccb3a9d07 100644 --- a/src/main/java/com/somemore/community/repository/CommunityBoardRepository.java +++ b/src/main/java/com/somemore/community/repository/CommunityBoardRepository.java @@ -10,6 +10,6 @@ public interface CommunityBoardRepository { CommunityBoard save(CommunityBoard communityBoard); 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 1219a55fc..8393474bc 100644 --- a/src/main/java/com/somemore/community/repository/CommunityRepositoryImpl.java +++ b/src/main/java/com/somemore/community/repository/CommunityRepositoryImpl.java @@ -24,7 +24,13 @@ public CommunityBoard save(CommunityBoard communityBoard) { @Override public Optional findById(Long id) { - return communityBoardJpaRepository.findById(id); + QCommunityBoard communityBoard = QCommunityBoard.communityBoard; + + return Optional.ofNullable(queryFactory + .selectFrom(communityBoard) + .where(communityBoard.id.eq(id) + .and(communityBoard.deleted.eq(false))) + .fetchOne()); } @Override @@ -39,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 14c192423..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() diff --git a/src/test/java/com/somemore/community/repository/CommunityRepositoryTest.java b/src/test/java/com/somemore/community/repository/CommunityRepositoryTest.java index 9529439ce..b908f2db8 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("테스트 커뮤니티 게시글 제목") @@ -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.findById(communityBoard.getId()); + + //then + assertThat(foundCommunityBoard).isEmpty(); + } + @DisplayName("저장된 전체 커뮤니티 게시글을 목록으로 조회할 수 있다. (Repository)") @Test void getCommunityBoards() { @@ -103,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);