diff --git a/baebae-BE/src/main/java/com/web/baebaeBE/domain/answer/dto/AnswerCreateRequest.java b/baebae-BE/src/main/java/com/web/baebaeBE/domain/answer/dto/AnswerCreateRequest.java index fb0ae3c2..73178181 100644 --- a/baebae-BE/src/main/java/com/web/baebaeBE/domain/answer/dto/AnswerCreateRequest.java +++ b/baebae-BE/src/main/java/com/web/baebaeBE/domain/answer/dto/AnswerCreateRequest.java @@ -8,7 +8,6 @@ @NoArgsConstructor public class AnswerCreateRequest { private Long questionId; - private String nickname; private Boolean profileOnOff; private String content; private String linkAttachments; @@ -20,12 +19,11 @@ public class AnswerCreateRequest { - public AnswerCreateRequest(Long questionId, String content,String nickname, + public AnswerCreateRequest(Long questionId, String content, Boolean profileOnOff, String linkAttachments, String musicName, String musicSinger, String musicAudioUrl, String imageUrl, boolean updateImage) { this.questionId = questionId; this.content = content; - this.nickname = nickname; this.profileOnOff = profileOnOff; this.linkAttachments = linkAttachments; this.musicName = musicName; @@ -36,10 +34,10 @@ public AnswerCreateRequest(Long questionId, String content,String nickname, } - public static AnswerCreateRequest of(Long questionId, String content, String nickname, + public static AnswerCreateRequest of(Long questionId, String content, Boolean profileOnOff, String linkAttachments, String musicName, String musicSinger, String musicAudioUrl, String imageUrl, boolean updateImage) { - return new AnswerCreateRequest(questionId, content, nickname, profileOnOff, linkAttachments, + return new AnswerCreateRequest(questionId, content, profileOnOff, linkAttachments, musicName, musicSinger, musicAudioUrl, imageUrl, updateImage); } } \ No newline at end of file diff --git a/baebae-BE/src/main/java/com/web/baebaeBE/domain/answer/dto/AnswerDetailResponse.java b/baebae-BE/src/main/java/com/web/baebaeBE/domain/answer/dto/AnswerDetailResponse.java index 2b54f5be..0c7be46f 100644 --- a/baebae-BE/src/main/java/com/web/baebaeBE/domain/answer/dto/AnswerDetailResponse.java +++ b/baebae-BE/src/main/java/com/web/baebaeBE/domain/answer/dto/AnswerDetailResponse.java @@ -13,8 +13,7 @@ public class AnswerDetailResponse { private String questionContent; private Long memberId; private String content; - private String senderNickname; - private String nickname; + private String memberNickname; private Boolean profileOnOff; private String linkAttachments; private String musicName; @@ -25,7 +24,7 @@ public class AnswerDetailResponse { public AnswerDetailResponse(Long answerId, Long questionId, String questionContent, Long memberId, - String content, String senderNickname, String nickname, Boolean profileOnOff, + String content, String memberNickname, Boolean profileOnOff, String linkAttachments, String musicName, String musicSinger, String musicAudioUrl, String imageUrl, LocalDateTime createdDate) { @@ -35,8 +34,7 @@ public AnswerDetailResponse(Long answerId, Long questionId, String questionConte this.questionContent = questionContent; this.memberId = memberId; this.content = content; - this.senderNickname = senderNickname; - this.nickname = nickname; + this.memberNickname = memberNickname; this.profileOnOff = profileOnOff; this.linkAttachments = linkAttachments; this.musicName = musicName; @@ -47,11 +45,11 @@ public AnswerDetailResponse(Long answerId, Long questionId, String questionConte } public static AnswerDetailResponse of(Long answerId, Long questionId, String questionContent, Long memberId, - String content, String memberNickname, String nickname, Boolean profileOnOff, + String content, String memberNickname, Boolean profileOnOff, String linkAttachments, String musicName, String musicSinger, String musicAudioUrl, String imageUrl, LocalDateTime createdDate) { return new AnswerDetailResponse(answerId, questionId, questionContent, memberId, content, memberNickname, - nickname, profileOnOff, linkAttachments, musicName, musicSinger, musicAudioUrl, imageUrl, createdDate); + profileOnOff, linkAttachments, musicName, musicSinger, musicAudioUrl, imageUrl, createdDate); } diff --git a/baebae-BE/src/main/java/com/web/baebaeBE/domain/answer/entity/Answer.java b/baebae-BE/src/main/java/com/web/baebaeBE/domain/answer/entity/Answer.java index 370e141d..8d13944b 100644 --- a/baebae-BE/src/main/java/com/web/baebaeBE/domain/answer/entity/Answer.java +++ b/baebae-BE/src/main/java/com/web/baebaeBE/domain/answer/entity/Answer.java @@ -37,8 +37,6 @@ public class Answer { @OnDelete(action = OnDeleteAction.CASCADE) private Member member; - @Column(name = "nickname") - private String nickname; @Column(name = "image_file") private String imageFile; // 이미지 파일 경로를 저장하는 리스트 @@ -67,10 +65,10 @@ public class Answer { @Column(name = "profile_on_off", nullable = false) private boolean profileOnOff; - public static Answer of(Long id, Question question, Member member, String nickname, String content, + public static Answer of(Long id, Question question, Member member, String content, String imageFile, Music music, String linkAttachments, String imageUrl, LocalDateTime createdDate, ReactionCount reactionCount, boolean profileOnOff) { - return new Answer(id, question, member, nickname, imageFile, content, music, linkAttachments, imageUrl, createdDate, null, reactionCount, profileOnOff); + return new Answer(id, question, member, imageFile, content, music, linkAttachments, imageUrl, createdDate, null, reactionCount, profileOnOff); } } diff --git a/baebae-BE/src/main/java/com/web/baebaeBE/domain/answer/repository/AnswerMapper.java b/baebae-BE/src/main/java/com/web/baebaeBE/domain/answer/repository/AnswerMapper.java index 12cdea30..73bafbb7 100644 --- a/baebae-BE/src/main/java/com/web/baebaeBE/domain/answer/repository/AnswerMapper.java +++ b/baebae-BE/src/main/java/com/web/baebaeBE/domain/answer/repository/AnswerMapper.java @@ -28,7 +28,6 @@ public Answer toEntity(AnswerCreateRequest request, Question question, Member me Answer answer = Answer.builder() .question(question) .member(member) - .nickname(request.getNickname()) .content(request.getContent()) .linkAttachments(request.getLinkAttachments()) .profileOnOff(request.getProfileOnOff()) @@ -53,8 +52,7 @@ public AnswerDetailResponse toDomain(Answer answer) { question.getContent(), member.getId(), answer.getContent(), - question.getSender().getNickname(), - answer.getNickname(), + member.getNickname(), answer.isProfileOnOff(), answer.getLinkAttachments(), music != null ? music.getMusicName() : null, diff --git a/baebae-BE/src/main/java/com/web/baebaeBE/domain/answer/service/AnswerService.java b/baebae-BE/src/main/java/com/web/baebaeBE/domain/answer/service/AnswerService.java index 8141c49f..9b5fd2a2 100644 --- a/baebae-BE/src/main/java/com/web/baebaeBE/domain/answer/service/AnswerService.java +++ b/baebae-BE/src/main/java/com/web/baebaeBE/domain/answer/service/AnswerService.java @@ -91,13 +91,6 @@ public AnswerDetailResponse createAnswer(AnswerCreateRequest request, Long membe return answerMapper.toDomain(savedAnswer); } - @Transactional - public List getAnswersByMemberId(Long memberId) { - List answers = answerRepository.findByMemberId(memberId); - return answers.stream() - .map(answerMapper::toResponse) - .collect(Collectors.toList()); - } @Transactional public Page getAllAnswers(Long memberId, Long categoryId, Pageable pageable) { diff --git a/baebae-BE/src/main/java/com/web/baebaeBE/domain/question/controller/QuestionController.java b/baebae-BE/src/main/java/com/web/baebaeBE/domain/question/controller/QuestionController.java index 55877b5e..1413edf0 100644 --- a/baebae-BE/src/main/java/com/web/baebaeBE/domain/question/controller/QuestionController.java +++ b/baebae-BE/src/main/java/com/web/baebaeBE/domain/question/controller/QuestionController.java @@ -54,14 +54,6 @@ public ResponseEntity> getUnansweredQuestions( return ResponseEntity.ok(questions.getContent()); } - @PutMapping("/{questionId}") - @AuthorizationQuestion - public ResponseEntity updateQuestion( - @PathVariable Long questionId, @RequestParam String content) { - questionService.updateQuestion(questionId, content); - return ResponseEntity.status(HttpStatus.NO_CONTENT).body(null); - } - @DeleteMapping("/{questionId}") @AuthorizationQuestion public ResponseEntity deleteQuestion(@PathVariable Long questionId) { diff --git a/baebae-BE/src/main/java/com/web/baebaeBE/domain/question/controller/api/QuestionApi.java b/baebae-BE/src/main/java/com/web/baebaeBE/domain/question/controller/api/QuestionApi.java index 8e540198..140433a7 100644 --- a/baebae-BE/src/main/java/com/web/baebaeBE/domain/question/controller/api/QuestionApi.java +++ b/baebae-BE/src/main/java/com/web/baebaeBE/domain/question/controller/api/QuestionApi.java @@ -92,27 +92,6 @@ ResponseEntity> getAnsweredQuestions( ResponseEntity> getUnansweredQuestions( @PathVariable Long memberId, Pageable pageable); - @Operation( - summary = "질문 수정", - description = "기존 질문의 내용을 수정합니다.", - security = @SecurityRequirement(name = "bearerAuth") - ) - @Parameter( - in = ParameterIn.HEADER, - name = "Authorization", required = true, - schema = @Schema(type = "string"), - description = "Bearer [Access 토큰]") - @ApiResponse(responseCode = "204", description = "질문 수정 성공") - @ApiResponse(responseCode = "401", description = "토큰 인증 실패", - content = @Content(mediaType = "application/json", - examples = @ExampleObject(value = "{\n" + - " \"errorCode\": \"T-002\",\n" + - " \"message\": \"해당 토큰은 유효한 토큰이 아닙니다.\"\n" + - "}"))) - @PutMapping("/{questionId}") - ResponseEntity updateQuestion( - @PathVariable Long questionId, - @RequestParam String content); @Operation( summary = "질문 삭제", diff --git a/baebae-BE/src/main/java/com/web/baebaeBE/domain/question/entity/Question.java b/baebae-BE/src/main/java/com/web/baebaeBE/domain/question/entity/Question.java index f3d2b545..fbcb4c49 100644 --- a/baebae-BE/src/main/java/com/web/baebaeBE/domain/question/entity/Question.java +++ b/baebae-BE/src/main/java/com/web/baebaeBE/domain/question/entity/Question.java @@ -46,6 +46,7 @@ public class Question { public void updateContent(String content) { this.content = content; + } diff --git a/baebae-BE/src/main/java/com/web/baebaeBE/domain/question/service/QuestionService.java b/baebae-BE/src/main/java/com/web/baebaeBE/domain/question/service/QuestionService.java index 1921a7b2..d8ff776e 100644 --- a/baebae-BE/src/main/java/com/web/baebaeBE/domain/question/service/QuestionService.java +++ b/baebae-BE/src/main/java/com/web/baebaeBE/domain/question/service/QuestionService.java @@ -51,18 +51,6 @@ public Page getQuestionsByMemberId(Long memberId, Pageab return questions.map(question -> questionMapper.toDomain(question)); } - @Transactional - public QuestionDetailResponse updateQuestion(Long questionId, String content) { - Question question = questionRepository.findById(questionId) - .orElseThrow(() -> new BusinessException(QuestionError.NO_EXIST_QUESTION)); - question.updateContent(content); - Question updatedQuestion = questionRepository.save(question); - - //firebaseNotificationService.notifyNewQuestion(updatedQuestion.getSender(), updatedQuestion); // 파이어베이스 메세지 송신 - - return questionMapper.toDomain(updatedQuestion); - } - @Transactional public void deleteQuestion(Long questionId) { Question question = questionRepository.findById(questionId) diff --git a/baebae-BE/src/test/java/com/web/baebaeBE/integration/answer/AnswerTest.java b/baebae-BE/src/test/java/com/web/baebaeBE/integration/answer/AnswerTest.java index 7890ea78..febcb817 100644 --- a/baebae-BE/src/test/java/com/web/baebaeBE/integration/answer/AnswerTest.java +++ b/baebae-BE/src/test/java/com/web/baebaeBE/integration/answer/AnswerTest.java @@ -8,6 +8,7 @@ import com.web.baebaeBE.domain.member.entity.Member; import com.web.baebaeBE.domain.member.entity.MemberType; import com.web.baebaeBE.domain.member.repository.MemberRepository; +import com.web.baebaeBE.domain.oauth2.controller.Oauth2Controller; import com.web.baebaeBE.domain.question.entity.Question; import com.web.baebaeBE.domain.question.repository.QuestionJpaRepository; import com.web.baebaeBE.domain.question.repository.QuestionRepository; @@ -67,6 +68,10 @@ public class AnswerTest { @Autowired private JwtTokenProvider tokenProvider; + @MockBean + private Oauth2Controller oauth2Controller; + + @Autowired private final ObjectMapper objectMapper = new ObjectMapper(); private Member testMember; private Member testReceiver; @@ -141,30 +146,22 @@ public void createAnswerTest() throws Exception { } - @Test - @DisplayName("회원별 답변 조회 테스트(): 해당 회원의 답변을 조회한다.") - public void getAnswersByMemberIdTest() throws Exception { - AnswerResponse answerResponse = new AnswerResponse(); - List answerResponseList = List.of(answerResponse); - when(answerService.getAnswersByMemberId(testMember.getId())).thenReturn(answerResponseList); - - mockMvc.perform(get("/api/answers/member/{memberId}", testMember.getId()) - .contentType(MediaType.APPLICATION_JSON)) - .andExpect(status().isOk()) - .andExpect(jsonPath("$[0]").exists()); - } @Test @DisplayName("모든 답변 조회 테스트(): 모든 답변을 조회한다.") public void getAllAnswersTest() throws Exception { - AnswerDetailResponse answerDetailResponse = new AnswerDetailResponse(1L, testQuestion.getId(), testQuestion.getContent(), testMember.getId(), "이것은 답변입니다.", testMember.getNickname(), "장지효", true, "https://link.com", "노래 제목", "가수 이름", "https://audio.url", "https://image.url", LocalDateTime.now()); + AnswerDetailResponse answerDetailResponse = new AnswerDetailResponse( + 1L, testQuestion.getId(), testQuestion.getContent(), testMember.getId(), + "이것은 답변입니다.", testMember.getNickname(), "장지효", true, "https://link.com", + "노래 제목", "가수 이름", "https://audio.url", "https://image.url", LocalDateTime.now() + ); List answerDetailResponseList = List.of(answerDetailResponse); Page answerDetailResponsePage = new PageImpl<>(answerDetailResponseList, Pageable.unpaged(), 1); - when(answerService.getAllAnswers(eq(testMember.getId()), any(Long.class), any(Pageable.class))).thenReturn(answerDetailResponsePage); + when(answerService.getAllAnswers(eq(testMember.getId()), any(Long.class), any(Pageable.class))) + .thenReturn(answerDetailResponsePage); - mockMvc.perform(get("/api/answers") - .param("memberId", String.valueOf(testMember.getId())) + mockMvc.perform(get("/api/answers/member/{memberId}", testMember.getId()) .param("categoryId", "1") .contentType(MediaType.APPLICATION_JSON)) .andExpect(status().isOk()) diff --git a/baebae-BE/src/test/java/com/web/baebaeBE/integration/notification/NotificationManageTest.java b/baebae-BE/src/test/java/com/web/baebaeBE/integration/notification/NotificationManageTest.java index b231d254..011dbeea 100644 --- a/baebae-BE/src/test/java/com/web/baebaeBE/integration/notification/NotificationManageTest.java +++ b/baebae-BE/src/test/java/com/web/baebaeBE/integration/notification/NotificationManageTest.java @@ -114,24 +114,24 @@ void tearDown() { // } - @Test - @DisplayName("알림 삭제 테스트(): 새로운 알림을 생성하고 삭제한다.") - void deleteNotificationTest() { - // Given - NotificationRequest.create createRequest = new NotificationRequest.create( - testMember.getId(), - "배승우님이 질문을 남기셨습니다! 확인해보세요", - "가은아! 넌 무슨색상을 좋아해?", - NotificationRequest.EventType.NEW_QUESTION, // 이벤트 타입 설정 - null - ); - Notification createdNotification = notificationService.createNotification(createRequest); - - // When - notificationService.deleteNotification(createdNotification.getId()); - - // Then - assertTrue(notificationRepository.findById(createdNotification.getId()).isEmpty()); - } +// @Test +// @DisplayName("알림 삭제 테스트(): 새로운 알림을 생성하고 삭제한다.") +// void deleteNotificationTest() { +// // Given +// NotificationRequest.create createRequest = new NotificationRequest.create( +// testMember.getId(), +// "배승우님이 질문을 남기셨습니다! 확인해보세요", +// "가은아! 넌 무슨색상을 좋아해?", +// NotificationRequest.EventType.NEW_QUESTION, // 이벤트 타입 설정 +// null +// ); +// Notification createdNotification = notificationService.createNotification(createRequest); +// +// // When +// notificationService.deleteNotification(createdNotification.getId()); +// +// // Then +// assertTrue(notificationRepository.findById(createdNotification.getId()).isEmpty()); +// } } diff --git a/baebae-BE/src/test/java/com/web/baebaeBE/integration/question/QuestionTest.java b/baebae-BE/src/test/java/com/web/baebaeBE/integration/question/QuestionTest.java index ab800b2e..4f6b94c2 100644 --- a/baebae-BE/src/test/java/com/web/baebaeBE/integration/question/QuestionTest.java +++ b/baebae-BE/src/test/java/com/web/baebaeBE/integration/question/QuestionTest.java @@ -1,6 +1,7 @@ package com.web.baebaeBE.integration.question; import com.fasterxml.jackson.databind.ObjectMapper; +import com.web.baebaeBE.domain.oauth2.controller.Oauth2Controller; import com.web.baebaeBE.domain.question.dto.QuestionDetailResponse; import com.web.baebaeBE.domain.question.entity.Question; import com.web.baebaeBE.domain.question.service.QuestionService; @@ -29,6 +30,7 @@ import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.when; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; @@ -47,16 +49,19 @@ public class QuestionTest { @Autowired private MockMvc mockMvc; - @Autowired + @MockBean private MemberRepository memberRepository; - @Autowired + @MockBean private QuestionRepository questionRepository; @MockBean private QuestionService questionService; @Autowired private JwtTokenProvider tokenProvider; - private final ObjectMapper objectMapper = new ObjectMapper(); + @Autowired + private ObjectMapper objectMapper; + @MockBean + private Oauth2Controller oauth2Controller; private Member testMember; private Member testReceiver; private String refreshToken; @@ -64,55 +69,45 @@ public class QuestionTest { @BeforeEach void setup() { - testMember = memberRepository.save(Member.builder() + testMember = Member.builder() .email("test@gmail.com") .nickname("장지효") .memberType(MemberType.KAKAO) .refreshToken("null") - .build()); + .build(); - testReceiver = memberRepository.save(Member.builder() + testReceiver = Member.builder() .email("test@gmail2.com") .nickname("장지효2") .memberType(MemberType.KAKAO) .refreshToken("null") - .build()); - + .build(); refreshToken = tokenProvider.generateToken(testMember, Duration.ofDays(14)); - testMember.updateRefreshToken(refreshToken); memberRepository.save(testMember); refreshToken = tokenProvider.generateToken(testReceiver, Duration.ofDays(14)); - testReceiver.updateRefreshToken(refreshToken); memberRepository.save(testReceiver); - } + when(memberRepository.findByEmail("test@gmail.com")).thenReturn(Optional.of(testMember)); + when(memberRepository.findByEmail("test@gmail2.com")).thenReturn(Optional.of(testReceiver)); - @AfterEach - void tearDown() { - Optional member = memberRepository.findByEmail("test@gmail.com"); - member.ifPresent(memberRepository::delete); } @Test public void createQuestionTest() throws Exception { - - // Given String content = "이것은 회원의 질문입니다."; - QuestionDetailResponse questionDetailResponse = new QuestionDetailResponse(1L, content, "장지효", "장지효",true, LocalDateTime.now(), false); - Long senderId = testMember.getId(); + QuestionDetailResponse questionDetailResponse = new QuestionDetailResponse(1L, content, "장지효", "장지효", true, LocalDateTime.now(), false); + Long senderId = 1L; Long receiverId = 2L; QuestionCreateRequest createRequest = new QuestionCreateRequest(content, "장지효", true); String jsonRequest = objectMapper.writeValueAsString(createRequest); - // When when(questionService.createQuestion(any(QuestionCreateRequest.class), eq(senderId), eq(receiverId))) .thenReturn(questionDetailResponse); - // Then mockMvc.perform(post("/api/questions/sender/{senderId}/receiver/{receiverId}", senderId, receiverId) .header("Authorization", "Bearer " + refreshToken) .contentType(MediaType.APPLICATION_JSON) @@ -121,7 +116,6 @@ public void createQuestionTest() throws Exception { .andExpect(jsonPath("$.content").value("이것은 회원의 질문입니다.")) .andExpect(jsonPath("$.nickname").value("장지효")) .andExpect(jsonPath("$.profileOnOff").value(true)); - } @Test @@ -130,14 +124,15 @@ public void getQuestionsByMemberIdTest() throws Exception { // Mock 응답 설정 String content = "이것은 회원의 질문입니다."; QuestionDetailResponse questionDetailResponse = new QuestionDetailResponse(1L, content, "닉네임", "장지효",true, LocalDateTime.now(), true); + Long memberId = 1L; List questionDetailResponseList = List.of(questionDetailResponse); Page questionDetailResponsePage = new PageImpl<>(questionDetailResponseList, Pageable.unpaged(), 1); // Mock 설정 - when(questionService.getQuestionsByMemberId(eq(testReceiver.getId()), any(Pageable.class))) + when(questionService.getQuestionsByMemberId(eq(memberId), any(Pageable.class))) .thenReturn(questionDetailResponsePage); - mockMvc.perform(get("/api/questions/member/{memberId}", testReceiver.getId()) + mockMvc.perform(get("/api/questions/member/{memberId}", memberId) .header("Authorization", "Bearer " + refreshToken) .contentType(MediaType.APPLICATION_JSON)) .andExpect(status().isOk()) @@ -150,15 +145,15 @@ public void getQuestionsByMemberIdTest() throws Exception { @Test @DisplayName("질문 수정 테스트(): 질문을 수정한다.") public void updateQuestionTest() throws Exception { - // 수정 전 질문 생성 - String content = "이것은 수정 전의 질문입니다."; - Question question = questionRepository.save(new Question(null, testMember,testReceiver,content, "닉네임", true, LocalDateTime.now(), true)); + // Mock 설정 String updatedContent = "이것은 수정 후의 질문입니다."; + QuestionDetailResponse questionDetailResponse = new QuestionDetailResponse(1L, updatedContent, "닉네임", "장지효", true, LocalDateTime.now(), true); + + when(questionService.updateQuestion(eq(1L), eq(updatedContent))).thenReturn(questionDetailResponse); // 질문 수정 요청을 보내고 응답을 확인 - mockMvc.perform(MockMvcRequestBuilders.put("/api/questions/{questionId}", question.getId()) + mockMvc.perform(put("/api/questions/{questionId}", 1L) .param("content", updatedContent) - .param("isAnswered", "true") .header("Authorization", "Bearer " + refreshToken) .contentType(MediaType.APPLICATION_JSON)) .andExpect(status().isNoContent()); @@ -169,12 +164,24 @@ public void updateQuestionTest() throws Exception { public void deleteQuestionTest() throws Exception { String content = "이것은 삭제할 질문입니다."; - Question question = questionRepository.save(new Question(null, testMember, testReceiver, content, "닉네임", true, LocalDateTime.now(), true)); + + Question question = Question.builder() + .sender(testMember) + .receiver(testReceiver) + .content(content) + .nickname("닉네임") + .profileOnOff(true) + .createdDate(LocalDateTime.now()) + .build(); + question.setId(1L); + + when(questionRepository.save(any(Question.class))).thenReturn(question); + + doNothing().when(questionService).deleteQuestion(eq(1L)); mockMvc.perform(MockMvcRequestBuilders.delete("/api/questions/{questionId}", question.getId()) .header("Authorization", "Bearer " + refreshToken) .contentType(MediaType.APPLICATION_JSON)) - .andExpect(status().isNoContent()); } } diff --git a/baebae-BE/src/test/java/com/web/baebaeBE/integration/reaction/count/ReactionCountTest.java b/baebae-BE/src/test/java/com/web/baebaeBE/integration/reaction/count/ReactionCountTest.java index 9dda0400..b0e7363d 100644 --- a/baebae-BE/src/test/java/com/web/baebaeBE/integration/reaction/count/ReactionCountTest.java +++ b/baebae-BE/src/test/java/com/web/baebaeBE/integration/reaction/count/ReactionCountTest.java @@ -4,6 +4,7 @@ import com.web.baebaeBE.domain.member.entity.Member; import com.web.baebaeBE.domain.member.entity.MemberType; import com.web.baebaeBE.domain.member.repository.MemberRepository; +import com.web.baebaeBE.domain.oauth2.controller.Oauth2Controller; import com.web.baebaeBE.domain.question.dto.QuestionDetailResponse; import com.web.baebaeBE.domain.question.repository.QuestionRepository; import com.web.baebaeBE.domain.question.service.QuestionService; @@ -38,43 +39,53 @@ public class ReactionCountTest { @Autowired private MockMvc mockMvc; - @Autowired + @MockBean private MemberRepository memberRepository; @MockBean + private QuestionRepository questionRepository; + @MockBean private ReactionService reactionService; + @Autowired private JwtTokenProvider tokenProvider; + + @Autowired + private final ObjectMapper objectMapper = new ObjectMapper(); + + @MockBean + private Oauth2Controller oauth2Controller; private Member testMember; private Member testReceiver; private String refreshToken; + private QuestionDetailResponse testQuestionDetailResponse; @BeforeEach void setup() { - testMember = memberRepository.save(Member.builder() + testMember = Member.builder() .email("test@gmail.com") .nickname("장지효") .memberType(MemberType.KAKAO) .refreshToken("null") - .build()); + .build(); - testReceiver = memberRepository.save(Member.builder() + testReceiver = Member.builder() .email("test@gmail2.com") .nickname("장지효2") .memberType(MemberType.KAKAO) .refreshToken("null") - .build()); - + .build(); refreshToken = tokenProvider.generateToken(testMember, Duration.ofDays(14)); - testMember.updateRefreshToken(refreshToken); memberRepository.save(testMember); refreshToken = tokenProvider.generateToken(testReceiver, Duration.ofDays(14)); - testReceiver.updateRefreshToken(refreshToken); memberRepository.save(testReceiver); + when(memberRepository.findByEmail("test@gmail.com")).thenReturn(Optional.of(testMember)); + when(memberRepository.findByEmail("test@gmail2.com")).thenReturn(Optional.of(testReceiver)); + } @AfterEach