From 67262e0b51805468e8e38bfb2d164129277f77f4 Mon Sep 17 00:00:00 2001 From: ayoung-dev Date: Thu, 21 Nov 2024 02:09:54 +0900 Subject: [PATCH 01/10] =?UTF-8?q?test(community):=20communityBoard=20?= =?UTF-8?q?=EC=83=9D=EC=84=B1=20=EA=B8=B0=EB=8A=A5=20=ED=85=8C=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8=20=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - imageUrl 있는 경우 / 없는 경우 나눠서 작성 --- .../service/CreateCommunityServiceTest.java | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 src/test/java/com/somemore/community/service/CreateCommunityServiceTest.java diff --git a/src/test/java/com/somemore/community/service/CreateCommunityServiceTest.java b/src/test/java/com/somemore/community/service/CreateCommunityServiceTest.java new file mode 100644 index 000000000..02c4d9d07 --- /dev/null +++ b/src/test/java/com/somemore/community/service/CreateCommunityServiceTest.java @@ -0,0 +1,79 @@ +package com.somemore.community.service; + +import static org.assertj.core.api.Assertions.assertThat; + +import com.somemore.community.domain.CommunityBoard; +import com.somemore.community.dto.request.CommunityCreateRequestDto; +import com.somemore.community.repository.CommunityRepository; +import com.somemore.community.service.command.CreateCommunityService; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.data.jpa.repository.config.EnableJpaAuditing; +import org.springframework.test.context.ActiveProfiles; + +import java.util.Optional; +import java.util.UUID; + +@ActiveProfiles("test") +@EnableJpaAuditing +@SpringBootTest +public class CreateCommunityServiceTest { + @Autowired + private CreateCommunityService createCommunityService; + @Autowired + private CommunityRepository communityRepository; + + @DisplayName("커뮤니티에 게시글을 등록한다.") + @Test + void createCommunityWithDto() { + //given + CommunityCreateRequestDto dto = CommunityCreateRequestDto.builder() + .title("커뮤니티 테스트 제목") + .content("커뮤니티 테스트 내용") + .build(); + + UUID writerId = UUID.randomUUID(); + String imgUrl = "https://image.test.url/123"; + + //when + Long communityId = createCommunityService.createCommunityBoard(dto, writerId, imgUrl); + + //then + Optional communityBoard = communityRepository.findById(communityId); + + assertThat(communityBoard.isPresent()).isTrue(); + assertThat(communityBoard.get().getId()).isEqualTo(communityId); + assertThat(communityBoard.get().getWriterId()).isEqualTo(writerId); + assertThat(communityBoard.get().getTitle()).isEqualTo(dto.title()); + assertThat(communityBoard.get().getContent()).isEqualTo(dto.content()); + assertThat(communityBoard.get().getImgUrl()).isEqualTo(imgUrl); + } + + @DisplayName("커뮤니티 게시글을 이미지 링크 없이 등록할 시 빈 문자열을 저장한다.") + @Test + void createCommunityWithoutImgUrl() { + //given + CommunityCreateRequestDto dto = CommunityCreateRequestDto.builder() + .title("커뮤니티 테스트 제목") + .content("커뮤니티 테스트 내용") + .build(); + + UUID writerId = UUID.randomUUID(); + String imgUrl = null; + + //when + Long communityId = createCommunityService.createCommunityBoard(dto, writerId, imgUrl); + + //then + Optional communityBoard = communityRepository.findById(communityId); + + assertThat(communityBoard.isPresent()).isTrue(); + assertThat(communityBoard.get().getId()).isEqualTo(communityId); + assertThat(communityBoard.get().getWriterId()).isEqualTo(writerId); + assertThat(communityBoard.get().getTitle()).isEqualTo(dto.title()); + assertThat(communityBoard.get().getContent()).isEqualTo(dto.content()); + assertThat(communityBoard.get().getImgUrl()).isEqualTo(""); + } +} From 71cc807105a13bf39a5ff7c9a18041c00336e0cf Mon Sep 17 00:00:00 2001 From: ayoung-dev Date: Thu, 21 Nov 2024 02:19:23 +0900 Subject: [PATCH 02/10] =?UTF-8?q?feat(community):=20communityBoard=20Entit?= =?UTF-8?q?y,=20Repository=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/somemore/CommunityBoard.java | 29 ---------- .../community/domain/CommunityBoard.java | 53 +++++++++++++++++++ .../repository/CommunityRepository.java | 8 +++ 3 files changed, 61 insertions(+), 29 deletions(-) delete mode 100644 src/main/java/com/somemore/CommunityBoard.java create mode 100644 src/main/java/com/somemore/community/domain/CommunityBoard.java create mode 100644 src/main/java/com/somemore/community/repository/CommunityRepository.java diff --git a/src/main/java/com/somemore/CommunityBoard.java b/src/main/java/com/somemore/CommunityBoard.java deleted file mode 100644 index 01513368b..000000000 --- a/src/main/java/com/somemore/CommunityBoard.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.somemore; - -import jakarta.persistence.*; -import lombok.Getter; -import lombok.Setter; - -@Getter -@Setter -@Entity -@Table(name = "Community_board") -public class CommunityBoard { - @Id - @Column(name = "id", nullable = false) - private Long id; - - @Column(name = "writer_id", nullable = false, length = 16) - private String writerId; - - @Column(name = "title", nullable = false) - private String title; - - @Lob - @Column(name = "content", nullable = false) - private String content; - - @Column(name = "img_url") - private String imgUrl; - -} \ No newline at end of file diff --git a/src/main/java/com/somemore/community/domain/CommunityBoard.java b/src/main/java/com/somemore/community/domain/CommunityBoard.java new file mode 100644 index 000000000..cedd89ad7 --- /dev/null +++ b/src/main/java/com/somemore/community/domain/CommunityBoard.java @@ -0,0 +1,53 @@ +package com.somemore.community.domain; + +import com.somemore.global.common.BaseEntity; +import static lombok.AccessLevel.PROTECTED; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.Id; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Lob; +import jakarta.persistence.Table; + +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; + +import java.util.UUID; + + + +@Getter +@NoArgsConstructor(access = PROTECTED) +@Entity +@Table(name = "community_board") +public class CommunityBoard extends BaseEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "id", nullable = false) + private Long id; + + @Column(name = "writer_id", nullable = false, length = 16) + private UUID writerId; + + @Column(name = "title", nullable = false) + private String title; + + @Lob + @Column(name = "content", nullable = false) + private String content; + + @Column(name = "img_url") + private String imgUrl; + + @Builder + public CommunityBoard(UUID writerId, String title, String content, String imgUrl) { + this.writerId = writerId; + this.title = title; + this.content = content; + this.imgUrl = imgUrl; + } +} \ No newline at end of file diff --git a/src/main/java/com/somemore/community/repository/CommunityRepository.java b/src/main/java/com/somemore/community/repository/CommunityRepository.java new file mode 100644 index 000000000..b783cd73d --- /dev/null +++ b/src/main/java/com/somemore/community/repository/CommunityRepository.java @@ -0,0 +1,8 @@ +package com.somemore.community.repository; + +import com.somemore.community.domain.CommunityBoard; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface CommunityRepository extends JpaRepository { + +} From ed349aac14847555ed83bdb6139863f94bdca28b Mon Sep 17 00:00:00 2001 From: ayoung-dev Date: Thu, 21 Nov 2024 02:21:44 +0900 Subject: [PATCH 03/10] =?UTF-8?q?feat(community):=20communityBoard=20Reque?= =?UTF-8?q?stDto,=20Usercase=20=EC=B6=94=EA=B0=80=20=EB=B0=8F=20Service=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../request/CommunityCreateRequestDto.java | 32 +++++++++++++++++++ .../command/CreateCommunityService.java | 29 +++++++++++++++++ .../usecase/CreateCommunityUseCase.java | 12 +++++++ 3 files changed, 73 insertions(+) create mode 100644 src/main/java/com/somemore/community/dto/request/CommunityCreateRequestDto.java create mode 100644 src/main/java/com/somemore/community/service/command/CreateCommunityService.java create mode 100644 src/main/java/com/somemore/community/usecase/CreateCommunityUseCase.java diff --git a/src/main/java/com/somemore/community/dto/request/CommunityCreateRequestDto.java b/src/main/java/com/somemore/community/dto/request/CommunityCreateRequestDto.java new file mode 100644 index 000000000..5f8ee0d2c --- /dev/null +++ b/src/main/java/com/somemore/community/dto/request/CommunityCreateRequestDto.java @@ -0,0 +1,32 @@ +package com.somemore.community.dto.request; + +import com.fasterxml.jackson.databind.PropertyNamingStrategies.SnakeCaseStrategy; +import com.fasterxml.jackson.databind.annotation.JsonNaming; +import com.somemore.community.domain.CommunityBoard; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import lombok.Builder; + +import java.util.UUID; + +@JsonNaming(SnakeCaseStrategy.class) +@Builder +public record CommunityCreateRequestDto( + @Schema(description = "커뮤니티 게시글 제목", example = "11/29 OO도서관 봉사 같이 갈 사람 모집합니다.") + @NotBlank(message = "게시글 제목은 필수 값입니다.") + String title, + @Schema(description = "커뮤니티 게시글 내용", example = "저 포함 5명이 같이 가면 좋을 거 같아요") + @NotBlank(message = "게시글 내용은 필수 값입니다.") + String content +) { + public CommunityBoard toEntity(UUID writerId, String imgUrl) { + return CommunityBoard.builder() + .writerId(writerId) + .title(title) + .content(content) + .imgUrl(imgUrl) + .build(); + } + + +} diff --git a/src/main/java/com/somemore/community/service/command/CreateCommunityService.java b/src/main/java/com/somemore/community/service/command/CreateCommunityService.java new file mode 100644 index 000000000..94d6c23a6 --- /dev/null +++ b/src/main/java/com/somemore/community/service/command/CreateCommunityService.java @@ -0,0 +1,29 @@ +package com.somemore.community.service.command; + +import com.somemore.community.domain.CommunityBoard; +import com.somemore.community.dto.request.CommunityCreateRequestDto; +import com.somemore.community.repository.CommunityRepository; +import com.somemore.community.usecase.CreateCommunityUseCase; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.UUID; + +@RequiredArgsConstructor +@Transactional +@Service +public class CreateCommunityService implements CreateCommunityUseCase { + + private final CommunityRepository communityRepository; + + @Override + public Long createCommunityBoard(CommunityCreateRequestDto requestDto, UUID writerId, String imgUrl) { + + CommunityBoard communityBoard = requestDto.toEntity(writerId, imgUrl != null ? imgUrl : ""); + + communityRepository.save(communityBoard); + + return communityBoard.getId(); + } +} diff --git a/src/main/java/com/somemore/community/usecase/CreateCommunityUseCase.java b/src/main/java/com/somemore/community/usecase/CreateCommunityUseCase.java new file mode 100644 index 000000000..43a475b8c --- /dev/null +++ b/src/main/java/com/somemore/community/usecase/CreateCommunityUseCase.java @@ -0,0 +1,12 @@ +package com.somemore.community.usecase; + +import com.somemore.community.dto.request.CommunityCreateRequestDto; + +import java.util.UUID; + +public interface CreateCommunityUseCase { + Long createCommunityBoard( + CommunityCreateRequestDto requestDto, + UUID writerId, + String imgUrl); +} From d6e8c5fd5a81b5e838e0c9d95f1dabb26687aded Mon Sep 17 00:00:00 2001 From: ayoung-dev Date: Thu, 21 Nov 2024 10:14:45 +0900 Subject: [PATCH 04/10] =?UTF-8?q?refactor(community):=20community=20->=20c?= =?UTF-8?q?ommunityBoard=20=ED=8C=8C=EC=9D=BC=20=EB=B0=8F=20=EB=B3=80?= =?UTF-8?q?=EC=88=98=EB=AA=85=20=EC=9D=BC=EA=B4=84=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...va => CommunityBoardCreateRequestDto.java} | 2 +- ...ory.java => CommunityBoardRepository.java} | 2 +- .../command/CreateCommunityBoardService.java | 29 +++++++++++++++++++ .../command/CreateCommunityService.java | 29 ------------------- .../usecase/CreateCommunityBoardUseCase.java | 12 ++++++++ .../usecase/CreateCommunityUseCase.java | 12 -------- ...a => CreateCommunityBoardServiceTest.java} | 24 +++++++-------- 7 files changed, 55 insertions(+), 55 deletions(-) rename src/main/java/com/somemore/community/dto/request/{CommunityCreateRequestDto.java => CommunityBoardCreateRequestDto.java} (96%) rename src/main/java/com/somemore/community/repository/{CommunityRepository.java => CommunityBoardRepository.java} (64%) create mode 100644 src/main/java/com/somemore/community/service/command/CreateCommunityBoardService.java delete mode 100644 src/main/java/com/somemore/community/service/command/CreateCommunityService.java create mode 100644 src/main/java/com/somemore/community/usecase/CreateCommunityBoardUseCase.java delete mode 100644 src/main/java/com/somemore/community/usecase/CreateCommunityUseCase.java rename src/test/java/com/somemore/community/service/{CreateCommunityServiceTest.java => CreateCommunityBoardServiceTest.java} (70%) diff --git a/src/main/java/com/somemore/community/dto/request/CommunityCreateRequestDto.java b/src/main/java/com/somemore/community/dto/request/CommunityBoardCreateRequestDto.java similarity index 96% rename from src/main/java/com/somemore/community/dto/request/CommunityCreateRequestDto.java rename to src/main/java/com/somemore/community/dto/request/CommunityBoardCreateRequestDto.java index 5f8ee0d2c..952276733 100644 --- a/src/main/java/com/somemore/community/dto/request/CommunityCreateRequestDto.java +++ b/src/main/java/com/somemore/community/dto/request/CommunityBoardCreateRequestDto.java @@ -11,7 +11,7 @@ @JsonNaming(SnakeCaseStrategy.class) @Builder -public record CommunityCreateRequestDto( +public record CommunityBoardCreateRequestDto( @Schema(description = "커뮤니티 게시글 제목", example = "11/29 OO도서관 봉사 같이 갈 사람 모집합니다.") @NotBlank(message = "게시글 제목은 필수 값입니다.") String title, diff --git a/src/main/java/com/somemore/community/repository/CommunityRepository.java b/src/main/java/com/somemore/community/repository/CommunityBoardRepository.java similarity index 64% rename from src/main/java/com/somemore/community/repository/CommunityRepository.java rename to src/main/java/com/somemore/community/repository/CommunityBoardRepository.java index b783cd73d..85d051cc6 100644 --- a/src/main/java/com/somemore/community/repository/CommunityRepository.java +++ b/src/main/java/com/somemore/community/repository/CommunityBoardRepository.java @@ -3,6 +3,6 @@ import com.somemore.community.domain.CommunityBoard; import org.springframework.data.jpa.repository.JpaRepository; -public interface CommunityRepository extends JpaRepository { +public interface CommunityBoardRepository extends JpaRepository { } diff --git a/src/main/java/com/somemore/community/service/command/CreateCommunityBoardService.java b/src/main/java/com/somemore/community/service/command/CreateCommunityBoardService.java new file mode 100644 index 000000000..b7e3bc233 --- /dev/null +++ b/src/main/java/com/somemore/community/service/command/CreateCommunityBoardService.java @@ -0,0 +1,29 @@ +package com.somemore.community.service.command; + +import com.somemore.community.domain.CommunityBoard; +import com.somemore.community.dto.request.CommunityBoardCreateRequestDto; +import com.somemore.community.repository.CommunityBoardRepository; +import com.somemore.community.usecase.CreateCommunityBoardUseCase; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.UUID; + +@RequiredArgsConstructor +@Transactional +@Service +public class CreateCommunityBoardService implements CreateCommunityBoardUseCase { + + private final CommunityBoardRepository communityBoardRepository; + + @Override + public Long createCommunityBoard(CommunityBoardCreateRequestDto requestDto, UUID writerId, String imgUrl) { + + CommunityBoard communityBoard = requestDto.toEntity(writerId, imgUrl != null ? imgUrl : ""); + + communityBoardRepository.save(communityBoard); + + return communityBoard.getId(); + } +} diff --git a/src/main/java/com/somemore/community/service/command/CreateCommunityService.java b/src/main/java/com/somemore/community/service/command/CreateCommunityService.java deleted file mode 100644 index 94d6c23a6..000000000 --- a/src/main/java/com/somemore/community/service/command/CreateCommunityService.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.somemore.community.service.command; - -import com.somemore.community.domain.CommunityBoard; -import com.somemore.community.dto.request.CommunityCreateRequestDto; -import com.somemore.community.repository.CommunityRepository; -import com.somemore.community.usecase.CreateCommunityUseCase; -import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import java.util.UUID; - -@RequiredArgsConstructor -@Transactional -@Service -public class CreateCommunityService implements CreateCommunityUseCase { - - private final CommunityRepository communityRepository; - - @Override - public Long createCommunityBoard(CommunityCreateRequestDto requestDto, UUID writerId, String imgUrl) { - - CommunityBoard communityBoard = requestDto.toEntity(writerId, imgUrl != null ? imgUrl : ""); - - communityRepository.save(communityBoard); - - return communityBoard.getId(); - } -} diff --git a/src/main/java/com/somemore/community/usecase/CreateCommunityBoardUseCase.java b/src/main/java/com/somemore/community/usecase/CreateCommunityBoardUseCase.java new file mode 100644 index 000000000..2e0c3828f --- /dev/null +++ b/src/main/java/com/somemore/community/usecase/CreateCommunityBoardUseCase.java @@ -0,0 +1,12 @@ +package com.somemore.community.usecase; + +import com.somemore.community.dto.request.CommunityBoardCreateRequestDto; + +import java.util.UUID; + +public interface CreateCommunityBoardUseCase { + Long createCommunityBoard( + CommunityBoardCreateRequestDto requestDto, + UUID writerId, + String imgUrl); +} diff --git a/src/main/java/com/somemore/community/usecase/CreateCommunityUseCase.java b/src/main/java/com/somemore/community/usecase/CreateCommunityUseCase.java deleted file mode 100644 index 43a475b8c..000000000 --- a/src/main/java/com/somemore/community/usecase/CreateCommunityUseCase.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.somemore.community.usecase; - -import com.somemore.community.dto.request.CommunityCreateRequestDto; - -import java.util.UUID; - -public interface CreateCommunityUseCase { - Long createCommunityBoard( - CommunityCreateRequestDto requestDto, - UUID writerId, - String imgUrl); -} diff --git a/src/test/java/com/somemore/community/service/CreateCommunityServiceTest.java b/src/test/java/com/somemore/community/service/CreateCommunityBoardServiceTest.java similarity index 70% rename from src/test/java/com/somemore/community/service/CreateCommunityServiceTest.java rename to src/test/java/com/somemore/community/service/CreateCommunityBoardServiceTest.java index 02c4d9d07..37501c2b5 100644 --- a/src/test/java/com/somemore/community/service/CreateCommunityServiceTest.java +++ b/src/test/java/com/somemore/community/service/CreateCommunityBoardServiceTest.java @@ -3,9 +3,9 @@ import static org.assertj.core.api.Assertions.assertThat; import com.somemore.community.domain.CommunityBoard; -import com.somemore.community.dto.request.CommunityCreateRequestDto; -import com.somemore.community.repository.CommunityRepository; -import com.somemore.community.service.command.CreateCommunityService; +import com.somemore.community.dto.request.CommunityBoardCreateRequestDto; +import com.somemore.community.repository.CommunityBoardRepository; +import com.somemore.community.service.command.CreateCommunityBoardService; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; @@ -19,17 +19,17 @@ @ActiveProfiles("test") @EnableJpaAuditing @SpringBootTest -public class CreateCommunityServiceTest { +public class CreateCommunityBoardServiceTest { @Autowired - private CreateCommunityService createCommunityService; + private CreateCommunityBoardService createCommunityBoardService; @Autowired - private CommunityRepository communityRepository; + private CommunityBoardRepository communityBoardRepository; @DisplayName("커뮤니티에 게시글을 등록한다.") @Test void createCommunityWithDto() { //given - CommunityCreateRequestDto dto = CommunityCreateRequestDto.builder() + CommunityBoardCreateRequestDto dto = CommunityBoardCreateRequestDto.builder() .title("커뮤니티 테스트 제목") .content("커뮤니티 테스트 내용") .build(); @@ -38,10 +38,10 @@ void createCommunityWithDto() { String imgUrl = "https://image.test.url/123"; //when - Long communityId = createCommunityService.createCommunityBoard(dto, writerId, imgUrl); + Long communityId = createCommunityBoardService.createCommunityBoard(dto, writerId, imgUrl); //then - Optional communityBoard = communityRepository.findById(communityId); + Optional communityBoard = communityBoardRepository.findById(communityId); assertThat(communityBoard.isPresent()).isTrue(); assertThat(communityBoard.get().getId()).isEqualTo(communityId); @@ -55,7 +55,7 @@ void createCommunityWithDto() { @Test void createCommunityWithoutImgUrl() { //given - CommunityCreateRequestDto dto = CommunityCreateRequestDto.builder() + CommunityBoardCreateRequestDto dto = CommunityBoardCreateRequestDto.builder() .title("커뮤니티 테스트 제목") .content("커뮤니티 테스트 내용") .build(); @@ -64,10 +64,10 @@ void createCommunityWithoutImgUrl() { String imgUrl = null; //when - Long communityId = createCommunityService.createCommunityBoard(dto, writerId, imgUrl); + Long communityId = createCommunityBoardService.createCommunityBoard(dto, writerId, imgUrl); //then - Optional communityBoard = communityRepository.findById(communityId); + Optional communityBoard = communityBoardRepository.findById(communityId); assertThat(communityBoard.isPresent()).isTrue(); assertThat(communityBoard.get().getId()).isEqualTo(communityId); From c2a8a737930fc3dc3d5fce60153c16b68af7ea3f Mon Sep 17 00:00:00 2001 From: ayoung-dev Date: Thu, 21 Nov 2024 12:00:02 +0900 Subject: [PATCH 05/10] =?UTF-8?q?test(community):=20communityBoard=20?= =?UTF-8?q?=EC=83=9D=EC=84=B1=20=EA=B8=B0=EB=8A=A5=20=ED=85=8C=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - command 디렉토리 추가 - IntergrationTestSupport 상속 및 tearDown 추가 --- .../CreateCommunityBoardService.java | 4 ++-- .../CreateCommunityBoardUseCase.java | 2 +- .../CreateCommunityBoardServiceTest.java | 19 ++++++++++--------- 3 files changed, 13 insertions(+), 12 deletions(-) rename src/main/java/com/somemore/community/service/command/{ => command}/CreateCommunityBoardService.java (87%) rename src/main/java/com/somemore/community/usecase/{ => command}/CreateCommunityBoardUseCase.java (85%) rename src/test/java/com/somemore/community/service/{ => command}/CreateCommunityBoardServiceTest.java (87%) diff --git a/src/main/java/com/somemore/community/service/command/CreateCommunityBoardService.java b/src/main/java/com/somemore/community/service/command/command/CreateCommunityBoardService.java similarity index 87% rename from src/main/java/com/somemore/community/service/command/CreateCommunityBoardService.java rename to src/main/java/com/somemore/community/service/command/command/CreateCommunityBoardService.java index b7e3bc233..66c753839 100644 --- a/src/main/java/com/somemore/community/service/command/CreateCommunityBoardService.java +++ b/src/main/java/com/somemore/community/service/command/command/CreateCommunityBoardService.java @@ -1,9 +1,9 @@ -package com.somemore.community.service.command; +package com.somemore.community.service.command.command; import com.somemore.community.domain.CommunityBoard; import com.somemore.community.dto.request.CommunityBoardCreateRequestDto; import com.somemore.community.repository.CommunityBoardRepository; -import com.somemore.community.usecase.CreateCommunityBoardUseCase; +import com.somemore.community.usecase.command.CreateCommunityBoardUseCase; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; diff --git a/src/main/java/com/somemore/community/usecase/CreateCommunityBoardUseCase.java b/src/main/java/com/somemore/community/usecase/command/CreateCommunityBoardUseCase.java similarity index 85% rename from src/main/java/com/somemore/community/usecase/CreateCommunityBoardUseCase.java rename to src/main/java/com/somemore/community/usecase/command/CreateCommunityBoardUseCase.java index 2e0c3828f..d45a2dd12 100644 --- a/src/main/java/com/somemore/community/usecase/CreateCommunityBoardUseCase.java +++ b/src/main/java/com/somemore/community/usecase/command/CreateCommunityBoardUseCase.java @@ -1,4 +1,4 @@ -package com.somemore.community.usecase; +package com.somemore.community.usecase.command; import com.somemore.community.dto.request.CommunityBoardCreateRequestDto; diff --git a/src/test/java/com/somemore/community/service/CreateCommunityBoardServiceTest.java b/src/test/java/com/somemore/community/service/command/CreateCommunityBoardServiceTest.java similarity index 87% rename from src/test/java/com/somemore/community/service/CreateCommunityBoardServiceTest.java rename to src/test/java/com/somemore/community/service/command/CreateCommunityBoardServiceTest.java index 37501c2b5..4d033a3ef 100644 --- a/src/test/java/com/somemore/community/service/CreateCommunityBoardServiceTest.java +++ b/src/test/java/com/somemore/community/service/command/CreateCommunityBoardServiceTest.java @@ -1,30 +1,31 @@ -package com.somemore.community.service; +package com.somemore.community.service.command; import static org.assertj.core.api.Assertions.assertThat; +import com.somemore.IntegrationTestSupport; import com.somemore.community.domain.CommunityBoard; import com.somemore.community.dto.request.CommunityBoardCreateRequestDto; import com.somemore.community.repository.CommunityBoardRepository; -import com.somemore.community.service.command.CreateCommunityBoardService; +import com.somemore.community.service.command.command.CreateCommunityBoardService; +import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.data.jpa.repository.config.EnableJpaAuditing; -import org.springframework.test.context.ActiveProfiles; import java.util.Optional; import java.util.UUID; -@ActiveProfiles("test") -@EnableJpaAuditing -@SpringBootTest -public class CreateCommunityBoardServiceTest { +public class CreateCommunityBoardServiceTest extends IntegrationTestSupport { @Autowired private CreateCommunityBoardService createCommunityBoardService; @Autowired private CommunityBoardRepository communityBoardRepository; + @AfterEach + void tearDown() { + communityBoardRepository.deleteAllInBatch(); + } + @DisplayName("커뮤니티에 게시글을 등록한다.") @Test void createCommunityWithDto() { From bbd1b17049e5c968da2dbc045ce784c5d7483169 Mon Sep 17 00:00:00 2001 From: ayoung-dev Date: Thu, 21 Nov 2024 12:23:53 +0900 Subject: [PATCH 06/10] =?UTF-8?q?test(community):=20communityBoard=20?= =?UTF-8?q?=EC=83=9D=EC=84=B1=20=EA=B8=B0=EB=8A=A5=20=ED=85=8C=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/command/CreateCommunityBoardServiceTest.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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 4d033a3ef..6f755dcb4 100644 --- a/src/test/java/com/somemore/community/service/command/CreateCommunityBoardServiceTest.java +++ b/src/test/java/com/somemore/community/service/command/CreateCommunityBoardServiceTest.java @@ -15,7 +15,7 @@ import java.util.Optional; import java.util.UUID; -public class CreateCommunityBoardServiceTest extends IntegrationTestSupport { +class CreateCommunityBoardServiceTest extends IntegrationTestSupport { @Autowired private CreateCommunityBoardService createCommunityBoardService; @Autowired @@ -44,7 +44,7 @@ void createCommunityWithDto() { //then Optional communityBoard = communityBoardRepository.findById(communityId); - assertThat(communityBoard.isPresent()).isTrue(); + assertThat(communityBoard).isPresent(); assertThat(communityBoard.get().getId()).isEqualTo(communityId); assertThat(communityBoard.get().getWriterId()).isEqualTo(writerId); assertThat(communityBoard.get().getTitle()).isEqualTo(dto.title()); @@ -70,11 +70,11 @@ void createCommunityWithoutImgUrl() { //then Optional communityBoard = communityBoardRepository.findById(communityId); - assertThat(communityBoard.isPresent()).isTrue(); + assertThat(communityBoard).isPresent(); assertThat(communityBoard.get().getId()).isEqualTo(communityId); assertThat(communityBoard.get().getWriterId()).isEqualTo(writerId); assertThat(communityBoard.get().getTitle()).isEqualTo(dto.title()); assertThat(communityBoard.get().getContent()).isEqualTo(dto.content()); - assertThat(communityBoard.get().getImgUrl()).isEqualTo(""); + assertThat(communityBoard.get().getImgUrl()).isEmpty(); } } From 1059054ae3be50b4c71c2d49c8174fd8192406e7 Mon Sep 17 00:00:00 2001 From: ayoung-dev Date: Thu, 21 Nov 2024 12:47:17 +0900 Subject: [PATCH 07/10] =?UTF-8?q?refactor(community):=20Service=20?= =?UTF-8?q?=EB=94=94=EB=A0=89=ED=86=A0=EB=A6=AC=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../command/{command => }/CreateCommunityBoardService.java | 2 +- .../service/command/CreateCommunityBoardServiceTest.java | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) rename src/main/java/com/somemore/community/service/command/{command => }/CreateCommunityBoardService.java (94%) diff --git a/src/main/java/com/somemore/community/service/command/command/CreateCommunityBoardService.java b/src/main/java/com/somemore/community/service/command/CreateCommunityBoardService.java similarity index 94% rename from src/main/java/com/somemore/community/service/command/command/CreateCommunityBoardService.java rename to src/main/java/com/somemore/community/service/command/CreateCommunityBoardService.java index 66c753839..3c46f50d4 100644 --- a/src/main/java/com/somemore/community/service/command/command/CreateCommunityBoardService.java +++ b/src/main/java/com/somemore/community/service/command/CreateCommunityBoardService.java @@ -1,4 +1,4 @@ -package com.somemore.community.service.command.command; +package com.somemore.community.service.command; import com.somemore.community.domain.CommunityBoard; import com.somemore.community.dto.request.CommunityBoardCreateRequestDto; 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 6f755dcb4..d2cb672a7 100644 --- a/src/test/java/com/somemore/community/service/command/CreateCommunityBoardServiceTest.java +++ b/src/test/java/com/somemore/community/service/command/CreateCommunityBoardServiceTest.java @@ -6,7 +6,6 @@ import com.somemore.community.domain.CommunityBoard; import com.somemore.community.dto.request.CommunityBoardCreateRequestDto; import com.somemore.community.repository.CommunityBoardRepository; -import com.somemore.community.service.command.command.CreateCommunityBoardService; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; From d0e0190c933cd64092a09c22f0d91ab8c36b468c Mon Sep 17 00:00:00 2001 From: ayoung-dev Date: Thu, 21 Nov 2024 12:48:19 +0900 Subject: [PATCH 08/10] =?UTF-8?q?chore(community):=20CommunityBoard=20?= =?UTF-8?q?=EC=97=94=ED=8B=B0=ED=8B=B0=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - imgUrl nullable false 추가 --- src/main/java/com/somemore/community/domain/CommunityBoard.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/somemore/community/domain/CommunityBoard.java b/src/main/java/com/somemore/community/domain/CommunityBoard.java index cedd89ad7..925746b06 100644 --- a/src/main/java/com/somemore/community/domain/CommunityBoard.java +++ b/src/main/java/com/somemore/community/domain/CommunityBoard.java @@ -40,7 +40,7 @@ public class CommunityBoard extends BaseEntity { @Column(name = "content", nullable = false) private String content; - @Column(name = "img_url") + @Column(name = "img_url", nullable = false) private String imgUrl; @Builder From 61d8b419e75d442ea2145ee6b506adfe8357f7d8 Mon Sep 17 00:00:00 2001 From: ayoung-dev Date: Thu, 21 Nov 2024 14:32:26 +0900 Subject: [PATCH 09/10] =?UTF-8?q?chore(community):=20Service=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../community/service/command/CreateCommunityBoardService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/somemore/community/service/command/CreateCommunityBoardService.java b/src/main/java/com/somemore/community/service/command/CreateCommunityBoardService.java index 3c46f50d4..e0734cd34 100644 --- a/src/main/java/com/somemore/community/service/command/CreateCommunityBoardService.java +++ b/src/main/java/com/somemore/community/service/command/CreateCommunityBoardService.java @@ -20,7 +20,7 @@ public class CreateCommunityBoardService implements CreateCommunityBoardUseCase @Override public Long createCommunityBoard(CommunityBoardCreateRequestDto requestDto, UUID writerId, String imgUrl) { - CommunityBoard communityBoard = requestDto.toEntity(writerId, imgUrl != null ? imgUrl : ""); + CommunityBoard communityBoard = requestDto.toEntity(writerId, imgUrl == null ? "" : imgUrl); communityBoardRepository.save(communityBoard); From d41a8c82f257bc8c61d33d2dc40b8aecb8611177 Mon Sep 17 00:00:00 2001 From: ayoung-dev Date: Thu, 21 Nov 2024 14:34:36 +0900 Subject: [PATCH 10/10] =?UTF-8?q?style(community):=20CommunityBoard=20?= =?UTF-8?q?=EC=97=94=ED=8B=B0=ED=8B=B0=20=EA=B3=B5=EB=B0=B1=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/somemore/community/domain/CommunityBoard.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/com/somemore/community/domain/CommunityBoard.java b/src/main/java/com/somemore/community/domain/CommunityBoard.java index 925746b06..457957dd9 100644 --- a/src/main/java/com/somemore/community/domain/CommunityBoard.java +++ b/src/main/java/com/somemore/community/domain/CommunityBoard.java @@ -17,8 +17,6 @@ import java.util.UUID; - - @Getter @NoArgsConstructor(access = PROTECTED) @Entity