diff --git a/src/main/java/com/somemore/domains/community/controller/CommunityBoardCommandApiController.java b/src/main/java/com/somemore/domains/community/controller/CommunityBoardCommandApiController.java index 5bc77bc6b..1896467e0 100644 --- a/src/main/java/com/somemore/domains/community/controller/CommunityBoardCommandApiController.java +++ b/src/main/java/com/somemore/domains/community/controller/CommunityBoardCommandApiController.java @@ -5,10 +5,8 @@ import com.somemore.domains.community.usecase.board.CreateCommunityBoardUseCase; import com.somemore.domains.community.usecase.board.DeleteCommunityBoardUseCase; import com.somemore.domains.community.usecase.board.UpdateCommunityBoardUseCase; -import com.somemore.global.auth.annotation.CurrentUser; +import com.somemore.global.auth.annotation.RoleId; import com.somemore.global.common.response.ApiResponse; -import com.somemore.global.imageupload.dto.ImageUploadRequestDto; -import com.somemore.global.imageupload.usecase.ImageUploadUseCase; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; @@ -19,14 +17,11 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestPart; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.multipart.MultipartFile; import java.util.UUID; -import static org.springframework.http.MediaType.MULTIPART_FORM_DATA_VALUE; - @Tag(name = "Community Board Command API", description = "커뮤니티 게시글 생성 수정 삭제 API") @RequiredArgsConstructor @RequestMapping("/api/community-board") @@ -36,37 +31,30 @@ public class CommunityBoardCommandApiController { private final CreateCommunityBoardUseCase createCommunityBoardUseCase; private final UpdateCommunityBoardUseCase updateCommunityBoardUseCase; private final DeleteCommunityBoardUseCase deleteCommunityBoardUseCase; - private final ImageUploadUseCase imageUploadUseCase; @Secured("ROLE_VOLUNTEER") @Operation(summary = "커뮤니티 게시글 등록", description = "커뮤니티 게시글을 등록합니다.") - @PostMapping(consumes = MULTIPART_FORM_DATA_VALUE) + @PostMapping public ApiResponse createCommunityBoard( - @CurrentUser UUID userId, - @Valid @RequestPart("data") CommunityBoardCreateRequestDto requestDto, - @RequestPart(value = "img_file", required = false) MultipartFile image + @RoleId UUID volunteerId, + @Valid @RequestBody CommunityBoardCreateRequestDto requestDto ) { - String imgUrl = imageUploadUseCase.uploadImage(new ImageUploadRequestDto(image)); - return ApiResponse.ok( 201, - createCommunityBoardUseCase.createCommunityBoard(requestDto, userId, imgUrl), + createCommunityBoardUseCase.createCommunityBoard(requestDto, volunteerId), "커뮤니티 게시글 등록 성공" ); } @Secured("ROLE_VOLUNTEER") @Operation(summary = "커뮤니티 게시글 수정", description = "커뮤니티 게시글을 수정합니다.") - @PutMapping(value = "/{id}", consumes = MULTIPART_FORM_DATA_VALUE) + @PutMapping(value = "/{id}") public ApiResponse updateCommunityBoard( - @CurrentUser UUID userId, + @RoleId UUID volunteerId, @PathVariable Long id, - @Valid @RequestPart("data") CommunityBoardUpdateRequestDto requestDto, - @RequestPart(value = "img_file", required = false) MultipartFile image + @Valid @RequestBody CommunityBoardUpdateRequestDto requestDto ) { - String imgUrl = imageUploadUseCase.uploadImage(new ImageUploadRequestDto(image)); - updateCommunityBoardUseCase.updateCommunityBoard(requestDto, id, userId, imgUrl); - + updateCommunityBoardUseCase.updateCommunityBoard(requestDto, id, volunteerId); return ApiResponse.ok("커뮤니티 게시글 수정 성공"); } @@ -74,11 +62,10 @@ public ApiResponse updateCommunityBoard( @Operation(summary = "커뮤니티 게시글 삭제", description = "커뮤니티 게시글을 삭제합니다.") @DeleteMapping(value = "/{id}") public ApiResponse deleteCommunityBoard( - @CurrentUser UUID userId, + @RoleId UUID volunteerId, @PathVariable Long id ) { - deleteCommunityBoardUseCase.deleteCommunityBoard(userId, id); - + deleteCommunityBoardUseCase.deleteCommunityBoard(volunteerId, id); return ApiResponse.ok("커뮤니티 게시글 삭제 성공"); } } diff --git a/src/main/java/com/somemore/domains/community/controller/CommunityCommentCommandApiController.java b/src/main/java/com/somemore/domains/community/controller/CommunityCommentCommandApiController.java index 772cc1634..2bcb6315b 100644 --- a/src/main/java/com/somemore/domains/community/controller/CommunityCommentCommandApiController.java +++ b/src/main/java/com/somemore/domains/community/controller/CommunityCommentCommandApiController.java @@ -5,7 +5,7 @@ import com.somemore.domains.community.usecase.comment.CreateCommunityCommentUseCase; import com.somemore.domains.community.usecase.comment.DeleteCommunityCommentUseCase; import com.somemore.domains.community.usecase.comment.UpdateCommunityCommentUseCase; -import com.somemore.global.auth.annotation.CurrentUser; +import com.somemore.global.auth.annotation.RoleId; import com.somemore.global.common.response.ApiResponse; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; @@ -36,13 +36,13 @@ public class CommunityCommentCommandApiController { @Operation(summary = "커뮤니티 댓글 등록", description = "커뮤니티 게시글에 댓글을 등록합니다.") @PostMapping(value = "/comment") public ApiResponse createCommunityComment( - @CurrentUser UUID userId, + @RoleId UUID volunteerId, @PathVariable Long boardId, @Valid @RequestBody CommunityCommentCreateRequestDto requestDto) { return ApiResponse.ok( 201, - createCommunityCommentUseCase.createCommunityComment(requestDto, userId, boardId), + createCommunityCommentUseCase.createCommunityComment(requestDto, volunteerId, boardId), "커뮤니티 댓글 등록 성공"); } @@ -50,12 +50,12 @@ public ApiResponse createCommunityComment( @Operation(summary = "커뮤니티 댓글 수정", description = "커뮤니티 댓글을 수정합니다.") @PutMapping(value = "/comment/{id}") public ApiResponse updateCommunityComment( - @CurrentUser UUID userId, + @RoleId UUID volunteerId, @PathVariable Long boardId, @PathVariable Long id, @Valid @RequestBody CommunityCommentUpdateRequestDto requestDto ) { - updateCommunityCommentUseCase.updateCommunityComment(requestDto, id, userId, boardId); + updateCommunityCommentUseCase.updateCommunityComment(requestDto, id, volunteerId, boardId); return ApiResponse.ok("커뮤니티 댓글 수정 성공"); } @@ -64,11 +64,11 @@ public ApiResponse updateCommunityComment( @Operation(summary = "커뮤니티 댓글 삭제", description = "커뮤니티 댓글을 삭제합니다.") @DeleteMapping(value = "/comment/{id}") public ApiResponse deleteCommunityComment( - @CurrentUser UUID userId, + @RoleId UUID volunteerId, @PathVariable Long boardId, @PathVariable Long id ) { - deleteCommunityCommentUseCase.deleteCommunityComment(userId, id, boardId); + deleteCommunityCommentUseCase.deleteCommunityComment(volunteerId, id, boardId); return ApiResponse.ok("커뮤니티 댓글 삭제 성공"); } diff --git a/src/main/java/com/somemore/domains/community/domain/CommunityBoard.java b/src/main/java/com/somemore/domains/community/domain/CommunityBoard.java index 9e3ec612d..288d50124 100644 --- a/src/main/java/com/somemore/domains/community/domain/CommunityBoard.java +++ b/src/main/java/com/somemore/domains/community/domain/CommunityBoard.java @@ -38,24 +38,19 @@ public class CommunityBoard extends BaseEntity { @Column(name = "content", length = 1000, nullable = false) private String content; - @Column(name = "img_url", nullable = false) - private String imgUrl; - @Builder - public CommunityBoard(UUID writerId, String title, String content, String imgUrl) { + public CommunityBoard(UUID writerId, String title, String content) { this.writerId = writerId; this.title = title; this.content = content; - this.imgUrl = imgUrl; } public boolean isWriter(UUID writerId) { return this.writerId.equals(writerId); } - public void updateWith(CommunityBoardUpdateRequestDto dto, String imgUrl) { + public void updateWith(CommunityBoardUpdateRequestDto dto) { this.title = dto.title(); this.content = dto.content(); - this.imgUrl = imgUrl; } } diff --git a/src/main/java/com/somemore/domains/community/dto/request/CommunityBoardCreateRequestDto.java b/src/main/java/com/somemore/domains/community/dto/request/CommunityBoardCreateRequestDto.java index 0c7b160bf..e3b760838 100644 --- a/src/main/java/com/somemore/domains/community/dto/request/CommunityBoardCreateRequestDto.java +++ b/src/main/java/com/somemore/domains/community/dto/request/CommunityBoardCreateRequestDto.java @@ -19,14 +19,11 @@ public record CommunityBoardCreateRequestDto( @NotBlank(message = "게시글 내용은 필수 값입니다.") String content ) { - public CommunityBoard toEntity(UUID writerId, String imgUrl) { + public CommunityBoard toEntity(UUID writerId) { return CommunityBoard.builder() .writerId(writerId) .title(title) .content(content) - .imgUrl(imgUrl) .build(); } - - } diff --git a/src/main/java/com/somemore/domains/community/dto/response/CommunityBoardDetailResponseDto.java b/src/main/java/com/somemore/domains/community/dto/response/CommunityBoardDetailResponseDto.java index b41106044..7b286dabb 100644 --- a/src/main/java/com/somemore/domains/community/dto/response/CommunityBoardDetailResponseDto.java +++ b/src/main/java/com/somemore/domains/community/dto/response/CommunityBoardDetailResponseDto.java @@ -21,8 +21,6 @@ public record CommunityBoardDetailResponseDto( String title, @Schema(description = "커뮤니티 게시글 내용", example = "저 포함 5명이 같이 가면 좋을 거 같아요") String content, - @Schema(description = "이미지 URL", example = "https://image.domain.com/links") - String imageUrl, @Schema(description = "커뮤니티 게시글 생성 일시", example = "2023-12-02T11:00:00") LocalDateTime createdAt, @Schema(description = "커뮤니티 게시글 수정 일시", example = "2023-12-02T11:00:00") @@ -34,7 +32,6 @@ public static CommunityBoardDetailResponseDto from(CommunityBoard board) { board.getWriterId(), board.getTitle(), board.getContent(), - board.getImgUrl(), board.getCreatedAt(), board.getUpdatedAt() ); diff --git a/src/main/java/com/somemore/domains/community/dto/response/CommunityCommentResponseDto.java b/src/main/java/com/somemore/domains/community/dto/response/CommunityCommentResponseDto.java index cb85b45a1..6098b1c25 100644 --- a/src/main/java/com/somemore/domains/community/dto/response/CommunityCommentResponseDto.java +++ b/src/main/java/com/somemore/domains/community/dto/response/CommunityCommentResponseDto.java @@ -8,11 +8,14 @@ import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; +import java.util.UUID; @JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class) public record CommunityCommentResponseDto( @Schema(description = "커뮤니티 댓글 ID", example = "1234") Long id, + @Schema(description = "작성자 ID", example = "123e4567-e89b-12d3-a456-426614174000") + UUID writerId, @Schema(description = "작성자(봉사자) 닉네임", example = "dkdudab") String writerNickname, @Schema(description = "커뮤니티 댓글 내용", example = "저도 함께 하고 싶습니다.") @@ -39,6 +42,7 @@ public record CommunityCommentResponseDto( public static CommunityCommentResponseDto from(CommunityCommentView comment) { return new CommunityCommentResponseDto( comment.communityComment().getId(), + comment.communityComment().getWriterId(), comment.writerNickname(), comment.communityComment().getContent(), comment.communityComment().getUpdatedAt(), diff --git a/src/main/java/com/somemore/domains/community/repository/board/CommunityBoardRepositoryImpl.java b/src/main/java/com/somemore/domains/community/repository/board/CommunityBoardRepositoryImpl.java index c0aa1a43a..aac0a3f3e 100644 --- a/src/main/java/com/somemore/domains/community/repository/board/CommunityBoardRepositoryImpl.java +++ b/src/main/java/com/somemore/domains/community/repository/board/CommunityBoardRepositoryImpl.java @@ -7,7 +7,7 @@ import com.somemore.domains.community.domain.CommunityBoard; import com.somemore.domains.community.domain.QCommunityBoard; import com.somemore.domains.community.repository.mapper.CommunityBoardView; -import com.somemore.domains.volunteer.domain.QVolunteer; +import com.somemore.volunteer.domain.QNEWVolunteer; import lombok.RequiredArgsConstructor; import org.apache.commons.lang3.StringUtils; import org.springframework.data.domain.Page; @@ -27,7 +27,7 @@ public class CommunityBoardRepositoryImpl implements CommunityBoardRepository { private final CommunityBoardJpaRepository communityBoardJpaRepository; private static final QCommunityBoard communityBoard = QCommunityBoard.communityBoard; - private static final QVolunteer volunteer = QVolunteer.volunteer; + private static final QNEWVolunteer volunteer = QNEWVolunteer.nEWVolunteer; @Override public CommunityBoard save(CommunityBoard communityBoard) { @@ -91,6 +91,11 @@ public void deleteAllInBatch() { communityBoardJpaRepository.deleteAllInBatch(); } + @Override + public List findAllByDeletedFalse() { + return communityBoardJpaRepository.findAllByDeletedFalse(); + } + private JPAQuery getCommunityBoardsQuery() { return queryFactory .select(Projections.constructor(CommunityBoardView.class, @@ -101,11 +106,6 @@ private JPAQuery getCommunityBoardsQuery() { .orderBy(communityBoard.createdAt.desc()); } - @Override - public List findAllByDeletedFalse() { - return communityBoardJpaRepository.findAllByDeletedFalse(); - } - private BooleanExpression isNotDeleted() { return communityBoard.deleted.eq(false); } diff --git a/src/main/java/com/somemore/domains/community/repository/comment/CommunityCommentRepositoryImpl.java b/src/main/java/com/somemore/domains/community/repository/comment/CommunityCommentRepositoryImpl.java index 654378cd2..b5ce004ff 100644 --- a/src/main/java/com/somemore/domains/community/repository/comment/CommunityCommentRepositoryImpl.java +++ b/src/main/java/com/somemore/domains/community/repository/comment/CommunityCommentRepositoryImpl.java @@ -6,7 +6,7 @@ import com.somemore.domains.community.domain.CommunityComment; import com.somemore.domains.community.domain.QCommunityComment; import com.somemore.domains.community.repository.mapper.CommunityCommentView; -import com.somemore.domains.volunteer.domain.QVolunteer; +import com.somemore.volunteer.domain.QNEWVolunteer; import lombok.RequiredArgsConstructor; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; @@ -24,7 +24,7 @@ public class CommunityCommentRepositoryImpl implements CommunityCommentRepositor private final CommunityCommentJpaRepository communityCommentJpaRepository; private static final QCommunityComment communityComment = QCommunityComment.communityComment; - private static final QVolunteer volunteer = QVolunteer.volunteer; + private static final QNEWVolunteer volunteer = QNEWVolunteer.nEWVolunteer; @Override public CommunityComment save(CommunityComment communityComment) { diff --git a/src/main/java/com/somemore/domains/community/service/board/CreateCommunityBoardService.java b/src/main/java/com/somemore/domains/community/service/board/CreateCommunityBoardService.java index c4643801c..e0691d0e5 100644 --- a/src/main/java/com/somemore/domains/community/service/board/CreateCommunityBoardService.java +++ b/src/main/java/com/somemore/domains/community/service/board/CreateCommunityBoardService.java @@ -18,9 +18,9 @@ public class CreateCommunityBoardService implements CreateCommunityBoardUseCase private final CommunityBoardRepository communityBoardRepository; @Override - public Long createCommunityBoard(CommunityBoardCreateRequestDto requestDto, UUID writerId, String imgUrl) { + public Long createCommunityBoard(CommunityBoardCreateRequestDto requestDto, UUID writerId) { - CommunityBoard communityBoard = requestDto.toEntity(writerId, imgUrl == null ? "" : imgUrl); + CommunityBoard communityBoard = requestDto.toEntity(writerId); communityBoardRepository.save(communityBoard); diff --git a/src/main/java/com/somemore/domains/community/service/board/UpdateCommunityBoardService.java b/src/main/java/com/somemore/domains/community/service/board/UpdateCommunityBoardService.java index 342a9aa70..36104fa66 100644 --- a/src/main/java/com/somemore/domains/community/service/board/UpdateCommunityBoardService.java +++ b/src/main/java/com/somemore/domains/community/service/board/UpdateCommunityBoardService.java @@ -23,10 +23,10 @@ public class UpdateCommunityBoardService implements UpdateCommunityBoardUseCase private final CommunityBoardRepository communityBoardRepository; @Override - public void updateCommunityBoard(CommunityBoardUpdateRequestDto requestDto, Long communityBoardId, UUID writerId, String imgUrl) { + public void updateCommunityBoard(CommunityBoardUpdateRequestDto requestDto, Long communityBoardId, UUID writerId) { CommunityBoard communityBoard = getCommunityBoardById(communityBoardId); validateWriter(communityBoard, writerId); - communityBoard.updateWith(requestDto, imgUrl); + communityBoard.updateWith(requestDto); communityBoardRepository.save(communityBoard); } diff --git a/src/main/java/com/somemore/domains/community/usecase/board/CreateCommunityBoardUseCase.java b/src/main/java/com/somemore/domains/community/usecase/board/CreateCommunityBoardUseCase.java index 41cfd1754..55d348424 100644 --- a/src/main/java/com/somemore/domains/community/usecase/board/CreateCommunityBoardUseCase.java +++ b/src/main/java/com/somemore/domains/community/usecase/board/CreateCommunityBoardUseCase.java @@ -7,6 +7,5 @@ public interface CreateCommunityBoardUseCase { Long createCommunityBoard( CommunityBoardCreateRequestDto requestDto, - UUID writerId, - String imgUrl); + UUID writerId); } diff --git a/src/main/java/com/somemore/domains/community/usecase/board/UpdateCommunityBoardUseCase.java b/src/main/java/com/somemore/domains/community/usecase/board/UpdateCommunityBoardUseCase.java index 6fe0287c4..d7aa5d3e8 100644 --- a/src/main/java/com/somemore/domains/community/usecase/board/UpdateCommunityBoardUseCase.java +++ b/src/main/java/com/somemore/domains/community/usecase/board/UpdateCommunityBoardUseCase.java @@ -8,6 +8,5 @@ public interface UpdateCommunityBoardUseCase { void updateCommunityBoard( CommunityBoardUpdateRequestDto requestDto, Long communityBoardId, - UUID writerId, - String imgUrl); + UUID writerId); } diff --git a/src/test/java/com/somemore/domains/community/controller/CommunityBoardCommandApiControllerTest.java b/src/test/java/com/somemore/domains/community/controller/CommunityBoardCommandApiControllerTest.java index 7cacaac34..bc8ac60c8 100644 --- a/src/test/java/com/somemore/domains/community/controller/CommunityBoardCommandApiControllerTest.java +++ b/src/test/java/com/somemore/domains/community/controller/CommunityBoardCommandApiControllerTest.java @@ -1,12 +1,10 @@ package com.somemore.domains.community.controller; import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.BDDMockito.given; import static org.mockito.BDDMockito.willDoNothing; -import static org.springframework.http.MediaType.MULTIPART_FORM_DATA; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.multipart; +import static org.springframework.http.MediaType.APPLICATION_JSON; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @@ -15,18 +13,12 @@ import com.somemore.domains.community.usecase.board.CreateCommunityBoardUseCase; import com.somemore.domains.community.usecase.board.DeleteCommunityBoardUseCase; import com.somemore.domains.community.usecase.board.UpdateCommunityBoardUseCase; -import com.somemore.global.imageupload.usecase.ImageUploadUseCase; import com.somemore.support.ControllerTestSupport; -import com.somemore.support.annotation.WithMockCustomUser; +import com.somemore.support.annotation.MockUser; import java.util.UUID; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.springframework.boot.test.mock.mockito.MockBean; -import org.springframework.http.MediaType; -import org.springframework.mock.web.MockHttpServletRequest; -import org.springframework.mock.web.MockMultipartFile; -import org.springframework.test.web.servlet.request.MockMultipartHttpServletRequestBuilder; -import org.springframework.test.web.servlet.request.RequestPostProcessor; public class CommunityBoardCommandApiControllerTest extends ControllerTestSupport { @@ -39,45 +31,26 @@ public class CommunityBoardCommandApiControllerTest extends ControllerTestSuppor @MockBean private DeleteCommunityBoardUseCase deleteCommunityBoardUseCase; - @MockBean - private ImageUploadUseCase imageUploadUseCase; - @Test @DisplayName("커뮤니티 게시글 등록 성공 테스트") - @WithMockCustomUser + @MockUser void createCommunityBoard_success() throws Exception { //given - CommunityBoardCreateRequestDto dto = CommunityBoardCreateRequestDto.builder() + CommunityBoardCreateRequestDto requestDto = CommunityBoardCreateRequestDto.builder() .title("11/29 OO도서관 봉사 같이 갈 사람 모집합니다.") .content("저 포함 5명이 같이 가면 좋을 거 같아요.") .build(); - MockMultipartFile imageFile = new MockMultipartFile( - "img_file", - "test-image.jpg", - MediaType.IMAGE_JPEG_VALUE, - "test image content".getBytes() - ); - - MockMultipartFile requestData = new MockMultipartFile( - "data", - "", - MediaType.APPLICATION_JSON_VALUE, - objectMapper.writeValueAsBytes(dto) - ); - - String mockImageUrl = "http://example.com/image/test-image.jpg"; + String requestBody = objectMapper.writeValueAsString(requestDto); long communityBoardId = 1L; - given(imageUploadUseCase.uploadImage(any())).willReturn(mockImageUrl); - given(createCommunityBoardUseCase.createCommunityBoard(any(), any(UUID.class), - anyString())).willReturn(communityBoardId); + given(createCommunityBoardUseCase.createCommunityBoard(any(), any(UUID.class))) + .willReturn(communityBoardId); //when - mockMvc.perform(multipart("/api/community-board") - .file(requestData) - .file(imageFile) - .contentType(MULTIPART_FORM_DATA) + mockMvc.perform(post("/api/community-board") + .content(requestBody) + .contentType(APPLICATION_JSON) .header("Authorization", "Bearer access-token")) //then .andExpect(status().isOk()) @@ -88,7 +61,7 @@ void createCommunityBoard_success() throws Exception { @Test @DisplayName("커뮤니티 게시글 수정 성공 테스트") - @WithMockCustomUser + @MockUser void updateCommunityBoard_success() throws Exception { //given CommunityBoardUpdateRequestDto requestDto = CommunityBoardUpdateRequestDto.builder() @@ -96,40 +69,15 @@ void updateCommunityBoard_success() throws Exception { .content("지난 주 토요일에 방문했는데 강추드려요.") .build(); - MockMultipartFile imageFile = new MockMultipartFile( - "img_file", - "test-image.jpg", - MediaType.IMAGE_JPEG_VALUE, - "test image content".getBytes() - ); - - MockMultipartFile requestData = new MockMultipartFile( - "data", - "", - MediaType.APPLICATION_JSON_VALUE, - objectMapper.writeValueAsBytes(requestDto) - ); - - String imageUrl = "http://example.com/image/test-image.jpg"; - - given(imageUploadUseCase.uploadImage(any())).willReturn(imageUrl); willDoNothing().given(updateCommunityBoardUseCase) - .updateCommunityBoard(any(), any(), any(UUID.class), anyString()); + .updateCommunityBoard(any(), any(), any(UUID.class)); - MockMultipartHttpServletRequestBuilder builder = multipart("/api/community-board/{id}", 1); - builder.with(new RequestPostProcessor() { - @Override - public MockHttpServletRequest postProcessRequest(MockHttpServletRequest request) { - request.setMethod("PUT"); - return request; - } - }); + String requestBody = objectMapper.writeValueAsString(requestDto); //when - mockMvc.perform(builder - .file(requestData) - .file(imageFile) - .contentType(MULTIPART_FORM_DATA) + mockMvc.perform(put("/api/community-board/{id}", 1) + .content(requestBody) + .contentType(APPLICATION_JSON) .header("Authorization", "Bearer access-token")) //then @@ -141,7 +89,7 @@ public MockHttpServletRequest postProcessRequest(MockHttpServletRequest request) @Test @DisplayName("커뮤니티 게시글 삭제 성공 테스트") - @WithMockCustomUser + @MockUser void deleteCommunityBoard_success() throws Exception { //given Long communityBoardId = 1L; diff --git a/src/test/java/com/somemore/domains/community/controller/CommunityCommentCommandApiControllerTest.java b/src/test/java/com/somemore/domains/community/controller/CommunityCommentCommandApiControllerTest.java index 59356fbd1..059efe26b 100644 --- a/src/test/java/com/somemore/domains/community/controller/CommunityCommentCommandApiControllerTest.java +++ b/src/test/java/com/somemore/domains/community/controller/CommunityCommentCommandApiControllerTest.java @@ -17,7 +17,7 @@ import com.somemore.domains.community.usecase.comment.DeleteCommunityCommentUseCase; import com.somemore.domains.community.usecase.comment.UpdateCommunityCommentUseCase; import com.somemore.support.ControllerTestSupport; -import com.somemore.support.annotation.WithMockCustomUser; +import com.somemore.support.annotation.MockUser; import java.util.UUID; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; @@ -40,7 +40,7 @@ public class CommunityCommentCommandApiControllerTest extends ControllerTestSupp @Test @DisplayName("커뮤니티 댓글 등록 성공 테스트") - @WithMockCustomUser + @MockUser void createCommunityComment() throws Exception { //given CommunityCommentCreateRequestDto requestDto = CommunityCommentCreateRequestDto.builder() @@ -66,7 +66,7 @@ void createCommunityComment() throws Exception { @Test @DisplayName("커뮤니티 댓글 수정 성공 테스트") - @WithMockCustomUser + @MockUser void updateCommunityComment_success() throws Exception { //given CommunityCommentUpdateRequestDto requestDto = CommunityCommentUpdateRequestDto.builder() @@ -92,7 +92,7 @@ void updateCommunityComment_success() throws Exception { @Test @DisplayName("커뮤니티 댓글 삭제 성공 테스트") - @WithMockCustomUser + @MockUser void deleteCommunityComment_success() throws Exception { //given willDoNothing().given(deleteCommunityCommentUseCase) diff --git a/src/test/java/com/somemore/domains/community/repository/CommunityBoardRepositoryTest.java b/src/test/java/com/somemore/domains/community/repository/CommunityBoardRepositoryTest.java index f5264f5de..869e22a51 100644 --- a/src/test/java/com/somemore/domains/community/repository/CommunityBoardRepositoryTest.java +++ b/src/test/java/com/somemore/domains/community/repository/CommunityBoardRepositoryTest.java @@ -3,10 +3,9 @@ import com.somemore.domains.community.domain.CommunityBoard; import com.somemore.domains.community.repository.board.CommunityBoardRepository; import com.somemore.domains.community.repository.mapper.CommunityBoardView; -import com.somemore.domains.volunteer.domain.Volunteer; -import com.somemore.domains.volunteer.repository.VolunteerRepository; -import com.somemore.global.auth.oauth.domain.OAuthProvider; import com.somemore.support.IntegrationTestSupport; +import com.somemore.volunteer.domain.NEWVolunteer; +import com.somemore.volunteer.repository.NEWVolunteerRepository; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; @@ -28,19 +27,17 @@ class CommunityBoardRepositoryTest extends IntegrationTestSupport { @Autowired private CommunityBoardRepository communityBoardRepository; @Autowired - private VolunteerRepository volunteerRepository; + private NEWVolunteerRepository volunteerRepository; private UUID writerId; @BeforeEach void setUp() { - String oAuthId1 = "example-oauth-id1"; - Volunteer volunteer1 = Volunteer.createDefault(OAuthProvider.NAVER, oAuthId1); + NEWVolunteer volunteer1 = NEWVolunteer.createDefault(UUID.randomUUID()); volunteerRepository.save(volunteer1); writerId = volunteer1.getId(); - String oAuthId2 = "example-oauth-id2"; - Volunteer volunteer2 = Volunteer.createDefault(OAuthProvider.NAVER, oAuthId2); + NEWVolunteer volunteer2 = NEWVolunteer.createDefault(UUID.randomUUID()); volunteerRepository.save(volunteer2); for (int i = 1; i <= 8; i++) { @@ -60,7 +57,7 @@ void setUp() { @Test void getCommunityBoardById() { //given - CommunityBoard communityBoard = createCommunityBoard(UUID.randomUUID()); + CommunityBoard communityBoard = createCommunityBoard(writerId); communityBoardRepository.save(communityBoard); //when @@ -70,21 +67,17 @@ void getCommunityBoardById() { assertThat(foundCommunityBoard).isNotNull(); assertThat(foundCommunityBoard.get().getTitle()).isEqualTo("테스트 커뮤니티 게시글 제목"); assertThat(foundCommunityBoard.get().getContent()).isEqualTo("테스트 커뮤니티 게시글 내용"); - assertThat(foundCommunityBoard.get().getImgUrl()).isEqualTo("http://community.example.com/123"); - assertThat(foundCommunityBoard.get().getWriterId()).isEqualTo(communityBoard.getWriterId()); + assertThat(foundCommunityBoard.get().getWriterId()).isEqualTo(writerId); } @DisplayName("삭제된 커뮤니티 id로 커뮤니티 상세 정보를 조회할 때 예외를 반환할 수 있다. (Repository)") @Test void getCommunityBoardByDeletedId() { //given - CommunityBoard communityBoard = createCommunityBoard(UUID.randomUUID()); - communityBoardRepository.save(communityBoard); - communityBoardRepository.deleteAllInBatch(); //when - Optional foundCommunityBoard = communityBoardRepository.findById(communityBoard.getId()); + Optional foundCommunityBoard = communityBoardRepository.findById(1L); //then assertThat(foundCommunityBoard).isEmpty(); diff --git a/src/test/java/com/somemore/domains/community/repository/CommunityCommentRepositoryTest.java b/src/test/java/com/somemore/domains/community/repository/CommunityCommentRepositoryTest.java index ca36b22a9..562f4b92e 100644 --- a/src/test/java/com/somemore/domains/community/repository/CommunityCommentRepositoryTest.java +++ b/src/test/java/com/somemore/domains/community/repository/CommunityCommentRepositoryTest.java @@ -5,10 +5,9 @@ import com.somemore.domains.community.repository.board.CommunityBoardRepository; import com.somemore.domains.community.repository.comment.CommunityCommentRepository; import com.somemore.domains.community.repository.mapper.CommunityCommentView; -import com.somemore.domains.volunteer.domain.Volunteer; -import com.somemore.domains.volunteer.repository.VolunteerRepository; -import com.somemore.global.auth.oauth.domain.OAuthProvider; import com.somemore.support.IntegrationTestSupport; +import com.somemore.volunteer.domain.NEWVolunteer; +import com.somemore.volunteer.repository.NEWVolunteerRepository; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; @@ -33,7 +32,7 @@ class CommunityCommentRepositoryTest extends IntegrationTestSupport { @Autowired CommunityBoardRepository communityBoardRepository; @Autowired - VolunteerRepository volunteerRepository; + NEWVolunteerRepository volunteerRepository; private Long boardId; private UUID writerId; @@ -41,8 +40,7 @@ class CommunityCommentRepositoryTest extends IntegrationTestSupport { @BeforeEach void setUp() { - String oAuthId = "example-oauth-id"; - Volunteer volunteer = Volunteer.createDefault(OAuthProvider.NAVER, oAuthId); + NEWVolunteer volunteer = NEWVolunteer.createDefault(UUID.randomUUID()); volunteerRepository.save(volunteer); writerId = volunteer.getId(); diff --git a/src/test/java/com/somemore/domains/community/service/board/CommunityBoardQueryServiceTest.java b/src/test/java/com/somemore/domains/community/service/board/CommunityBoardQueryServiceTest.java index 2aa176d77..0071c513d 100644 --- a/src/test/java/com/somemore/domains/community/service/board/CommunityBoardQueryServiceTest.java +++ b/src/test/java/com/somemore/domains/community/service/board/CommunityBoardQueryServiceTest.java @@ -7,12 +7,11 @@ import com.somemore.domains.community.repository.board.CommunityBoardRepository; import com.somemore.domains.community.usecase.board.CreateCommunityBoardUseCase; import com.somemore.domains.community.usecase.board.DeleteCommunityBoardUseCase; -import com.somemore.domains.volunteer.domain.Volunteer; -import com.somemore.domains.volunteer.repository.VolunteerRepository; -import com.somemore.global.auth.oauth.domain.OAuthProvider; import com.somemore.global.exception.BadRequestException; import com.somemore.global.exception.ExceptionMessage; import com.somemore.support.IntegrationTestSupport; +import com.somemore.volunteer.domain.NEWVolunteer; +import com.somemore.volunteer.repository.NEWVolunteerRepository; import org.assertj.core.api.ThrowableAssert; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; @@ -33,7 +32,7 @@ class CommunityBoardQueryServiceTest extends IntegrationTestSupport { @Autowired CommunityBoardRepository communityBoardRepository; @Autowired - VolunteerRepository volunteerRepository; + NEWVolunteerRepository volunteerRepository; @Autowired CenterRepository centerRepository; @Autowired @@ -48,12 +47,10 @@ class CommunityBoardQueryServiceTest extends IntegrationTestSupport { @BeforeEach void setUp() { - String oAuthId = "example-oauth-id"; - Volunteer volunteer = Volunteer.createDefault(OAuthProvider.NAVER, oAuthId); + NEWVolunteer volunteer = NEWVolunteer.createDefault(UUID.randomUUID()); volunteerRepository.save(volunteer); - String oAuthId2 = "example-oauth-id"; - Volunteer volunteer2 = Volunteer.createDefault(OAuthProvider.NAVER, oAuthId2); + NEWVolunteer volunteer2 = NEWVolunteer.createDefault(UUID.randomUUID()); volunteerRepository.save(volunteer2); writerId1 = volunteer.getId(); diff --git a/src/test/java/com/somemore/domains/community/service/board/CreateCommunityBoardServiceTest.java b/src/test/java/com/somemore/domains/community/service/board/CreateCommunityBoardServiceTest.java index ed86644a1..7e9010551 100644 --- a/src/test/java/com/somemore/domains/community/service/board/CreateCommunityBoardServiceTest.java +++ b/src/test/java/com/somemore/domains/community/service/board/CreateCommunityBoardServiceTest.java @@ -35,10 +35,9 @@ void createCommunityWithDto() { .build(); UUID writerId = UUID.randomUUID(); - String imgUrl = "https://image.test.url/123"; //when - Long communityId = createCommunityBoardService.createCommunityBoard(dto, writerId, imgUrl); + Long communityId = createCommunityBoardService.createCommunityBoard(dto, writerId); //then Optional communityBoard = communityBoardRepository.findById(communityId); @@ -48,32 +47,5 @@ void createCommunityWithDto() { 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 - CommunityBoardCreateRequestDto dto = CommunityBoardCreateRequestDto.builder() - .title("커뮤니티 테스트 제목") - .content("커뮤니티 테스트 내용") - .build(); - - UUID writerId = UUID.randomUUID(); - String imgUrl = null; - - //when - Long communityId = createCommunityBoardService.createCommunityBoard(dto, writerId, imgUrl); - - //then - Optional communityBoard = communityBoardRepository.findById(communityId); - - 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()).isEmpty(); } } diff --git a/src/test/java/com/somemore/domains/community/service/board/DeleteCommunityBoardServiceTest.java b/src/test/java/com/somemore/domains/community/service/board/DeleteCommunityBoardServiceTest.java index 0d7a03d59..f540dfb66 100644 --- a/src/test/java/com/somemore/domains/community/service/board/DeleteCommunityBoardServiceTest.java +++ b/src/test/java/com/somemore/domains/community/service/board/DeleteCommunityBoardServiceTest.java @@ -31,7 +31,6 @@ class DeleteCommunityBoardServiceTest extends IntegrationTestSupport { private UUID writerId; private Long communityId; - private String imgUrl; @BeforeEach void setUp() { @@ -41,9 +40,8 @@ void setUp() { .build(); writerId = UUID.randomUUID(); - imgUrl = "https://image.test.url/123"; - communityId = createCommunityBoardUseCase.createCommunityBoard(dto, writerId, imgUrl); + communityId = createCommunityBoardUseCase.createCommunityBoard(dto, writerId); } @AfterEach diff --git a/src/test/java/com/somemore/domains/community/service/board/UpdateCommunityBoardServiceTest.java b/src/test/java/com/somemore/domains/community/service/board/UpdateCommunityBoardServiceTest.java index 0ff5a7fe2..a43d8ac07 100644 --- a/src/test/java/com/somemore/domains/community/service/board/UpdateCommunityBoardServiceTest.java +++ b/src/test/java/com/somemore/domains/community/service/board/UpdateCommunityBoardServiceTest.java @@ -32,7 +32,6 @@ class UpdateCommunityBoardServiceTest extends IntegrationTestSupport { private UUID writerId; private Long communityId; - private String imgUrl; @BeforeEach void setUp() { @@ -42,9 +41,8 @@ void setUp() { .build(); writerId = UUID.randomUUID(); - imgUrl = "https://image.test.url/123"; - communityId = createCommunityBoardUseCase.createCommunityBoard(dto, writerId, imgUrl); + communityId = createCommunityBoardUseCase.createCommunityBoard(dto, writerId); } @AfterEach @@ -62,10 +60,8 @@ void updateCommunityBoard() { .content("수정된 커뮤니티 테스트 내용") .build(); - String newImgUrl = "https://image.test.url/567"; - //when - updateCommunityBoardService.updateCommunityBoard(dto, communityId, writerId, newImgUrl); + updateCommunityBoardService.updateCommunityBoard(dto, communityId, writerId); //then Optional updatedCommunityBoard = communityBoardRepository.findById(communityId); @@ -74,7 +70,6 @@ void updateCommunityBoard() { assertThat(updatedCommunityBoard.get().getWriterId()).isEqualTo(writerId); assertThat(updatedCommunityBoard.get().getTitle()).isEqualTo("수정된 커뮤니티 테스트 제목"); assertThat(updatedCommunityBoard.get().getContent()).isEqualTo("수정된 커뮤니티 테스트 내용"); - assertThat(updatedCommunityBoard.get().getImgUrl()).isEqualTo("https://image.test.url/567"); } @DisplayName("작성자가 아닌 id로 커뮤니티 게시글을 수정하고자 할 때 예외를 던진다.") @@ -88,7 +83,7 @@ void updateCommunityBoardNotWriterId() { .build(); //when - ThrowableAssert.ThrowingCallable callable = () -> updateCommunityBoardService.updateCommunityBoard(dto, communityId, UUID.randomUUID(), null); + ThrowableAssert.ThrowingCallable callable = () -> updateCommunityBoardService.updateCommunityBoard(dto, communityId, UUID.randomUUID()); //then assertThatExceptionOfType(BadRequestException.class) diff --git a/src/test/java/com/somemore/domains/community/service/comment/CommunityCommentQueryServiceTest.java b/src/test/java/com/somemore/domains/community/service/comment/CommunityCommentQueryServiceTest.java index 8d58d371d..c6e31d942 100644 --- a/src/test/java/com/somemore/domains/community/service/comment/CommunityCommentQueryServiceTest.java +++ b/src/test/java/com/somemore/domains/community/service/comment/CommunityCommentQueryServiceTest.java @@ -6,10 +6,9 @@ import com.somemore.domains.community.repository.board.CommunityBoardRepository; import com.somemore.domains.community.repository.comment.CommunityCommentRepository; import com.somemore.domains.community.usecase.comment.DeleteCommunityCommentUseCase; -import com.somemore.domains.volunteer.domain.Volunteer; -import com.somemore.domains.volunteer.repository.VolunteerRepository; -import com.somemore.global.auth.oauth.domain.OAuthProvider; import com.somemore.support.IntegrationTestSupport; +import com.somemore.volunteer.domain.NEWVolunteer; +import com.somemore.volunteer.repository.NEWVolunteerRepository; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; @@ -31,7 +30,7 @@ class CommunityCommentQueryServiceTest extends IntegrationTestSupport { @Autowired private CommunityBoardRepository communityBoardRepository; @Autowired - private VolunteerRepository volunteerRepository; + private NEWVolunteerRepository volunteerRepository; @Autowired private DeleteCommunityCommentUseCase deleteCommunityCommentUseCase; @@ -40,8 +39,7 @@ class CommunityCommentQueryServiceTest extends IntegrationTestSupport { @BeforeEach void setUp() { - String oAuthId1 = "example-oauth-id"; - Volunteer volunteer1 = Volunteer.createDefault(OAuthProvider.NAVER, oAuthId1); + NEWVolunteer volunteer1 = NEWVolunteer.createDefault(UUID.randomUUID()); volunteerRepository.save(volunteer1); writerId = volunteer1.getId(); diff --git a/src/test/java/com/somemore/domains/community/service/comment/CreateCommunityCommentServiceTest.java b/src/test/java/com/somemore/domains/community/service/comment/CreateCommunityCommentServiceTest.java index 9019228c7..a60351385 100644 --- a/src/test/java/com/somemore/domains/community/service/comment/CreateCommunityCommentServiceTest.java +++ b/src/test/java/com/somemore/domains/community/service/comment/CreateCommunityCommentServiceTest.java @@ -44,7 +44,7 @@ void setUp() { writerId = UUID.randomUUID(); - CommunityBoard communityBoard = communityBoardRepository.save(boardDto.toEntity(writerId, "https://test.image/123")); + CommunityBoard communityBoard = communityBoardRepository.save(boardDto.toEntity(writerId)); boardId = communityBoard.getId(); } diff --git a/src/test/java/com/somemore/domains/community/service/comment/DeleteCommunityCommentServiceTest.java b/src/test/java/com/somemore/domains/community/service/comment/DeleteCommunityCommentServiceTest.java index aec187f82..5efe8f3aa 100644 --- a/src/test/java/com/somemore/domains/community/service/comment/DeleteCommunityCommentServiceTest.java +++ b/src/test/java/com/somemore/domains/community/service/comment/DeleteCommunityCommentServiceTest.java @@ -43,7 +43,7 @@ void setUp() { writerId = UUID.randomUUID(); - CommunityBoard communityBoard = communityBoardRepository.save(boardDto.toEntity(writerId, "https://test.image/123")); + CommunityBoard communityBoard = communityBoardRepository.save(boardDto.toEntity(writerId)); boardId = communityBoard.getId(); CommunityCommentCreateRequestDto dto = CommunityCommentCreateRequestDto.builder() diff --git a/src/test/java/com/somemore/domains/community/service/comment/UpdateCommunityCommentServiceTest.java b/src/test/java/com/somemore/domains/community/service/comment/UpdateCommunityCommentServiceTest.java index 4005631d1..2e99fee05 100644 --- a/src/test/java/com/somemore/domains/community/service/comment/UpdateCommunityCommentServiceTest.java +++ b/src/test/java/com/somemore/domains/community/service/comment/UpdateCommunityCommentServiceTest.java @@ -46,7 +46,7 @@ void setUp() { writerId = UUID.randomUUID(); - CommunityBoard communityBoard = communityBoardRepository.save(boardDto.toEntity(writerId, "https://test.image/123")); + CommunityBoard communityBoard = communityBoardRepository.save(boardDto.toEntity(writerId)); boardId = communityBoard.getId(); CommunityCommentCreateRequestDto commentDto = CommunityCommentCreateRequestDto.builder() diff --git a/src/test/java/com/somemore/support/fixture/CommunityBoardFixture.java b/src/test/java/com/somemore/support/fixture/CommunityBoardFixture.java index 080e44f35..7010bfd25 100644 --- a/src/test/java/com/somemore/support/fixture/CommunityBoardFixture.java +++ b/src/test/java/com/somemore/support/fixture/CommunityBoardFixture.java @@ -8,7 +8,6 @@ public class CommunityBoardFixture { public static final String TITLE = "테스트 커뮤니티 게시글 제목"; public static final String CONTENT = "테스트 커뮤니티 게시글 내용"; - public static final String IMG_URL = "http://community.example.com/123"; private CommunityBoardFixture() { @@ -18,7 +17,6 @@ public static CommunityBoard createCommunityBoard() { return CommunityBoard.builder() .title(TITLE) .content(CONTENT) - .imgUrl(IMG_URL) .writerId(UUID.randomUUID()) .build(); } @@ -27,7 +25,6 @@ public static CommunityBoard createCommunityBoard(UUID writerId) { return CommunityBoard.builder() .title(TITLE) .content(CONTENT) - .imgUrl(IMG_URL) .writerId(writerId) .build(); } @@ -35,7 +32,6 @@ public static CommunityBoard createCommunityBoard(String title, UUID writerId) { return CommunityBoard.builder() .title(title) .content(CONTENT) - .imgUrl(IMG_URL) .writerId(writerId) .build(); } @@ -43,7 +39,6 @@ public static CommunityBoard createCommunityBoard(String title, String content, return CommunityBoard.builder() .title(title) .content(content) - .imgUrl(IMG_URL) .writerId(writerId) .build(); }