diff --git a/src/main/java/com/genius/gitget/admin/topic/dto/TopicCreateRequest.java b/src/main/java/com/genius/gitget/admin/topic/dto/TopicCreateRequest.java deleted file mode 100644 index 1ed238fd..00000000 --- a/src/main/java/com/genius/gitget/admin/topic/dto/TopicCreateRequest.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.genius.gitget.admin.topic.dto; - -import lombok.Builder; - -@Builder -public record TopicCreateRequest( - String title, - String tags, - String description, - int pointPerPerson, - String notice -) { -} diff --git a/src/main/java/com/genius/gitget/admin/topic/service/TopicService.java b/src/main/java/com/genius/gitget/admin/topic/service/TopicService.java deleted file mode 100644 index 6b22a5d8..00000000 --- a/src/main/java/com/genius/gitget/admin/topic/service/TopicService.java +++ /dev/null @@ -1,87 +0,0 @@ -package com.genius.gitget.admin.topic.service; - -import com.genius.gitget.admin.topic.domain.Topic; -import com.genius.gitget.admin.topic.dto.TopicCreateRequest; -import com.genius.gitget.admin.topic.dto.TopicDetailResponse; -import com.genius.gitget.admin.topic.dto.TopicPagingResponse; -import com.genius.gitget.admin.topic.dto.TopicUpdateRequest; -import com.genius.gitget.admin.topic.repository.TopicRepository; -import com.genius.gitget.global.file.dto.FileResponse; -import com.genius.gitget.global.file.service.FilesService; -import com.genius.gitget.global.util.exception.BusinessException; -import com.genius.gitget.global.util.exception.ErrorCode; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Pageable; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -@Service -@RequiredArgsConstructor -@Slf4j -@Transactional(readOnly = true) -public class TopicService { - private final TopicRepository topicRepository; - private final FilesService filesService; - - // 토픽 리스트 요청 - public Page getAllTopics(Pageable pageable) { - Page topics = topicRepository.findAllById(pageable); - return topics.map(this::mapToTopicPagingResponse); - } - - private TopicPagingResponse mapToTopicPagingResponse(Topic topic) { - FileResponse fileResponse = filesService.convertToFileResponse(topic.getFiles()); - return TopicPagingResponse.createByEntity(topic, fileResponse); - } - - // 토픽 상세정보 요청 - public TopicDetailResponse getTopicById(Long id) { - Topic topic = topicRepository.findById(id) - .orElseThrow(() -> new BusinessException(ErrorCode.TOPIC_NOT_FOUND)); - FileResponse fileResponse = filesService.convertToFileResponse(topic.getFiles()); - return TopicDetailResponse.createByEntity(topic, fileResponse); - } - - // 토픽 생성 요청 - @Transactional - public Long createTopic(TopicCreateRequest topicCreateRequest) { - Topic topic = Topic.builder() - .title(topicCreateRequest.title()) - .description(topicCreateRequest.description()) - .tags(topicCreateRequest.tags()) - .pointPerPerson(topicCreateRequest.pointPerPerson()) - .notice(topicCreateRequest.notice()) - .build(); - - Topic savedTopic = topicRepository.save(topic); - - return savedTopic.getId(); - } - - // 토픽 업데이트 요청 - @Transactional - public Long updateTopic(Long id, TopicUpdateRequest topicUpdateRequest) { - Topic topic = topicRepository.findById(id) - .orElseThrow(() -> new BusinessException(ErrorCode.TOPIC_NOT_FOUND)); - - // 서버에서 한번 더 검사 - boolean hasInstance = !topic.getInstanceList().isEmpty(); - if (hasInstance) { - topic.updateExistInstance(topicUpdateRequest.description()); - } else { - topic.updateNotExistInstance(topicUpdateRequest.title(), topicUpdateRequest.description(), - topicUpdateRequest.tags(), topicUpdateRequest.notice(), topicUpdateRequest.pointPerPerson()); - } - return topicRepository.save(topic).getId(); - } - - // 토픽 삭제 요청 - @Transactional - public void deleteTopic(Long id) { - Topic topic = topicRepository.findById(id) - .orElseThrow(() -> new BusinessException(ErrorCode.TOPIC_NOT_FOUND)); - topicRepository.delete(topic); - } -} diff --git a/src/main/java/com/genius/gitget/challenge/instance/domain/Instance.java b/src/main/java/com/genius/gitget/challenge/instance/domain/Instance.java index 996bd8f3..3a445ec7 100644 --- a/src/main/java/com/genius/gitget/challenge/instance/domain/Instance.java +++ b/src/main/java/com/genius/gitget/challenge/instance/domain/Instance.java @@ -1,7 +1,7 @@ package com.genius.gitget.challenge.instance.domain; -import com.genius.gitget.admin.topic.domain.Topic; +import com.genius.gitget.topic.domain.Topic; import com.genius.gitget.challenge.certification.util.DateUtil; import com.genius.gitget.challenge.instance.dto.crud.InstanceCreateRequest; import com.genius.gitget.challenge.likes.domain.Likes; diff --git a/src/main/java/com/genius/gitget/challenge/instance/service/InstanceService.java b/src/main/java/com/genius/gitget/challenge/instance/service/InstanceService.java index 54b06415..1bc30561 100644 --- a/src/main/java/com/genius/gitget/challenge/instance/service/InstanceService.java +++ b/src/main/java/com/genius/gitget/challenge/instance/service/InstanceService.java @@ -4,8 +4,8 @@ import static com.genius.gitget.global.util.exception.ErrorCode.INVALID_INSTANCE_DATE; import static com.genius.gitget.global.util.exception.ErrorCode.TOPIC_NOT_FOUND; -import com.genius.gitget.admin.topic.domain.Topic; -import com.genius.gitget.admin.topic.repository.TopicRepository; +import com.genius.gitget.topic.domain.Topic; +import com.genius.gitget.topic.repository.TopicRepository; import com.genius.gitget.challenge.instance.domain.Instance; import com.genius.gitget.challenge.instance.dto.crud.InstanceCreateRequest; import com.genius.gitget.challenge.instance.dto.crud.InstanceDetailResponse; diff --git a/src/main/java/com/genius/gitget/global/file/service/FileHolderFinder.java b/src/main/java/com/genius/gitget/global/file/service/FileHolderFinder.java index 5055e753..8fc5ce1e 100644 --- a/src/main/java/com/genius/gitget/global/file/service/FileHolderFinder.java +++ b/src/main/java/com/genius/gitget/global/file/service/FileHolderFinder.java @@ -4,7 +4,7 @@ import static com.genius.gitget.global.util.exception.ErrorCode.MEMBER_NOT_FOUND; import static com.genius.gitget.global.util.exception.ErrorCode.TOPIC_NOT_FOUND; -import com.genius.gitget.admin.topic.repository.TopicRepository; +import com.genius.gitget.topic.repository.TopicRepository; import com.genius.gitget.challenge.instance.repository.InstanceRepository; import com.genius.gitget.challenge.user.repository.UserRepository; import com.genius.gitget.global.file.domain.FileHolder; diff --git a/src/main/java/com/genius/gitget/profile/service/ProfileService.java b/src/main/java/com/genius/gitget/profile/service/ProfileService.java index 3e446632..f4a07d5e 100644 --- a/src/main/java/com/genius/gitget/profile/service/ProfileService.java +++ b/src/main/java/com/genius/gitget/profile/service/ProfileService.java @@ -5,8 +5,8 @@ import static com.genius.gitget.challenge.participant.domain.JoinResult.SUCCESS; import static com.genius.gitget.challenge.participant.domain.JoinStatus.YES; -import com.genius.gitget.admin.signout.Signout; -import com.genius.gitget.admin.signout.SignoutRepository; +import com.genius.gitget.signout.Signout; +import com.genius.gitget.signout.SignoutRepository; import com.genius.gitget.challenge.participant.domain.JoinResult; import com.genius.gitget.challenge.participant.domain.Participant; import com.genius.gitget.challenge.user.domain.User; diff --git a/src/main/java/com/genius/gitget/admin/signout/Signout.java b/src/main/java/com/genius/gitget/signout/Signout.java similarity index 96% rename from src/main/java/com/genius/gitget/admin/signout/Signout.java rename to src/main/java/com/genius/gitget/signout/Signout.java index 5b807206..0590f5dc 100644 --- a/src/main/java/com/genius/gitget/admin/signout/Signout.java +++ b/src/main/java/com/genius/gitget/signout/Signout.java @@ -1,4 +1,4 @@ -package com.genius.gitget.admin.signout; +package com.genius.gitget.signout; import jakarta.persistence.Column; import jakarta.persistence.Entity; diff --git a/src/main/java/com/genius/gitget/admin/signout/SignoutRepository.java b/src/main/java/com/genius/gitget/signout/SignoutRepository.java similarity index 88% rename from src/main/java/com/genius/gitget/admin/signout/SignoutRepository.java rename to src/main/java/com/genius/gitget/signout/SignoutRepository.java index 2a064d8a..1d8e1ca0 100644 --- a/src/main/java/com/genius/gitget/admin/signout/SignoutRepository.java +++ b/src/main/java/com/genius/gitget/signout/SignoutRepository.java @@ -1,4 +1,4 @@ -package com.genius.gitget.admin.signout; +package com.genius.gitget.signout; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; diff --git a/src/main/java/com/genius/gitget/admin/topic/controller/TopicController.java b/src/main/java/com/genius/gitget/topic/controller/TopicController.java similarity index 77% rename from src/main/java/com/genius/gitget/admin/topic/controller/TopicController.java rename to src/main/java/com/genius/gitget/topic/controller/TopicController.java index 9fe968ae..947dc79a 100644 --- a/src/main/java/com/genius/gitget/admin/topic/controller/TopicController.java +++ b/src/main/java/com/genius/gitget/topic/controller/TopicController.java @@ -1,17 +1,17 @@ -package com.genius.gitget.admin.topic.controller; +package com.genius.gitget.topic.controller; import static com.genius.gitget.global.util.exception.SuccessCode.CREATED; import static com.genius.gitget.global.util.exception.SuccessCode.SUCCESS; -import com.genius.gitget.admin.topic.dto.TopicCreateRequest; -import com.genius.gitget.admin.topic.dto.TopicDetailResponse; -import com.genius.gitget.admin.topic.dto.TopicIndexResponse; -import com.genius.gitget.admin.topic.dto.TopicPagingResponse; -import com.genius.gitget.admin.topic.dto.TopicUpdateRequest; -import com.genius.gitget.admin.topic.service.TopicService; import com.genius.gitget.global.util.response.dto.CommonResponse; import com.genius.gitget.global.util.response.dto.PagingResponse; import com.genius.gitget.global.util.response.dto.SingleResponse; +import com.genius.gitget.topic.dto.TopicCreateRequest; +import com.genius.gitget.topic.dto.TopicDetailResponse; +import com.genius.gitget.topic.dto.TopicIndexResponse; +import com.genius.gitget.topic.dto.TopicPagingResponse; +import com.genius.gitget.topic.dto.TopicUpdateRequest; +import com.genius.gitget.topic.serviceFacade.TopicFacade; import lombok.RequiredArgsConstructor; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; @@ -31,26 +31,26 @@ @RequiredArgsConstructor @RequestMapping("/api/admin/topic") public class TopicController { - - private final TopicService topicService; + private final TopicFacade topicFacade; // 토픽 리스트 요청 @GetMapping public ResponseEntity> getAllTopics( @PageableDefault(size = 5, direction = Sort.Direction.ASC) Pageable pageable) { - Page allTopics = topicService.getAllTopics(pageable); + Page topicPagingResponse = topicFacade.findTopics(pageable); return ResponseEntity.ok().body( - new PagingResponse<>(SUCCESS.getStatus(), SUCCESS.getMessage(), allTopics) + new PagingResponse<>(SUCCESS.getStatus(), SUCCESS.getMessage(), topicPagingResponse) ); } // 토픽 상세 정보 요청 @GetMapping("/{id}") public ResponseEntity> getTopicById(@PathVariable Long id) { - TopicDetailResponse topicDetail = topicService.getTopicById(id); + TopicDetailResponse topicDetailResponse = topicFacade.findOne(id); + return ResponseEntity.ok().body( - new SingleResponse<>(SUCCESS.getStatus(), SUCCESS.getMessage(), topicDetail) + new SingleResponse<>(SUCCESS.getStatus(), SUCCESS.getMessage(), topicDetailResponse) ); } @@ -58,8 +58,9 @@ public ResponseEntity> getTopicById(@PathVar @PostMapping public ResponseEntity> createTopic( @RequestBody TopicCreateRequest topicCreateRequest) { - Long topicId = topicService.createTopic(topicCreateRequest); - TopicIndexResponse topicUpdateResponse = new TopicIndexResponse(topicId); + + Long topic = topicFacade.create(topicCreateRequest); + TopicIndexResponse topicUpdateResponse = new TopicIndexResponse(topic); return ResponseEntity.ok().body( new SingleResponse<>( @@ -72,8 +73,9 @@ public ResponseEntity> createTopic( public ResponseEntity> updateTopic( @PathVariable Long id, @RequestBody TopicUpdateRequest topicUpdateRequest) { - Long topicId = topicService.updateTopic(id, topicUpdateRequest); - TopicIndexResponse topicUpdateResponse = new TopicIndexResponse(topicId); + + Long updateTopic = topicFacade.update(id, topicUpdateRequest); + TopicIndexResponse topicUpdateResponse = new TopicIndexResponse(updateTopic); return ResponseEntity.ok().body( new SingleResponse<>(SUCCESS.getStatus(), SUCCESS.getMessage(), topicUpdateResponse) @@ -83,7 +85,9 @@ public ResponseEntity> updateTopic( // 토픽 삭제 요청 @DeleteMapping("/{id}") public ResponseEntity deleteTopic(@PathVariable Long id) { - topicService.deleteTopic(id); + + topicFacade.delete(id); + return ResponseEntity.ok().body( new CommonResponse(SUCCESS.getStatus(), SUCCESS.getMessage()) ); diff --git a/src/main/java/com/genius/gitget/admin/topic/domain/Topic.java b/src/main/java/com/genius/gitget/topic/domain/Topic.java similarity index 96% rename from src/main/java/com/genius/gitget/admin/topic/domain/Topic.java rename to src/main/java/com/genius/gitget/topic/domain/Topic.java index 9f419fe2..7758d313 100644 --- a/src/main/java/com/genius/gitget/admin/topic/domain/Topic.java +++ b/src/main/java/com/genius/gitget/topic/domain/Topic.java @@ -1,4 +1,4 @@ -package com.genius.gitget.admin.topic.domain; +package com.genius.gitget.topic.domain; import com.genius.gitget.challenge.instance.domain.Instance; import com.genius.gitget.global.file.domain.FileHolder; @@ -60,7 +60,6 @@ public Topic(String title, String description, String tags, String notice, int p this.pointPerPerson = pointPerPerson; } - //== 비즈니스 로직 ==// public void updateExistInstance(String description) { this.description = description; } diff --git a/src/main/java/com/genius/gitget/topic/dto/TopicCreateRequest.java b/src/main/java/com/genius/gitget/topic/dto/TopicCreateRequest.java new file mode 100644 index 00000000..4af0369b --- /dev/null +++ b/src/main/java/com/genius/gitget/topic/dto/TopicCreateRequest.java @@ -0,0 +1,23 @@ +package com.genius.gitget.topic.dto; + +import com.genius.gitget.topic.domain.Topic; +import lombok.Builder; + +@Builder +public record TopicCreateRequest( + String title, + String tags, + String description, + int pointPerPerson, + String notice +) { + public static Topic from(TopicCreateRequest topicCreateRequest) { + return Topic.builder() + .title(topicCreateRequest.title()) + .description(topicCreateRequest.description()) + .tags(topicCreateRequest.tags()) + .pointPerPerson(topicCreateRequest.pointPerPerson()) + .notice(topicCreateRequest.notice()) + .build(); + } +} diff --git a/src/main/java/com/genius/gitget/admin/topic/dto/TopicDetailResponse.java b/src/main/java/com/genius/gitget/topic/dto/TopicDetailResponse.java similarity index 78% rename from src/main/java/com/genius/gitget/admin/topic/dto/TopicDetailResponse.java rename to src/main/java/com/genius/gitget/topic/dto/TopicDetailResponse.java index f74be401..c13e4693 100644 --- a/src/main/java/com/genius/gitget/admin/topic/dto/TopicDetailResponse.java +++ b/src/main/java/com/genius/gitget/topic/dto/TopicDetailResponse.java @@ -1,7 +1,7 @@ -package com.genius.gitget.admin.topic.dto; +package com.genius.gitget.topic.dto; -import com.genius.gitget.admin.topic.domain.Topic; import com.genius.gitget.global.file.dto.FileResponse; +import com.genius.gitget.topic.domain.Topic; import lombok.Builder; @Builder @@ -13,7 +13,8 @@ public record TopicDetailResponse( String notice, int pointPerPerson, FileResponse fileResponse) { - public static TopicDetailResponse createByEntity(Topic topic, FileResponse fileResponse) { + + public static TopicDetailResponse of(Topic topic, FileResponse fileResponse) { return TopicDetailResponse.builder() .topicId(topic.getId()) .title(topic.getTitle()) diff --git a/src/main/java/com/genius/gitget/admin/topic/dto/TopicIndexResponse.java b/src/main/java/com/genius/gitget/topic/dto/TopicIndexResponse.java similarity index 59% rename from src/main/java/com/genius/gitget/admin/topic/dto/TopicIndexResponse.java rename to src/main/java/com/genius/gitget/topic/dto/TopicIndexResponse.java index 6e525cd3..e7d5769d 100644 --- a/src/main/java/com/genius/gitget/admin/topic/dto/TopicIndexResponse.java +++ b/src/main/java/com/genius/gitget/topic/dto/TopicIndexResponse.java @@ -1,4 +1,4 @@ -package com.genius.gitget.admin.topic.dto; +package com.genius.gitget.topic.dto; public record TopicIndexResponse( Long topicId diff --git a/src/main/java/com/genius/gitget/admin/topic/dto/TopicPagingResponse.java b/src/main/java/com/genius/gitget/topic/dto/TopicPagingResponse.java similarity index 67% rename from src/main/java/com/genius/gitget/admin/topic/dto/TopicPagingResponse.java rename to src/main/java/com/genius/gitget/topic/dto/TopicPagingResponse.java index a4e091ba..7b673edb 100644 --- a/src/main/java/com/genius/gitget/admin/topic/dto/TopicPagingResponse.java +++ b/src/main/java/com/genius/gitget/topic/dto/TopicPagingResponse.java @@ -1,13 +1,13 @@ -package com.genius.gitget.admin.topic.dto; +package com.genius.gitget.topic.dto; -import com.genius.gitget.admin.topic.domain.Topic; import com.genius.gitget.global.file.dto.FileResponse; +import com.genius.gitget.topic.domain.Topic; import lombok.Builder; @Builder public record TopicPagingResponse(Long topicId, String title, FileResponse fileResponse) { - public static TopicPagingResponse createByEntity(Topic topic, FileResponse fileResponse) { + public static TopicPagingResponse of(Topic topic, FileResponse fileResponse) { return TopicPagingResponse.builder() .topicId(topic.getId()) .title(topic.getTitle()) diff --git a/src/main/java/com/genius/gitget/admin/topic/dto/TopicUpdateRequest.java b/src/main/java/com/genius/gitget/topic/dto/TopicUpdateRequest.java similarity index 81% rename from src/main/java/com/genius/gitget/admin/topic/dto/TopicUpdateRequest.java rename to src/main/java/com/genius/gitget/topic/dto/TopicUpdateRequest.java index 6898bcd0..d0326bc2 100644 --- a/src/main/java/com/genius/gitget/admin/topic/dto/TopicUpdateRequest.java +++ b/src/main/java/com/genius/gitget/topic/dto/TopicUpdateRequest.java @@ -1,4 +1,4 @@ -package com.genius.gitget.admin.topic.dto; +package com.genius.gitget.topic.dto; import lombok.Builder; diff --git a/src/main/java/com/genius/gitget/admin/topic/repository/TopicRepository.java b/src/main/java/com/genius/gitget/topic/repository/TopicRepository.java similarity index 79% rename from src/main/java/com/genius/gitget/admin/topic/repository/TopicRepository.java rename to src/main/java/com/genius/gitget/topic/repository/TopicRepository.java index 4e0b7318..3ab98006 100644 --- a/src/main/java/com/genius/gitget/admin/topic/repository/TopicRepository.java +++ b/src/main/java/com/genius/gitget/topic/repository/TopicRepository.java @@ -1,6 +1,6 @@ -package com.genius.gitget.admin.topic.repository; +package com.genius.gitget.topic.repository; -import com.genius.gitget.admin.topic.domain.Topic; +import com.genius.gitget.topic.domain.Topic; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; diff --git a/src/main/java/com/genius/gitget/topic/service/TopicService.java b/src/main/java/com/genius/gitget/topic/service/TopicService.java new file mode 100644 index 00000000..9a450145 --- /dev/null +++ b/src/main/java/com/genius/gitget/topic/service/TopicService.java @@ -0,0 +1,42 @@ +package com.genius.gitget.topic.service; + +import com.genius.gitget.global.util.exception.BusinessException; +import com.genius.gitget.global.util.exception.ErrorCode; +import com.genius.gitget.topic.domain.Topic; +import com.genius.gitget.topic.repository.TopicRepository; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +@Service +@RequiredArgsConstructor +@Slf4j +@Transactional(readOnly = true) +public class TopicService { + private final TopicRepository topicRepository; + + public Page findTopics(Pageable pageable) { + return topicRepository.findAllById(pageable); + } + + public Topic findOne(Long id) { + return topicRepository.findById(id) + .orElseThrow(() -> new BusinessException(ErrorCode.TOPIC_NOT_FOUND)); + } + + @Transactional + public Long create(Topic topic) { + Topic savedTopic = topicRepository.save(topic); + return savedTopic.getId(); + } + + @Transactional + public void delete(Long id) { + Topic topic = topicRepository.findById(id) + .orElseThrow(() -> new BusinessException(ErrorCode.TOPIC_NOT_FOUND)); + topicRepository.delete(topic); + } +} diff --git a/src/main/java/com/genius/gitget/topic/serviceFacade/TopicFacade.java b/src/main/java/com/genius/gitget/topic/serviceFacade/TopicFacade.java new file mode 100644 index 00000000..18558cff --- /dev/null +++ b/src/main/java/com/genius/gitget/topic/serviceFacade/TopicFacade.java @@ -0,0 +1,21 @@ +package com.genius.gitget.topic.serviceFacade; + +import com.genius.gitget.topic.dto.TopicCreateRequest; +import com.genius.gitget.topic.dto.TopicDetailResponse; +import com.genius.gitget.topic.dto.TopicPagingResponse; +import com.genius.gitget.topic.dto.TopicUpdateRequest; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; + +public interface TopicFacade { + + Page findTopics(Pageable pageable); + + TopicDetailResponse findOne(Long id); + + Long create(TopicCreateRequest topicCreateRequest); + + Long update(Long id, TopicUpdateRequest topicUpdateRequest); + + void delete(Long id); +} diff --git a/src/main/java/com/genius/gitget/topic/serviceFacade/TopicFacadeImpl.java b/src/main/java/com/genius/gitget/topic/serviceFacade/TopicFacadeImpl.java new file mode 100644 index 00000000..f91e2a07 --- /dev/null +++ b/src/main/java/com/genius/gitget/topic/serviceFacade/TopicFacadeImpl.java @@ -0,0 +1,67 @@ +package com.genius.gitget.topic.serviceFacade; + +import com.genius.gitget.global.file.dto.FileResponse; +import com.genius.gitget.global.file.service.FilesService; +import com.genius.gitget.topic.domain.Topic; +import com.genius.gitget.topic.dto.TopicCreateRequest; +import com.genius.gitget.topic.dto.TopicDetailResponse; +import com.genius.gitget.topic.dto.TopicPagingResponse; +import com.genius.gitget.topic.dto.TopicUpdateRequest; +import com.genius.gitget.topic.service.TopicService; +import lombok.RequiredArgsConstructor; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +@RequiredArgsConstructor +@Component +@Transactional +public class TopicFacadeImpl implements TopicFacade { + + private final FilesService filesService; + private final TopicService topicService; + + @Override + public Page findTopics(Pageable pageable) { + Page findTopics = topicService.findTopics(pageable); + return findTopics.map(this::convertToTopicPagingResponseDto); + } + + @Override + public TopicDetailResponse findOne(Long id) { + Topic findTopic = topicService.findOne(id); + FileResponse fileResponse = filesService.convertToFileResponse(findTopic.getFiles()); + return TopicDetailResponse.of(findTopic, fileResponse); + } + + @Override + public Long create(TopicCreateRequest topicCreateRequest) { + Topic topic = TopicCreateRequest.from(topicCreateRequest); + return topicService.create(topic); + } + + @Override + public Long update(Long id, TopicUpdateRequest topicUpdateRequest) { + Topic topic = topicService.findOne(id); + + if (!topic.getInstanceList().isEmpty()) { + topic.updateExistInstance(topicUpdateRequest.description()); + return topicService.create(topic); + } + + topic.updateNotExistInstance(topicUpdateRequest.title(), topicUpdateRequest.description(), + topicUpdateRequest.tags(), topicUpdateRequest.notice(), topicUpdateRequest.pointPerPerson()); + return topicService.create(topic); + } + + @Override + public void delete(Long id) { + topicService.delete(id); + } + + private TopicPagingResponse convertToTopicPagingResponseDto(Topic topic) { + FileResponse fileResponse = filesService.convertToFileResponse(topic.getFiles()); + return TopicPagingResponse.of(topic, fileResponse); + } +} diff --git a/src/test/java/com/genius/gitget/admin/topic/controller/TopicControllerTest.java b/src/test/java/com/genius/gitget/admin/topic/controller/TopicControllerTest.java index a85d65fd..fbc14eb4 100644 --- a/src/test/java/com/genius/gitget/admin/topic/controller/TopicControllerTest.java +++ b/src/test/java/com/genius/gitget/admin/topic/controller/TopicControllerTest.java @@ -8,8 +8,8 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; import com.fasterxml.jackson.databind.ObjectMapper; -import com.genius.gitget.admin.topic.domain.Topic; -import com.genius.gitget.admin.topic.repository.TopicRepository; +import com.genius.gitget.topic.domain.Topic; +import com.genius.gitget.topic.repository.TopicRepository; import com.genius.gitget.challenge.user.domain.Role; import com.genius.gitget.global.file.service.FilesService; import com.genius.gitget.util.TokenTestUtil; diff --git a/src/test/java/com/genius/gitget/admin/topic/repository/TopicRepositoryTest.java b/src/test/java/com/genius/gitget/admin/topic/repository/TopicRepositoryTest.java index 9e9c0870..4babf210 100644 --- a/src/test/java/com/genius/gitget/admin/topic/repository/TopicRepositoryTest.java +++ b/src/test/java/com/genius/gitget/admin/topic/repository/TopicRepositoryTest.java @@ -1,12 +1,16 @@ package com.genius.gitget.admin.topic.repository; +import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.assertEquals; -import com.genius.gitget.admin.topic.domain.Topic; +import com.genius.gitget.topic.domain.Topic; +import com.genius.gitget.topic.repository.TopicRepository; import jakarta.transaction.Transactional; import java.util.Optional; -import org.assertj.core.api.Assertions; +import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; @@ -14,24 +18,28 @@ import org.springframework.data.domain.PageRequest; import org.springframework.test.annotation.Rollback; +//@ExtendWith(SpringExtension.class) +//@DataJpaTest @SpringBootTest @Transactional @Rollback +@DisplayName("TopicRepository") public class TopicRepositoryTest { - public Topic topic, topicA; + Topic topicA, topicB; + @Autowired private TopicRepository topicRepository; @BeforeEach public void setup() { - topic = Topic.builder() + topicA = Topic.builder() .title("1일 1알고리즘") .description("하루에 한 문제씩 문제를 해결합니다.") .tags("BE, FE, CS") .pointPerPerson(100) .build(); - topicA = Topic.builder() + topicB = Topic.builder() .title("1일 2알고리즘") .description("하루에 한 문제씩 문제를 해결합니다.") .tags("BE, FE, CS") @@ -39,57 +47,148 @@ public void setup() { .build(); } - @Test - public void 토픽_저장() { - Topic savedTopic = topicRepository.save(topic); - assertEquals(topic.getId(), savedTopic.getId()); - assertEquals(topic.getTitle(), savedTopic.getTitle()); - assertEquals(topic.getDescription(), savedTopic.getDescription()); - } + @Nested + @DisplayName("save 메서드는") + class Describe_save { - @Test - public void 토픽_수정() { - Topic savedTopic = topicRepository.save(topic); - if (!topic.getInstanceList().isEmpty()) { - savedTopic.updateExistInstance("(수정) 하루에 두 문제씩 문제를 해결합니다."); - } else { - savedTopic.updateNotExistInstance("1일 1커밋", "하루에 1커밋 하기", "CS", "유의사항",300); + @BeforeEach + public void init() { + topicRepository.deleteAll(); } - assertEquals(topic.getId(), savedTopic.getId()); - assertEquals(topic.getTitle(), savedTopic.getTitle()); - assertEquals(topic.getDescription(), savedTopic.getDescription()); - } + @Nested + @DisplayName("토픽 객체가 주어질 때") + class Context_with_a_topic { + + @Test +// it_returns_4XX_if_saving_the_obj_fails + @DisplayName("객체 저장에 성공하면 저장된 객체를 반환합니다.") + public void it_returns_the_saved_obj_if_saving_an_obj_succeeds() { + Topic savedTopic = topicRepository.save(topicA); - @Test - public void 토픽_삭제() { - Topic savedTopic = topicRepository.save(topic); - topicRepository.delete(savedTopic); - Optional byId = topicRepository.findById(1L); - Assertions.assertThat(byId).isNotPresent(); + assertEquals(topicA.getId(), savedTopic.getId()); + assertEquals(topicA.getTitle(), savedTopic.getTitle()); + assertEquals(topicA.getDescription(), savedTopic.getDescription()); + } + } } - @Test - public void 토픽_리스트_조회() { - for (int i = 1; i <= 10; i++) { - topicRepository.save( - Topic.builder().title("user" + i + "L").build() - ); + @Nested + @DisplayName("search 메서드는") + class Describe_search { + + @Nested + @DisplayName("조회 조건에 따라") + class Context_with_a_topic { + + @BeforeEach + public void prepare() { + topicRepository.save(topicA); + topicRepository.save(topicB); + } + + @Test + @DisplayName("토픽 전체를 반환합니다.") + public void it_returns_topic_obj_list() { + Page topics = topicRepository.findAllById(PageRequest.of(0, 5)); + int topicCount = 0; + + for (Topic topic : topics) { + if (topic != null) { + topicCount++; + } + } + + assertThat(topicCount).isEqualTo(2); + } + + @Test + @DisplayName("특정 토픽을 반환합니다.") + public void it_returns_topic_obj() { + Optional topic = topicRepository.findById(topicA.getId()); + + assertThat(topic.get().getTitle()).isEqualTo("1일 1알고리즘"); + } } - Page allById = topicRepository.findAllById(PageRequest.of(0, 5)); - Assertions.assertThat(allById.getSize()).isEqualTo(5); + } + + + @Nested + @DisplayName("update 메서드는") + class Describe_update { + + @Nested + @DisplayName("토픽 정보를 수정하려고 할 때") + class Context_with_a_topic { + + @BeforeEach + public void init() { + topicRepository.save(topicA); + } + + @Test + @DisplayName("생성된 인스턴스가 존재하면 description만 수정할 수 있고, 없다면 모든 항목을 수정할 수 있다.") + public void it_returns_updated_obj() { + + Topic topic = topicRepository.findById(topicA.getId()).orElse(null); - for (Topic topic1 : allById) { - System.out.println("topic1.getTitle() = " + topic1.getTitle()); + boolean hasInstance = false; + if (!topic.getInstanceList().isEmpty()) { + hasInstance = true; + topic.updateExistInstance("(수정) 하루에 두 문제씩 문제를 해결합니다."); + } else { + topic.updateNotExistInstance("1일 2알고리즘", "(수정) 하루에 두 문제씩 문제를 해결합니다.", "CS", "유의사항", 30000); + } + + Topic savedTopic = topicRepository.save(topic); + + if (!hasInstance) { + assertEquals(topic.getId(), savedTopic.getId()); + assertEquals("(수정) 하루에 두 문제씩 문제를 해결합니다.", savedTopic.getDescription()); + } else { + assertEquals(topic.getId(), savedTopic.getId()); + assertEquals("(수정) 하루에 두 문제씩 문제를 해결합니다.", savedTopic.getDescription()); + assertEquals(30000, savedTopic.getPointPerPerson()); + } + } } } - @Test - public void 토픽_단건_조회() { - Topic savedTopic = topicRepository.save(topic); - Optional byId = topicRepository.findById(savedTopic.getId()); - Assertions.assertThat(byId.get().getTitle()).isEqualTo("1일 1알고리즘"); + @Nested + @DisplayName("delete 메서드는") + class Describe_delete { + + @Nested + @DisplayName("삭제하려는 토픽 ID가 주어질 때") + class Context_with_a_topic { + + @BeforeEach + public void init() { + topicRepository.save(topicA); + } + + @Test + @DisplayName("객체가 성공적으로 삭제되면, 다시 조회할 수 없다.") + public void it_cannot_be_retrieved_once_an_obj_is_successfully_deleted() { + Topic topic = topicRepository.findById(topicA.getId()).orElse(null); + assert topic != null; + topicRepository.delete(topic); + Topic findTopic = topicRepository.findById(topicA.getId()).orElse(null); + Assertions.assertThrows(NullPointerException.class, () -> { + findTopic.getId(); + }); + } + + @Test + @DisplayName("DB에 해당 객체가 없으면, 삭제할 수 없다.") + public void it_cannot_be_deleted_if_the_obj_does_not_exist() { + Assertions.assertThrows(Exception.class, () -> { + Topic topic = topicRepository.findById(topicB.getId()).orElse(null); + topicRepository.delete(topic); + }); + } + } } -} +} \ No newline at end of file diff --git a/src/test/java/com/genius/gitget/admin/topic/service/TopicFacadeTest.java b/src/test/java/com/genius/gitget/admin/topic/service/TopicFacadeTest.java new file mode 100644 index 00000000..d1723c54 --- /dev/null +++ b/src/test/java/com/genius/gitget/admin/topic/service/TopicFacadeTest.java @@ -0,0 +1,139 @@ +package com.genius.gitget.admin.topic.service; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import com.genius.gitget.global.util.exception.BusinessException; +import com.genius.gitget.topic.domain.Topic; +import com.genius.gitget.topic.dto.TopicCreateRequest; +import com.genius.gitget.topic.dto.TopicDetailResponse; +import com.genius.gitget.topic.dto.TopicUpdateRequest; +import com.genius.gitget.topic.serviceFacade.TopicFacade; +import jakarta.transaction.Transactional; +import org.assertj.core.api.Assertions; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +@Transactional +public class TopicFacadeTest { + Topic topicA, topicB; + String fileType; + + @Autowired + TopicFacade topicFacade; + + @BeforeEach + public void setup() { + topicA = Topic.builder() + .title("1일 1알고리즘") + .description("하루에 한 문제씩 문제를 해결합니다.") + .tags("BE, FE, CS") + .pointPerPerson(100) + .build(); + + topicB = Topic.builder() + .title("1일 2알고리즘") + .description("하루에 한 문제씩 문제를 해결합니다.") + .tags("BE, FE, CS") + .pointPerPerson(300) + .build(); + + fileType = "topic"; + } + + private TopicCreateRequest getTopicCreateRequest() { + return TopicCreateRequest.builder() + .title(topicA.getTitle()) + .description(topicA.getDescription()) + .tags(topicA.getTags()) + .pointPerPerson(topicA.getPointPerPerson()) + .notice(topicA.getNotice()) + .build(); + } + + private TopicUpdateRequest getTopicUpdateRequest(String title, String description, String tags, int pointPerPersion, + String notice) { + return TopicUpdateRequest.builder() + .title(title) + .description(description) + .tags(tags) + .pointPerPerson(pointPerPersion) + .notice(notice).build(); + } + + @Nested + @DisplayName("토픽 생성 메서드는") + class Describe_topic_create { + + @Nested + @DisplayName("topicCreateRequestDto가 들어오면") + class Context_with_a_topicCreateRequestDto { + + @Test + @DisplayName("토픽을 생성한다.") + public void it_returns_2XX_if_the_topic_was_created_successfully() { + TopicCreateRequest topicCreateRequest = getTopicCreateRequest(); + + Long savedTopicId = topicFacade.create(topicCreateRequest); + + TopicDetailResponse topicById = topicFacade.findOne(savedTopicId); + + Assertions.assertThat(topicById.title()).isEqualTo(topicCreateRequest.title()); + } + } + } + + @Nested + @DisplayName("토픽 수정 메서드는") + class Describe_topic_update { + + @Nested + @DisplayName("TopicUpdateRequestDto가 들어오면") + class Context_with_a_TopicUpdateRequestDto { + + @Test + @DisplayName("토픽 내용을 수정한다.") + public void it_returns_2XX_if_the_topic_is_modified() { + TopicCreateRequest topicCreateRequest = getTopicCreateRequest(); + Long savedTopicId = topicFacade.create(topicCreateRequest); + + TopicUpdateRequest topicUpdateRequest = getTopicUpdateRequest("1일 5커밋", topicA.getDescription(), + topicA.getTags(), topicA.getPointPerPerson(), topicA.getNotice()); + + topicFacade.update(savedTopicId, topicUpdateRequest); + + TopicDetailResponse findTopic = topicFacade.findOne(savedTopicId); + Assertions.assertThat(findTopic.title()).isEqualTo("1일 5커밋"); + } + } + } + + @Nested + @DisplayName("토픽 삭제 메서드는") + class Describe_topic_delete { + + @Nested + @DisplayName("삭제할 토픽 Id가 주어질 때") + class Context_with_a_TopicUpdateRequestDto { + + @Test + @DisplayName("해당 토픽을 삭제한다.") + public void it_returns_2XX_if_the_topic_is_successfully_deleted() throws Exception { + TopicCreateRequest topicCreateRequest = getTopicCreateRequest(); + Long savedTopicId = topicFacade.create(topicCreateRequest); + + topicFacade.delete(savedTopicId); + + try { + topicFacade.findOne(savedTopicId); + } catch (BusinessException e) { + assertEquals("해당 토픽을 찾을 수 없습니다.", e.getMessage()); + } + } + } + } +} diff --git a/src/test/java/com/genius/gitget/admin/topic/service/TopicServiceTest.java b/src/test/java/com/genius/gitget/admin/topic/service/TopicServiceTest.java deleted file mode 100644 index 1ad86ab3..00000000 --- a/src/test/java/com/genius/gitget/admin/topic/service/TopicServiceTest.java +++ /dev/null @@ -1,110 +0,0 @@ -package com.genius.gitget.admin.topic.service; - -import com.genius.gitget.admin.topic.domain.Topic; -import com.genius.gitget.admin.topic.dto.TopicCreateRequest; -import com.genius.gitget.admin.topic.dto.TopicDetailResponse; -import com.genius.gitget.admin.topic.dto.TopicUpdateRequest; -import com.genius.gitget.admin.topic.repository.TopicRepository; -import com.genius.gitget.global.util.exception.BusinessException; -import jakarta.transaction.Transactional; -import java.util.Optional; -import org.assertj.core.api.Assertions; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.annotation.Rollback; - -@SpringBootTest -@Transactional -@Rollback -public class TopicServiceTest { - Topic topic, topicA; - String fileType; - @Autowired - TopicService topicService; - @Autowired - TopicRepository topicRepository; - - @BeforeEach - public void setup() { - topic = Topic.builder() - .title("1일 1알고리즘") - .description("하루에 한 문제씩 문제를 해결합니다.") - .tags("BE, FE, CS") - .pointPerPerson(100) - .build(); - - topicA = Topic.builder() - .title("1일 2알고리즘") - .description("하루에 한 문제씩 문제를 해결합니다.") - .tags("BE, FE, CS") - .pointPerPerson(300) - .build(); - - fileType = "topic"; - } - - @Test - public void 토픽_생성() throws Exception { - //given - TopicCreateRequest topicCreateRequest = getTopicCreateRequest(); - - Long savedTopicId = topicService.createTopic(topicCreateRequest); - - //when - TopicDetailResponse topicById = topicService.getTopicById(savedTopicId); - - //then - Assertions.assertThat(topicById.title()).isEqualTo(topicCreateRequest.title()); - } - - @Test - public void 토픽_수정() throws Exception { - //given - TopicCreateRequest topicCreateRequest = getTopicCreateRequest(); - Long savedTopicId = topicService.createTopic(topicCreateRequest); - - //when - TopicUpdateRequest topicUpdateRequest = TopicUpdateRequest.builder() - .title("1일 5커밋") - .description(topic.getDescription()) - .tags(topic.getTags()) - .pointPerPerson(topic.getPointPerPerson()) - .notice(topic.getNotice()).build(); - - topicService.updateTopic(savedTopicId, topicUpdateRequest); - - //then - Optional findTopic = topicRepository.findById(savedTopicId); - Topic findUpdatedTopic = findTopic.get(); - Assertions.assertThat(findUpdatedTopic.getTitle()).isEqualTo("1일 5커밋"); - } - - @Test - public void 토픽_삭제() throws Exception { - //given - TopicCreateRequest topicCreateRequest = getTopicCreateRequest(); - Long savedTopicId = topicService.createTopic(topicCreateRequest); - - //when - topicService.deleteTopic(savedTopicId); - - //then - try { - topicService.getTopicById(savedTopicId); - } catch (BusinessException e) { - org.junit.jupiter.api.Assertions.assertEquals("해당 토픽을 찾을 수 없습니다.", e.getMessage()); - } - } - - private TopicCreateRequest getTopicCreateRequest() { - return TopicCreateRequest.builder() - .title(topic.getTitle()) - .description(topic.getDescription()) - .tags(topic.getTags()) - .pointPerPerson(topic.getPointPerPerson()) - .notice(topic.getNotice()) - .build(); - } -} diff --git a/src/test/java/com/genius/gitget/challenge/home/controller/InstanceHomeControllerTest.java b/src/test/java/com/genius/gitget/challenge/home/controller/InstanceHomeControllerTest.java index c7dfa4f0..4a53a3a4 100644 --- a/src/test/java/com/genius/gitget/challenge/home/controller/InstanceHomeControllerTest.java +++ b/src/test/java/com/genius/gitget/challenge/home/controller/InstanceHomeControllerTest.java @@ -5,8 +5,8 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; -import com.genius.gitget.admin.topic.domain.Topic; -import com.genius.gitget.admin.topic.repository.TopicRepository; +import com.genius.gitget.topic.domain.Topic; +import com.genius.gitget.topic.repository.TopicRepository; import com.genius.gitget.challenge.instance.domain.Instance; import com.genius.gitget.challenge.instance.domain.Progress; import com.genius.gitget.challenge.instance.repository.InstanceRepository; diff --git a/src/test/java/com/genius/gitget/challenge/home/service/InstanceHomeServiceTest.java b/src/test/java/com/genius/gitget/challenge/home/service/InstanceHomeServiceTest.java index 03776d0e..5030c4b6 100644 --- a/src/test/java/com/genius/gitget/challenge/home/service/InstanceHomeServiceTest.java +++ b/src/test/java/com/genius/gitget/challenge/home/service/InstanceHomeServiceTest.java @@ -2,8 +2,8 @@ import static org.assertj.core.api.Assertions.assertThat; -import com.genius.gitget.admin.topic.domain.Topic; -import com.genius.gitget.admin.topic.repository.TopicRepository; +import com.genius.gitget.topic.domain.Topic; +import com.genius.gitget.topic.repository.TopicRepository; import com.genius.gitget.challenge.instance.domain.Instance; import com.genius.gitget.challenge.instance.domain.Progress; import com.genius.gitget.challenge.instance.dto.home.HomeInstanceResponse; diff --git a/src/test/java/com/genius/gitget/challenge/instance/controller/InstanceControllerTest.java b/src/test/java/com/genius/gitget/challenge/instance/controller/InstanceControllerTest.java index 66e5626c..cc041148 100644 --- a/src/test/java/com/genius/gitget/challenge/instance/controller/InstanceControllerTest.java +++ b/src/test/java/com/genius/gitget/challenge/instance/controller/InstanceControllerTest.java @@ -8,8 +8,8 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; -import com.genius.gitget.admin.topic.domain.Topic; -import com.genius.gitget.admin.topic.repository.TopicRepository; +import com.genius.gitget.topic.domain.Topic; +import com.genius.gitget.topic.repository.TopicRepository; import com.genius.gitget.challenge.instance.domain.Instance; import com.genius.gitget.challenge.instance.domain.Progress; import com.genius.gitget.challenge.instance.repository.InstanceRepository; diff --git a/src/test/java/com/genius/gitget/challenge/instance/repository/InstanceSearchRepositoryTest.java b/src/test/java/com/genius/gitget/challenge/instance/repository/InstanceSearchRepositoryTest.java index 6c61ed1b..74493ecb 100644 --- a/src/test/java/com/genius/gitget/challenge/instance/repository/InstanceSearchRepositoryTest.java +++ b/src/test/java/com/genius/gitget/challenge/instance/repository/InstanceSearchRepositoryTest.java @@ -4,8 +4,8 @@ import static com.genius.gitget.challenge.instance.domain.Progress.DONE; import static com.genius.gitget.challenge.instance.domain.Progress.PREACTIVITY; -import com.genius.gitget.admin.topic.domain.Topic; -import com.genius.gitget.admin.topic.repository.TopicRepository; +import com.genius.gitget.topic.domain.Topic; +import com.genius.gitget.topic.repository.TopicRepository; import com.genius.gitget.challenge.instance.domain.Instance; import com.genius.gitget.challenge.instance.dto.crud.InstanceCreateRequest; import com.genius.gitget.challenge.instance.service.InstanceSearchService; diff --git a/src/test/java/com/genius/gitget/challenge/instance/service/InstanceSearchServiceTest.java b/src/test/java/com/genius/gitget/challenge/instance/service/InstanceSearchServiceTest.java index 2f6fb164..1f94bbfb 100644 --- a/src/test/java/com/genius/gitget/challenge/instance/service/InstanceSearchServiceTest.java +++ b/src/test/java/com/genius/gitget/challenge/instance/service/InstanceSearchServiceTest.java @@ -1,7 +1,7 @@ package com.genius.gitget.challenge.instance.service; -import com.genius.gitget.admin.topic.domain.Topic; -import com.genius.gitget.admin.topic.repository.TopicRepository; +import com.genius.gitget.topic.domain.Topic; +import com.genius.gitget.topic.repository.TopicRepository; import com.genius.gitget.challenge.instance.domain.Instance; import com.genius.gitget.challenge.instance.domain.Progress; import com.genius.gitget.challenge.instance.dto.crud.InstanceCreateRequest; diff --git a/src/test/java/com/genius/gitget/challenge/instance/service/InstanceServiceTest.java b/src/test/java/com/genius/gitget/challenge/instance/service/InstanceServiceTest.java index 2e085a3a..b2a2a082 100644 --- a/src/test/java/com/genius/gitget/challenge/instance/service/InstanceServiceTest.java +++ b/src/test/java/com/genius/gitget/challenge/instance/service/InstanceServiceTest.java @@ -3,8 +3,8 @@ import static org.junit.jupiter.api.Assertions.assertThrows; -import com.genius.gitget.admin.topic.domain.Topic; -import com.genius.gitget.admin.topic.repository.TopicRepository; +import com.genius.gitget.topic.domain.Topic; +import com.genius.gitget.topic.repository.TopicRepository; import com.genius.gitget.challenge.instance.domain.Instance; import com.genius.gitget.challenge.instance.domain.Progress; import com.genius.gitget.challenge.instance.dto.crud.InstanceCreateRequest; diff --git a/src/test/java/com/genius/gitget/challenge/likes/LikesTest.java b/src/test/java/com/genius/gitget/challenge/likes/LikesTest.java index ac8bf0cf..5d306842 100644 --- a/src/test/java/com/genius/gitget/challenge/likes/LikesTest.java +++ b/src/test/java/com/genius/gitget/challenge/likes/LikesTest.java @@ -4,8 +4,8 @@ import static com.genius.gitget.challenge.user.domain.Role.USER; import static com.genius.gitget.global.security.constants.ProviderInfo.GOOGLE; -import com.genius.gitget.admin.topic.domain.Topic; -import com.genius.gitget.admin.topic.repository.TopicRepository; +import com.genius.gitget.topic.domain.Topic; +import com.genius.gitget.topic.repository.TopicRepository; import com.genius.gitget.challenge.instance.domain.Instance; import com.genius.gitget.challenge.instance.domain.Progress; import com.genius.gitget.challenge.instance.repository.InstanceRepository; diff --git a/src/test/java/com/genius/gitget/challenge/likes/controller/LikesControllerTest.java b/src/test/java/com/genius/gitget/challenge/likes/controller/LikesControllerTest.java index 151fa76f..8e0b4ca1 100644 --- a/src/test/java/com/genius/gitget/challenge/likes/controller/LikesControllerTest.java +++ b/src/test/java/com/genius/gitget/challenge/likes/controller/LikesControllerTest.java @@ -9,8 +9,8 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; import com.fasterxml.jackson.databind.ObjectMapper; -import com.genius.gitget.admin.topic.domain.Topic; -import com.genius.gitget.admin.topic.repository.TopicRepository; +import com.genius.gitget.topic.domain.Topic; +import com.genius.gitget.topic.repository.TopicRepository; import com.genius.gitget.challenge.instance.domain.Instance; import com.genius.gitget.challenge.instance.domain.Progress; import com.genius.gitget.challenge.instance.repository.InstanceRepository; diff --git a/src/test/java/com/genius/gitget/challenge/likes/service/LikesServiceTest.java b/src/test/java/com/genius/gitget/challenge/likes/service/LikesServiceTest.java index f3a8e294..52880407 100644 --- a/src/test/java/com/genius/gitget/challenge/likes/service/LikesServiceTest.java +++ b/src/test/java/com/genius/gitget/challenge/likes/service/LikesServiceTest.java @@ -3,8 +3,8 @@ import static com.genius.gitget.global.security.constants.ProviderInfo.GITHUB; import static org.assertj.core.api.Assertions.assertThat; -import com.genius.gitget.admin.topic.domain.Topic; -import com.genius.gitget.admin.topic.repository.TopicRepository; +import com.genius.gitget.topic.domain.Topic; +import com.genius.gitget.topic.repository.TopicRepository; import com.genius.gitget.challenge.instance.domain.Instance; import com.genius.gitget.challenge.instance.domain.Progress; import com.genius.gitget.challenge.instance.repository.InstanceRepository; diff --git a/src/test/java/com/genius/gitget/payment/controller/PaymentControllerTest.java b/src/test/java/com/genius/gitget/payment/controller/PaymentControllerTest.java index cb76358d..8c56692d 100644 --- a/src/test/java/com/genius/gitget/payment/controller/PaymentControllerTest.java +++ b/src/test/java/com/genius/gitget/payment/controller/PaymentControllerTest.java @@ -7,7 +7,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; import com.fasterxml.jackson.databind.ObjectMapper; -import com.genius.gitget.admin.topic.repository.TopicRepository; +import com.genius.gitget.topic.repository.TopicRepository; import com.genius.gitget.global.file.service.FilesService; import com.genius.gitget.util.TokenTestUtil; import com.genius.gitget.util.WithMockCustomUser; diff --git a/src/test/java/com/genius/gitget/payment/service/PaymentServiceTest.java b/src/test/java/com/genius/gitget/payment/service/PaymentServiceTest.java index 4b91807d..cec5771c 100644 --- a/src/test/java/com/genius/gitget/payment/service/PaymentServiceTest.java +++ b/src/test/java/com/genius/gitget/payment/service/PaymentServiceTest.java @@ -4,7 +4,7 @@ import static com.genius.gitget.store.item.domain.ItemCategory.POINT_MULTIPLIER; import static org.assertj.core.api.Assertions.assertThat; -import com.genius.gitget.admin.topic.repository.TopicRepository; +import com.genius.gitget.topic.repository.TopicRepository; import com.genius.gitget.challenge.instance.repository.InstanceRepository; import com.genius.gitget.challenge.likes.repository.LikesRepository; import com.genius.gitget.challenge.likes.service.LikesService; diff --git a/src/test/java/com/genius/gitget/profile/controller/ProfileControllerTest.java b/src/test/java/com/genius/gitget/profile/controller/ProfileControllerTest.java index eb91d8a7..46a2d58c 100644 --- a/src/test/java/com/genius/gitget/profile/controller/ProfileControllerTest.java +++ b/src/test/java/com/genius/gitget/profile/controller/ProfileControllerTest.java @@ -8,8 +8,8 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; import com.fasterxml.jackson.databind.ObjectMapper; -import com.genius.gitget.admin.topic.domain.Topic; -import com.genius.gitget.admin.topic.repository.TopicRepository; +import com.genius.gitget.topic.domain.Topic; +import com.genius.gitget.topic.repository.TopicRepository; import com.genius.gitget.challenge.instance.domain.Instance; import com.genius.gitget.challenge.instance.domain.Progress; import com.genius.gitget.challenge.instance.repository.InstanceRepository; diff --git a/src/test/java/com/genius/gitget/profile/service/ProfileServiceTest.java b/src/test/java/com/genius/gitget/profile/service/ProfileServiceTest.java index 0e19d837..6974a374 100644 --- a/src/test/java/com/genius/gitget/profile/service/ProfileServiceTest.java +++ b/src/test/java/com/genius/gitget/profile/service/ProfileServiceTest.java @@ -3,10 +3,10 @@ import static com.genius.gitget.global.security.constants.ProviderInfo.GITHUB; import static org.junit.jupiter.api.Assertions.assertThrows; -import com.genius.gitget.admin.signout.Signout; -import com.genius.gitget.admin.signout.SignoutRepository; -import com.genius.gitget.admin.topic.domain.Topic; -import com.genius.gitget.admin.topic.repository.TopicRepository; +import com.genius.gitget.signout.Signout; +import com.genius.gitget.signout.SignoutRepository; +import com.genius.gitget.topic.domain.Topic; +import com.genius.gitget.topic.repository.TopicRepository; import com.genius.gitget.challenge.instance.domain.Instance; import com.genius.gitget.challenge.instance.domain.Progress; import com.genius.gitget.challenge.instance.repository.InstanceRepository;