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