Update All AnswerService to use GetAnswerService and rename test method
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
package com.mangkyu.employment.interview.app.answer.controller;
|
||||
|
||||
import com.mangkyu.employment.interview.app.answer.entity.Answer;
|
||||
import com.mangkyu.employment.interview.app.answer.service.GetAnswerService;
|
||||
import com.mangkyu.employment.interview.app.quiz.converter.QuizDtoConverter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
@@ -15,7 +17,8 @@ class GetAnswerController {
|
||||
|
||||
@GetMapping("/answers/{resourceId}")
|
||||
public ResponseEntity<GetAnswerResponse> get(@PathVariable final String resourceId) {
|
||||
return ResponseEntity.ok(answerService.get(resourceId));
|
||||
Answer answer = answerService.get(resourceId);
|
||||
return ResponseEntity.ok(QuizDtoConverter.convert(answer));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -13,11 +13,11 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
@Transactional
|
||||
public class DeleteAnswerService {
|
||||
|
||||
private final GetAnswerService getAnswerService;
|
||||
private final AnswerRepository answerRepository;
|
||||
|
||||
public void delete(final String resourceId) {
|
||||
final Answer answer = answerRepository.findByResourceId(resourceId)
|
||||
.orElseThrow(() -> new RestApiException(CommonErrorCode.RESOURCE_NOT_FOUND));
|
||||
final Answer answer = getAnswerService.get(resourceId);
|
||||
answer.getQuiz().setAnswer(null);
|
||||
answerRepository.delete(answer);
|
||||
}
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
package com.mangkyu.employment.interview.app.answer.service;
|
||||
|
||||
import com.mangkyu.employment.interview.app.answer.controller.GetAnswerResponse;
|
||||
import com.mangkyu.employment.interview.app.answer.entity.Answer;
|
||||
import com.mangkyu.employment.interview.app.answer.repository.AnswerRepository;
|
||||
import com.mangkyu.employment.interview.app.quiz.converter.QuizDtoConverter;
|
||||
import com.mangkyu.employment.interview.erros.errorcode.CommonErrorCode;
|
||||
import com.mangkyu.employment.interview.erros.exception.RestApiException;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@@ -17,11 +15,9 @@ public class GetAnswerService {
|
||||
|
||||
private final AnswerRepository answerRepository;
|
||||
|
||||
public GetAnswerResponse get(final String resourceId) {
|
||||
final Answer answer = answerRepository.findByResourceId(resourceId)
|
||||
public Answer get(final String resourceId) {
|
||||
return answerRepository.findByResourceId(resourceId)
|
||||
.orElseThrow(() -> new RestApiException(CommonErrorCode.RESOURCE_NOT_FOUND));
|
||||
|
||||
return QuizDtoConverter.convert(answer);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,7 +1,9 @@
|
||||
package com.mangkyu.employment.interview.app.quiz.controller;
|
||||
|
||||
import com.mangkyu.employment.interview.app.answer.controller.GetAnswerResponse;
|
||||
import com.mangkyu.employment.interview.app.answer.entity.Answer;
|
||||
import com.mangkyu.employment.interview.app.answer.service.GetAnswerService;
|
||||
import com.mangkyu.employment.interview.app.quiz.converter.QuizDtoConverter;
|
||||
import com.mangkyu.employment.interview.app.quiz.dto.GetQuizResponse;
|
||||
import com.mangkyu.employment.interview.app.quiz.service.QuizService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@@ -24,8 +26,8 @@ public class WebQuizController {
|
||||
model.addAttribute("quiz", quiz);
|
||||
|
||||
if (StringUtils.isNotBlank(quiz.getAnswerResourceId())) {
|
||||
final GetAnswerResponse answer = answerService.get(quiz.getAnswerResourceId());
|
||||
model.addAttribute("answer", answer);
|
||||
final Answer answer = answerService.get(quiz.getAnswerResourceId());
|
||||
model.addAttribute("answer", QuizDtoConverter.convert(answer));
|
||||
} else {
|
||||
model.addAttribute("answer", GetAnswerResponse.builder().build());
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ class AnswerRepositoryTest {
|
||||
private EntityManager entityManager;
|
||||
|
||||
@Test
|
||||
public void selectAnswerByQuizId() {
|
||||
public void findOptionalByQuizId() {
|
||||
// given
|
||||
final Quiz quiz = EntityCreationUtils.quiz();
|
||||
final Quiz savedQuiz = quizRepository.save(quiz);
|
||||
|
||||
@@ -25,35 +25,19 @@ class DeleteAnswerServiceTest {
|
||||
@InjectMocks
|
||||
private DeleteAnswerService answerService;
|
||||
@Mock
|
||||
private GetAnswerService getAnswerService;
|
||||
@Mock
|
||||
private AnswerRepository answerRepository;
|
||||
|
||||
@Test
|
||||
void deleteAnswerByQuizResourceIdFail_AnswerNotExists() {
|
||||
// given
|
||||
final String resourceId = UUID.randomUUID().toString();
|
||||
|
||||
doReturn(Optional.empty())
|
||||
.when(answerRepository)
|
||||
.findByResourceId(resourceId);
|
||||
|
||||
// when
|
||||
final RestApiException result = assertThrows(
|
||||
RestApiException.class,
|
||||
() -> answerService.delete(resourceId));
|
||||
|
||||
// then
|
||||
assertThat(result.getErrorCode()).isEqualTo(CommonErrorCode.RESOURCE_NOT_FOUND);
|
||||
}
|
||||
|
||||
@Test
|
||||
void deleteAnswerByQuizResourceIdSuccess() throws RestApiException {
|
||||
void deleteAnswer_Success() throws RestApiException {
|
||||
// given
|
||||
final Quiz quiz = EntityCreationUtils.quiz();
|
||||
final Answer answer = EntityCreationUtils.answer(quiz);
|
||||
|
||||
doReturn(Optional.of(answer))
|
||||
.when(answerRepository)
|
||||
.findByResourceId(answer.getResourceId());
|
||||
doReturn(answer)
|
||||
.when(getAnswerService)
|
||||
.get(answer.getResourceId());
|
||||
|
||||
// when
|
||||
answerService.delete(answer.getResourceId());
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
package com.mangkyu.employment.interview.app.answer.service;
|
||||
|
||||
import com.mangkyu.employment.interview.app.answer.controller.GetAnswerResponse;
|
||||
import com.mangkyu.employment.interview.app.answer.entity.Answer;
|
||||
import com.mangkyu.employment.interview.app.answer.repository.AnswerRepository;
|
||||
import com.mangkyu.employment.interview.erros.errorcode.CommonErrorCode;
|
||||
import com.mangkyu.employment.interview.erros.exception.RestApiException;
|
||||
import com.mangkyu.employment.interview.app.quiz.entity.Quiz;
|
||||
import com.mangkyu.employment.interview.app.quiz.service.QuizService;
|
||||
import com.mangkyu.employment.interview.erros.errorcode.CommonErrorCode;
|
||||
import com.mangkyu.employment.interview.erros.exception.RestApiException;
|
||||
import com.mangkyu.employment.interview.testutils.EntityCreationUtils;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
@@ -19,7 +18,7 @@ import java.util.UUID;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.junit.jupiter.api.Assertions.assertThrows;
|
||||
import static org.mockito.Mockito.*;
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
|
||||
@ExtendWith(MockitoExtension.class)
|
||||
class GetAnswerServiceTest {
|
||||
@@ -33,7 +32,7 @@ class GetAnswerServiceTest {
|
||||
private AnswerRepository answerRepository;
|
||||
|
||||
@Test
|
||||
public void getAnswerByQuizResourceIdFail_AnswerNotExists() {
|
||||
public void getAnswer_Fail_NotExists() {
|
||||
// given
|
||||
final String resourceId = UUID.randomUUID().toString();
|
||||
|
||||
@@ -51,7 +50,7 @@ class GetAnswerServiceTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getAnswerByQuizResourceIdSuccess() throws RestApiException {
|
||||
public void getAnswer_Success() throws RestApiException {
|
||||
// given
|
||||
final Quiz quiz = EntityCreationUtils.quiz();
|
||||
final Answer answer = EntityCreationUtils.answer(quiz);
|
||||
@@ -61,7 +60,7 @@ class GetAnswerServiceTest {
|
||||
.findByResourceId(answer.getResourceId());
|
||||
|
||||
// when
|
||||
final GetAnswerResponse result = answerService.get(answer.getResourceId());
|
||||
final Answer result = answerService.get(answer.getResourceId());
|
||||
|
||||
// then
|
||||
assertThat(result.getDescription()).isEqualTo(answer.getDescription());
|
||||
|
||||
@@ -30,7 +30,7 @@ class UpdateAnswerServiceTest {
|
||||
private AnswerRepository answerRepository;
|
||||
|
||||
@Test
|
||||
public void addAnswerSuccess_Modify() throws RestApiException {
|
||||
public void addAnswer_Success_Modify() throws RestApiException {
|
||||
// given
|
||||
final AddAnswerRequest addAnswerRequest = AddAnswerRequest.builder()
|
||||
.quizResourceId(UUID.randomUUID().toString())
|
||||
@@ -54,7 +54,7 @@ class UpdateAnswerServiceTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void addAnswerSuccess_Insert() throws RestApiException {
|
||||
public void addAnswer_Success_Insert() throws RestApiException {
|
||||
// given
|
||||
final AddAnswerRequest addAnswerRequest = AddAnswerRequest.builder()
|
||||
.quizResourceId(UUID.randomUUID().toString())
|
||||
|
||||
Reference in New Issue
Block a user