diff --git a/src/main/java/com/aliens/backend/board/controller/BoardController.java b/src/main/java/com/aliens/backend/board/controller/BoardController.java index 431c6514..b9e21e2f 100644 --- a/src/main/java/com/aliens/backend/board/controller/BoardController.java +++ b/src/main/java/com/aliens/backend/board/controller/BoardController.java @@ -37,7 +37,7 @@ public BoardController(final BoardService boardService, final BoardReadService b @PostMapping("/normal") public SuccessResponse createBoard(@Login final LoginMember loginMember, @RequestPart final BoardCreateRequest request, - @RequestPart final List boardImages) { + @RequestPart(required = false) final List boardImages) { boardService.postNormalBoard(request, boardImages, loginMember); return SuccessResponse.of(BoardSuccess.POST_BOARD_SUCCESS); } diff --git a/src/main/java/com/aliens/backend/board/service/CommentEventPublisher.java b/src/main/java/com/aliens/backend/board/service/CommentEventPublisher.java new file mode 100644 index 00000000..b015f69b --- /dev/null +++ b/src/main/java/com/aliens/backend/board/service/CommentEventPublisher.java @@ -0,0 +1,41 @@ +package com.aliens.backend.board.service; + +import com.aliens.backend.board.controller.dto.request.ChildCommentCreateRequest; +import com.aliens.backend.board.controller.dto.request.ParentCommentCreateRequest; +import com.aliens.backend.board.domain.Board; +import com.aliens.backend.notification.controller.dto.NotificationRequest; +import org.springframework.context.ApplicationEventPublisher; +import org.springframework.stereotype.Component; + +import java.util.List; + +@Component +public class CommentEventPublisher { + private final ApplicationEventPublisher eventPublisher; + + public CommentEventPublisher(ApplicationEventPublisher eventPublisher) { + this.eventPublisher = eventPublisher; + } + + public void sendParentCommentNotification(Board board, + ParentCommentCreateRequest request) { + + eventPublisher.publishEvent(new NotificationRequest( + board.getCategory(), + board.getId(), + "\"" + request.content() + "\" 라는 댓글이 달렸습니다.", + List.of(board.getWriterId()))); + } + + public void sendChildCommentNotification(Board board, + ChildCommentCreateRequest request, + Long parentCommentMemberId) { + System.out.println("작성자 Id" + board.getWriterId()); + System.out.println("부모댓글 Id" + parentCommentMemberId); + eventPublisher.publishEvent(new NotificationRequest( + board.getCategory(), + board.getId(), + "\"" + request.content() + "\" 라는 댓글이 달렸습니다.", + List.of(board.getWriterId(), parentCommentMemberId))); + } +} diff --git a/src/main/java/com/aliens/backend/board/service/CommentService.java b/src/main/java/com/aliens/backend/board/service/CommentService.java index b4950273..5f31f14a 100644 --- a/src/main/java/com/aliens/backend/board/service/CommentService.java +++ b/src/main/java/com/aliens/backend/board/service/CommentService.java @@ -15,8 +15,6 @@ import com.aliens.backend.global.exception.RestApiException; import com.aliens.backend.global.response.error.BoardError; import com.aliens.backend.global.response.error.MemberError; -import com.aliens.backend.notification.controller.dto.NotificationRequest; -import org.springframework.context.ApplicationEventPublisher; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -30,10 +28,14 @@ public class CommentService { private final MemberRepository memberRepository; private final BoardRepository boardRepository; private final CommentCustomRepository commentCustomRepository; - private final ApplicationEventPublisher eventPublisher; + private final CommentEventPublisher eventPublisher; - public CommentService(final CommentRepository commentRepository, final MemberRepository memberRepository, final BoardRepository boardRepository, final CommentCustomRepository commentCustomRepository, final ApplicationEventPublisher eventPublisher) { + public CommentService(final CommentRepository commentRepository, + final MemberRepository memberRepository, + final BoardRepository boardRepository, + final CommentCustomRepository commentCustomRepository, + final CommentEventPublisher eventPublisher) { this.commentRepository = commentRepository; this.memberRepository = memberRepository; this.boardRepository = boardRepository; @@ -46,27 +48,19 @@ public void postParentComment(final ParentCommentCreateRequest request, final LoginMember loginMember) { Member member = getMember(loginMember); Board board = findBoard(request.boardId()); + Comment comment = Comment.parentOf(request.content(), board, member); board.addComment(comment); commentRepository.save(comment); if(!comment.isWriter(board.getWriterId())) { - sendParentCommentNotification(board, request); + eventPublisher.sendParentCommentNotification(board, request); } } - private void sendParentCommentNotification(Board board, - ParentCommentCreateRequest request) { - eventPublisher.publishEvent(new NotificationRequest( - board.getCategory(), - board.getId(), - "\"" + request.content() + "\" 라는 댓글이 달렸습니다.", - List.of(board.getWriterId()))); - } - private Board findBoard(final Long boardId) { - return boardRepository.findById(boardId).orElseThrow(() -> new RestApiException(MemberError.NULL_MEMBER)); + return boardRepository.findById(boardId).orElseThrow(() -> new RestApiException(BoardError.INVALID_BOARD_ID)); } private Member getMember(final LoginMember loginMember) { @@ -78,7 +72,7 @@ public void postChildComment(final ChildCommentCreateRequest request, final LoginMember loginMember) { Member member = getMember(loginMember); Board board = findBoard(request.boardId()); - Comment parentComment = commentRepository.findById(request.parentCommentId()).orElseThrow(() -> new RestApiException(MemberError.NULL_MEMBER)); + Comment parentComment = findComment(request); Comment childComment = Comment.childOf(request, board, member); board.addComment(childComment); @@ -86,18 +80,12 @@ public void postChildComment(final ChildCommentCreateRequest request, commentRepository.save(childComment); if(!parentComment.isWriter(member.getId())) { - sendChildCommentNotification(board, request, parentComment.getWriterId()); + eventPublisher.sendChildCommentNotification(board, request, parentComment.getWriterId()); } } - private void sendChildCommentNotification(Board board, - ChildCommentCreateRequest request, - Long parentCommentMemberId) { - eventPublisher.publishEvent(new NotificationRequest( - board.getCategory(), - board.getId(), - "\"" + request.content() + "\" 라는 댓글이 달렸습니다.", - List.of(board.getWriterId(), parentCommentMemberId))); + private Comment findComment(ChildCommentCreateRequest request) { + return commentRepository.findById(request.parentCommentId()).orElseThrow(() -> new RestApiException(MemberError.NULL_MEMBER)); } @Transactional(readOnly = true) @@ -108,12 +96,19 @@ public List getCommentedBoardPage(final LoginMember loginMember, @Transactional(readOnly = true) public List getCommentsByBoardId(final Long boardId) { List comments = commentCustomRepository.getCommentsByBoardId(boardId); + ArrayList result = new ArrayList<>(); + sortComments(comments, result); + return result; + } + + private void sortComments(List comments, ArrayList result) { for(Comment comment : comments) { if (!comment.isParent()){ continue; } + CommentResponse parentComment = comment.getCommentResponse(); List childrenComment = comments.stream() @@ -121,15 +116,14 @@ public List getCommentsByBoardId(final Long boardId) { .map(Comment::getCommentResponse) .toList(); - if(isNotEmtyChildren(childrenComment)) { + if(isNotEmptyChildren(childrenComment)) { parentComment.setChildren(childrenComment); } result.add(parentComment); } - return result; } - private boolean isNotEmtyChildren(final List childrenComment) { + private boolean isNotEmptyChildren(final List childrenComment) { return childrenComment != null && !childrenComment.isEmpty(); } diff --git a/src/main/java/com/aliens/backend/email/service/EmailService.java b/src/main/java/com/aliens/backend/email/service/EmailService.java index 09c969e1..9937da10 100644 --- a/src/main/java/com/aliens/backend/email/service/EmailService.java +++ b/src/main/java/com/aliens/backend/email/service/EmailService.java @@ -20,15 +20,13 @@ public class EmailService { private final EmailAuthenticationRepository emailAuthenticationRepository; private final EmailSender emailSender; - private final SymmetricKeyEncoder symmetricKeyEncoder; private final MemberRepository memberRepository; public EmailService(final EmailAuthenticationRepository emailRepository, final EmailSender emailSender, - final SymmetricKeyEncoder symmetricKeyEncoder, final MemberRepository memberRepository) { + final MemberRepository memberRepository) { this.emailAuthenticationRepository = emailRepository; this.emailSender = emailSender; - this.symmetricKeyEncoder = symmetricKeyEncoder; this.memberRepository = memberRepository; } @@ -50,7 +48,7 @@ public String sendAuthenticationEmail(final String email) { EmailAuthentication emailEntity = new EmailAuthentication(email); emailAuthenticationRepository.save(emailEntity); - String emailToken = symmetricKeyEncoder.encrypt(String.valueOf(emailEntity.getId())); + String emailToken = SymmetricKeyEncoder.encrypt(email); emailSender.sendAuthenticationEmail(email, emailToken); return EmailResponse.EMAIL_SEND_SUCCESS.getMessage(); @@ -70,14 +68,14 @@ private void deleteExistsEmail(final String email) { @Transactional public String authenticateEmail(final String token) { - Long emailEntityId = Long.valueOf(symmetricKeyEncoder.decrypt(token)); - EmailAuthentication emailEntity = getEmailAuthentication(emailEntityId); + String email = SymmetricKeyEncoder.decrypt(token); + EmailAuthentication emailEntity = getEmailAuthenticationByEmail(email); emailEntity.authenticate(); return EmailResponse.EMAIL_AUTHENTICATION_SUCCESS.getMessage(); } - private EmailAuthentication getEmailAuthentication(final Long emailEntityId) { - return emailAuthenticationRepository.findById(emailEntityId).orElseThrow(() -> new RestApiException(EmailError.NULL_EMAIL)); + private EmailAuthentication getEmailAuthenticationByEmail(final String email) { + return emailAuthenticationRepository.findByEmail(email).orElseThrow(() -> new RestApiException(EmailError.NULL_EMAIL)); } @EventListener diff --git a/src/main/java/com/aliens/backend/mathcing/domain/MatchingRound.java b/src/main/java/com/aliens/backend/mathcing/domain/MatchingRound.java index ad8a1367..0d3c1ebf 100644 --- a/src/main/java/com/aliens/backend/mathcing/domain/MatchingRound.java +++ b/src/main/java/com/aliens/backend/mathcing/domain/MatchingRound.java @@ -32,22 +32,10 @@ public Long getRound() { return round; } - public LocalDateTime getRequestStartTime() { - return requestStartTime; - } - - public LocalDateTime getRequestEndTime() { - return requestEndTime; - } - public LocalDateTime getValidStartTime() { return validStartTime; } - public LocalDateTime getValidEndTime() { - return validEndTime; - } - public DayOfWeek getDayOfWeek() { return requestStartTime.getDayOfWeek(); } @@ -90,4 +78,8 @@ public String toString() { ", validEndTime=" + validEndTime + '}'; } + + public boolean isFirstTime() { + return round == 1; + } } diff --git a/src/main/java/com/aliens/backend/mathcing/service/MatchingProcessService.java b/src/main/java/com/aliens/backend/mathcing/service/MatchingProcessService.java index 882eadd3..c7cee87e 100644 --- a/src/main/java/com/aliens/backend/mathcing/service/MatchingProcessService.java +++ b/src/main/java/com/aliens/backend/mathcing/service/MatchingProcessService.java @@ -2,7 +2,6 @@ import com.aliens.backend.auth.controller.dto.LoginMember; import com.aliens.backend.auth.domain.Member; -import com.aliens.backend.auth.domain.repository.MemberRepository; import com.aliens.backend.block.domain.Block; import com.aliens.backend.block.domain.repository.BlockRepository; import com.aliens.backend.chat.domain.ChatParticipant; @@ -11,7 +10,6 @@ import com.aliens.backend.global.exception.RestApiException; import com.aliens.backend.global.response.error.ChatError; import com.aliens.backend.global.response.error.MatchingError; -import com.aliens.backend.global.response.error.MemberError; import com.aliens.backend.mathcing.business.MatchingBusiness; import com.aliens.backend.mathcing.business.model.Participant; import com.aliens.backend.mathcing.controller.dto.request.MatchingOperateRequest; @@ -28,7 +26,6 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.time.Clock; import java.util.List; @Service @@ -40,8 +37,6 @@ public class MatchingProcessService { private final BlockRepository blockRepository; private final MatchingEventPublisher eventPublisher; private final ChatParticipantRepository chatParticipantRepository; - private final MemberRepository memberRepository; - private final Clock clock; public MatchingProcessService(final MatchingBusiness matchingBusiness, final MatchingRoundRepository matchingRoundRepository, @@ -49,9 +44,7 @@ public MatchingProcessService(final MatchingBusiness matchingBusiness, final MatchingResultRepository matchingResultRepository, final BlockRepository blockRepository, final MatchingEventPublisher eventPublisher, - final ChatParticipantRepository chatParticipantRepository, - final MemberRepository memberRepository, - final Clock clock) { + final ChatParticipantRepository chatParticipantRepository) { this.matchingRoundRepository = matchingRoundRepository; this.matchingApplicationRepository = matchingApplicationRepository; this.matchingResultRepository = matchingResultRepository; @@ -59,8 +52,6 @@ public MatchingProcessService(final MatchingBusiness matchingBusiness, this.blockRepository = blockRepository; this.eventPublisher = eventPublisher; this.chatParticipantRepository = chatParticipantRepository; - this.memberRepository = memberRepository; - this.clock = clock; } @Scheduled(cron = "${matching.round.start}") @@ -75,12 +66,59 @@ public void operateMatching() { saveMatchingResult(currentRound, matchedParticipants); } + private MatchingRound getCurrentRound() { + return matchingRoundRepository.findCurrentRound() + .orElseThrow(()-> new RestApiException(MatchingError.NOT_FOUND_MATCHING_ROUND)); + } + + private MatchingOperateRequest createOperateRequest(final MatchingRound matchingRound) { + List matchingApplications = getMatchingApplications(matchingRound); + List previousMatchingResult = getPreviousMatchingResults(); + List participantBlockHistory = getBlockListByMatchingApplications(matchingApplications); + return MatchingOperateRequest.of(matchingApplications, previousMatchingResult, participantBlockHistory); + } + + private void saveMatchingResult(final MatchingRound matchingRound, final List participants) { + participants.stream() + .flatMap(participant -> participant.partners().stream() + .map(partner -> MatchingResult.from(matchingRound, participant, partner))) + .forEach(this::matchBetween); + + participants.stream() + .filter(participant -> !participant.hasPartner()) + .forEach(Participant::expireMatch); + + if (hasMatchedParticipants(participants)) { + eventPublisher.createChatRoom(participants); + eventPublisher.sendNotification(participants); + } + } + @Transactional(readOnly = true) public List findMatchingResult(final LoginMember loginMember) { MatchingRound currentRound = getCurrentRound(); List matchingResults = getMatchingResults(currentRound, loginMember); - checkHasApplied(matchingResults); + checkIsNotApplied(matchingResults); + return makePartnerInfos(loginMember, matchingResults); + } + + private void checkIsNotApplied(List matchingResults) { + if(matchingResults == null || matchingResults.isEmpty()) { + throw new RestApiException(MatchingError.NOT_FOUND_MATCHING_APPLICATION_INFO); + } + } + + private List getMatchingResults(final MatchingRound matchingRound, final LoginMember loginMember) { + Long round = matchingRound.getRound(); + + if(!matchingRound.isFirstTime()) { + round = matchingRound.getPreviousRound(); + } + + return matchingResultRepository.findAllByMatchingRoundAndMemberId(round, loginMember.memberId()); + } + private List makePartnerInfos(LoginMember loginMember, List matchingResults) { return matchingResults.stream() .map(result -> { MatchingApplication matchedMemberApplication = findMatchedMemberApplicationByRoundAndMemberId(result); @@ -92,15 +130,9 @@ public List findMatchingResult(final LoginMember loginMe .toList(); } - private List getMatchingResults(final MatchingRound matchingRound, final LoginMember loginMember) { - Member member = getMember(loginMember); - List matchingResults = matchingResultRepository - .findAllByMatchingRoundAndMemberId(matchingRound.getRound(), loginMember.memberId()); - if (member.hasPartner() && matchingResults.isEmpty()) { - return matchingResultRepository - .findAllByMatchingRoundAndMemberId(matchingRound.getPreviousRound(), loginMember.memberId()); - } - return matchingResults; + private MatchingApplication findMatchedMemberApplicationByRoundAndMemberId(MatchingResult result) { + return matchingApplicationRepository.findByMatchingRoundAndMemberId(result.getMatchingRound(), result.getMatchedMemberId()) + .orElseThrow(() -> new RestApiException(MatchingError.NOT_FOUND_MATCHING_APPLICATION_INFO)); } private ChatParticipant getChatParticipant(final LoginMember loginMember, final MatchingResult result) { @@ -108,11 +140,6 @@ private ChatParticipant getChatParticipant(final LoginMember loginMember, final .orElseThrow(() -> new RestApiException(ChatError.CHAT_ROOM_NOT_FOUND)); } - private MatchingApplication findMatchedMemberApplicationByRoundAndMemberId(MatchingResult result) { - return matchingApplicationRepository.findByMatchingRoundAndMemberId(result.getMatchingRound(), result.getMatchedMemberId()) - .orElseThrow(() -> new RestApiException(MatchingError.NOT_FOUND_MATCHING_APPLICATION_INFO)); - } - @Scheduled(cron = "${matching.round.end}") @Transactional public void expireMatching() { @@ -121,40 +148,10 @@ public void expireMatching() { eventPublisher.expireChatRoom(); } - private void saveMatchingResult(final MatchingRound matchingRound, final List participants) { - participants.stream() - .flatMap(participant -> participant.partners().stream() - .map(partner -> MatchingResult.from(matchingRound, participant, partner))) - .forEach(this::matchBetween); - participants.stream() - .filter(participant -> !participant.hasPartner()) - .forEach(Participant::expireMatch); - if (hasMatchedParticipants(participants)) { - eventPublisher.createChatRoom(participants); - eventPublisher.sendNotification(participants); - } - } - private boolean hasMatchedParticipants(List participants) { return !participants.stream().filter(Participant::hasPartner).toList().isEmpty(); } - private void checkHasApplied(final List matchingResults) { - if (matchingResults.isEmpty()) { - throw new RestApiException(MatchingError.NOT_FOUND_MATCHING_APPLICATION_INFO); - } - } - - private MatchingRound getCurrentRound() { - return matchingRoundRepository.findCurrentRound() - .orElseThrow(()-> new RestApiException(MatchingError.NOT_FOUND_MATCHING_ROUND)); - } - - private Member getMember(LoginMember loginMember) { - return memberRepository.findById(loginMember.memberId()) - .orElseThrow(() -> new RestApiException(MemberError.NULL_MEMBER)); - } - private List getMatchingApplications(final MatchingRound matchingRound) { return matchingApplicationRepository.findAllByRound(matchingRound.getRound()); } @@ -172,11 +169,10 @@ private List getPreviousMatchingApplications() { } private List getBlockListByMatchingApplications(final List matchingApplications) { - List blockHistory = matchingApplications.stream() + return matchingApplications.stream() .map(MatchingApplication::getMember) .flatMap(member -> getBlockListByBlockingMembers(member).stream()) .toList(); - return blockHistory; } private List getBlockListByBlockingMembers(final Member blockingMember) { @@ -187,11 +183,4 @@ private void matchBetween(final MatchingResult matchingResult) { matchingResultRepository.save(matchingResult); matchingResult.matchEach(); } - - private MatchingOperateRequest createOperateRequest(final MatchingRound matchingRound) { - List matchingApplications = getMatchingApplications(matchingRound); - List previousMatchingResult = getPreviousMatchingResults(); - List participantBlockHistory = getBlockListByMatchingApplications(matchingApplications); - return MatchingOperateRequest.of(matchingApplications, previousMatchingResult, participantBlockHistory); - } } diff --git a/src/main/java/com/aliens/backend/notification/controller/NotificationController.java b/src/main/java/com/aliens/backend/notification/controller/NotificationController.java index 4277327b..cda14b28 100644 --- a/src/main/java/com/aliens/backend/notification/controller/NotificationController.java +++ b/src/main/java/com/aliens/backend/notification/controller/NotificationController.java @@ -38,7 +38,7 @@ public SuccessResponse getFcmStatus(@Login LoginMember loginMember) { return SuccessResponse.of( NotificationSuccess.GET_FCM_STATUS_SUCCESS, - notificationService.getFcmstatus(loginMember) + notificationService.getStatus(loginMember) ); } diff --git a/src/main/java/com/aliens/backend/notification/domain/FcmToken.java b/src/main/java/com/aliens/backend/notification/domain/FcmToken.java index 2f046c61..d4afcc90 100644 --- a/src/main/java/com/aliens/backend/notification/domain/FcmToken.java +++ b/src/main/java/com/aliens/backend/notification/domain/FcmToken.java @@ -44,11 +44,7 @@ public Boolean isAccepted() { return isAccepted; } - public void unAccepted() { - isAccepted = false; - } - - public void accept() { - isAccepted = true; + public void changeAccept(Boolean decision) { + this.isAccepted = decision; } } diff --git a/src/main/java/com/aliens/backend/notification/service/NotificationService.java b/src/main/java/com/aliens/backend/notification/service/NotificationService.java index 306c7a96..c4de14c6 100644 --- a/src/main/java/com/aliens/backend/notification/service/NotificationService.java +++ b/src/main/java/com/aliens/backend/notification/service/NotificationService.java @@ -4,6 +4,7 @@ import com.aliens.backend.auth.domain.Member; import com.aliens.backend.auth.domain.repository.MemberRepository; import com.aliens.backend.global.exception.RestApiException; +import com.aliens.backend.global.response.error.CommonError; import com.aliens.backend.global.response.error.MemberError; import com.aliens.backend.global.response.error.NotificationError; import com.aliens.backend.notification.domain.NotificationType; @@ -91,7 +92,7 @@ public void saveNotification(NotificationRequest request) { notificationRepository.save(notification); - FcmToken fcmToken = getFcmTokenByMemberId(memberId); + FcmToken fcmToken = getFcmTokenByMember(member); if(fcmToken.isAccepted()) { tokens.add(fcmToken.getToken()); @@ -102,8 +103,8 @@ public void saveNotification(NotificationRequest request) { eventPublisher.publishEvent(multiMessage); } - private FcmToken getFcmTokenByMemberId(final Long memberId) { - return fcmTokenRepository.findById(memberId).orElseThrow(() -> new RestApiException(MemberError.NULL_MEMBER)); + private FcmToken getFcmTokenByMember(final Member member) { + return fcmTokenRepository.findByMember(member).orElseThrow(() -> new RestApiException(CommonError.FCM_MESSAGING_ERROR)); } private MulticastMessage makeMessage(NotificationRequest request, @@ -116,18 +117,16 @@ private MulticastMessage makeMessage(NotificationRequest request, .build(); } - public Boolean getFcmstatus(final LoginMember loginMember) { - FcmToken token = getFcmTokenByMemberId(loginMember.memberId()); + public Boolean getStatus(final LoginMember loginMember) { + Member member = getMember(loginMember.memberId()); + FcmToken token = getFcmTokenByMember(member); return token.isAccepted(); } public void changeAcceptation(final LoginMember loginMember, final Boolean decision) { - FcmToken token = getFcmTokenByMemberId(loginMember.memberId()); - if(token.isAccepted()) { - token.accept(); - return; - } - token.unAccepted(); + Member member = getMember(loginMember.memberId()); + FcmToken token = getFcmTokenByMember(member); + token.changeAccept(decision); } } diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 3dd936ae..531efe58 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -1,18 +1,4 @@ spring: - jpa: - show_sql: false - hibernate: - ddl-auto: none - naming: - implicit-strategy: org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyJpaImpl - physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl - - properties: - hibernate: - format_sql: true - dialect: org.hibernate.dialect.MySQL8Dialect - defer-datasource-initialization: true - profiles: include: secret, matching @@ -24,6 +10,4 @@ websocket: port: 8080 endpoint: /ws topic: /room - request: /chat - - + request: /chat \ No newline at end of file diff --git a/src/test/java/com/aliens/backend/docs/MatchingRestDocsTest.java b/src/test/java/com/aliens/backend/docs/MatchingRestDocsTest.java index e99ca7d9..3559fa70 100644 --- a/src/test/java/com/aliens/backend/docs/MatchingRestDocsTest.java +++ b/src/test/java/com/aliens/backend/docs/MatchingRestDocsTest.java @@ -5,8 +5,6 @@ import com.aliens.backend.matching.util.time.MockClock; import com.aliens.backend.matching.util.time.MockTime; import com.aliens.backend.mathcing.business.model.Language; -import com.aliens.backend.mathcing.controller.MatchingApplicationController; -import com.aliens.backend.mathcing.controller.MatchingProcessController; import com.aliens.backend.mathcing.controller.dto.request.MatchingApplicationRequest; import com.aliens.backend.mathcing.service.MatchingApplicationService; import org.junit.jupiter.api.BeforeEach; @@ -25,8 +23,6 @@ class MatchingRestDocsTest extends BaseRestDocsTest { @Autowired MockClock mockClock; - @Autowired MatchingApplicationController matchingApplicationController; - @Autowired MatchingProcessController matchingProcessController; @Autowired MatchingApplicationService matchingApplicationService; String baseUrl = "/matchings"; @@ -107,6 +103,7 @@ void getMyMatchingPartnersTest() throws Exception { List members = dummyGenerator.generateMultiMember(10); dummyGenerator.generateAppliersToMatch(members); dummyGenerator.operateMatching(); + dummyGenerator.generateMatchingRound(MockTime.TUESDAY); // when & then mockMvc.perform(get(baseUrl + "/partners") diff --git a/src/test/java/com/aliens/backend/email/service/EmailServiceTest.java b/src/test/java/com/aliens/backend/email/service/EmailServiceTest.java index 01fec2bb..a0d5d834 100644 --- a/src/test/java/com/aliens/backend/email/service/EmailServiceTest.java +++ b/src/test/java/com/aliens/backend/email/service/EmailServiceTest.java @@ -68,8 +68,8 @@ void sendAuthenticationEmailTest() throws Exception { @DisplayName("이메일 검증") void authenticateEmailTest() throws Exception { //Given - Long entityId = emailAuthenticationRepository.save(emailEntity).getId(); - String token = symmetricKeyEncoder.encrypt(String.valueOf(entityId)); + emailAuthenticationRepository.save(emailEntity); + String token = symmetricKeyEncoder.encrypt(givenEmail); //When String result = emailService.authenticateEmail(token); diff --git a/src/test/java/com/aliens/backend/global/BaseIntegrationTest.java b/src/test/java/com/aliens/backend/global/BaseIntegrationTest.java index e8fff5a8..b043eb86 100644 --- a/src/test/java/com/aliens/backend/global/BaseIntegrationTest.java +++ b/src/test/java/com/aliens/backend/global/BaseIntegrationTest.java @@ -11,6 +11,7 @@ import com.aliens.backend.uploader.dto.S3File; import com.google.firebase.messaging.Message; import com.google.firebase.messaging.MulticastMessage; +import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; @@ -19,9 +20,7 @@ import org.springframework.mail.javamail.JavaMailSender; import org.springframework.test.context.ActiveProfiles; import org.springframework.web.multipart.MultipartFile; - import java.util.List; - import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doReturn; @@ -33,7 +32,6 @@ public abstract class BaseIntegrationTest { @SpyBean protected AwsS3Uploader awsS3Uploader; @SpyBean protected JavaMailSender javaMailSender; @SpyBean protected FcmSender fcmSender; - // 수정 예정 @SpyBean protected MessageRepository messageRepository; @SpyBean protected ChatRoomRepository chatRoomRepository; @SpyBean protected ChatService chatService; @@ -45,9 +43,6 @@ public abstract class BaseIntegrationTest { @BeforeEach void setUpSpy() { - //Data Initializer - databaseCleanUp.execute(); - //SMTP doNothing().when(javaMailSender).send(any(SimpleMailMessage.class)); @@ -56,9 +51,14 @@ void setUpSpy() { doNothing().when(fcmSender).listenSingleMessageRequest(any(Message.class)); //AWS - S3File tmpFile = new S3File(DummyGenerator.GIVEN_FILE_NAME,DummyGenerator.GIVEN_FILE_URL); + S3File tmpFile = new S3File(DummyGenerator.GIVEN_FILE_NAME, DummyGenerator.GIVEN_FILE_URL); doReturn(tmpFile).when(awsS3Uploader).singleUpload(any(MultipartFile.class)); doReturn(true).when(awsS3Uploader).delete(any()); doReturn(List.of(tmpFile)).when(awsS3Uploader).multiUpload(any()); } + + @AfterEach + void initDatabase() { + databaseCleanUp.execute(); + } } diff --git a/src/test/java/com/aliens/backend/global/BaseRestDocsTest.java b/src/test/java/com/aliens/backend/global/BaseRestDocsTest.java index 0d3617c6..82450b66 100644 --- a/src/test/java/com/aliens/backend/global/BaseRestDocsTest.java +++ b/src/test/java/com/aliens/backend/global/BaseRestDocsTest.java @@ -28,34 +28,20 @@ @ActiveProfiles("test") public abstract class BaseRestDocsTest { - @SpyBean - protected ChatController chatController; - @SpyBean - protected AuthController authController; - @SpyBean - protected ChatReportController chatReportController; - @SpyBean - protected MemberController memberController; - @SpyBean - protected EmailController emailController; - @SpyBean - protected BlockController blockController; - @SpyBean - protected BoardController boardController; - @SpyBean - protected CommentController commentController; - @SpyBean - protected GreatController greatController; - @SpyBean - protected MarketController marketBoardController; - @SpyBean - protected NotificationController notificationController; + @SpyBean protected ChatController chatController; + @SpyBean protected AuthController authController; + @SpyBean protected ChatReportController chatReportController; + @SpyBean protected MemberController memberController; + @SpyBean protected EmailController emailController; + @SpyBean protected BlockController blockController; + @SpyBean protected BoardController boardController; + @SpyBean protected CommentController commentController; + @SpyBean protected GreatController greatController; + @SpyBean protected MarketController marketBoardController; + @SpyBean protected NotificationController notificationController; - - @Autowired - protected MockMvc mockMvc; - @Autowired - protected DummyGenerator dummyGenerator; + @Autowired protected MockMvc mockMvc; + @Autowired protected DummyGenerator dummyGenerator; protected Member member; protected String GIVEN_ACCESS_TOKEN; diff --git a/src/test/java/com/aliens/backend/global/DummyGenerator.java b/src/test/java/com/aliens/backend/global/DummyGenerator.java index fc23b813..8ba77ed9 100644 --- a/src/test/java/com/aliens/backend/global/DummyGenerator.java +++ b/src/test/java/com/aliens/backend/global/DummyGenerator.java @@ -13,10 +13,7 @@ import com.aliens.backend.board.domain.enums.BoardCategory; import com.aliens.backend.board.domain.enums.ProductQuality; import com.aliens.backend.board.domain.enums.SaleStatus; -import com.aliens.backend.board.domain.repository.BoardImageRepository; import com.aliens.backend.board.domain.repository.BoardRepository; -import com.aliens.backend.board.domain.repository.CommentRepository; -import com.aliens.backend.board.domain.repository.GreatRepository; import com.aliens.backend.global.exception.RestApiException; import com.aliens.backend.global.property.MatchingTimeProperties; import com.aliens.backend.global.response.error.MatchingError; @@ -57,10 +54,7 @@ public class DummyGenerator { @Autowired MatchingRoundRepository matchingRoundRepository; @Autowired MatchingTimeProperties matchingTimeProperties; @Autowired MatchingProcessService matchingProcessService; - @Autowired CommentRepository commentRepository; - @Autowired GreatRepository greatRepository; @Autowired BoardRepository boardRepository; - @Autowired BoardImageRepository boardImageRepository; @Autowired PasswordEncoder passwordEncoder; @Autowired SymmetricKeyEncoder encoder; @Autowired TokenProvider tokenProvider;