Refactor access modifier, line and ... etc
This commit is contained in:
@@ -11,13 +11,13 @@ import javax.validation.Valid;
|
|||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class AddAnswerController {
|
class AddAnswerController {
|
||||||
|
|
||||||
private final UpdateAnswerService answerService;
|
private final UpdateAnswerService answerService;
|
||||||
|
|
||||||
@PostMapping("/answers")
|
@PostMapping("/answers")
|
||||||
public ResponseEntity<Void> postAnswer(@RequestBody @Valid final AddAnswerRequest addAnswerRequest) {
|
public ResponseEntity<Void> add(@RequestBody @Valid final AddAnswerRequest request) {
|
||||||
answerService.addAnswer(addAnswerRequest);
|
answerService.add(request);
|
||||||
return ResponseEntity.noContent()
|
return ResponseEntity.noContent()
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
package com.mangkyu.employment.interview.app.answer.controller;
|
package com.mangkyu.employment.interview.app.answer.controller;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
|
|
||||||
import javax.validation.constraints.NotBlank;
|
import javax.validation.constraints.NotBlank;
|
||||||
import javax.validation.constraints.Size;
|
import javax.validation.constraints.Size;
|
||||||
@@ -11,17 +11,17 @@ import java.util.UUID;
|
|||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Builder
|
@Builder
|
||||||
@RequiredArgsConstructor
|
@NoArgsConstructor
|
||||||
@NoArgsConstructor(force = true)
|
@AllArgsConstructor
|
||||||
public class AddAnswerRequest {
|
public class AddAnswerRequest {
|
||||||
|
|
||||||
@NotBlank
|
@NotBlank
|
||||||
private final String quizResourceId;
|
private String quizResourceId;
|
||||||
|
|
||||||
private final String resourceId = String.valueOf(UUID.randomUUID());
|
private String resourceId = String.valueOf(UUID.randomUUID());
|
||||||
|
|
||||||
@NotBlank
|
@NotBlank
|
||||||
@Size(max = 5000)
|
@Size(max = 5000)
|
||||||
private final String description;
|
private String description;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,13 +9,13 @@ import org.springframework.web.bind.annotation.RestController;
|
|||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class DeleteAnswerController {
|
class DeleteAnswerController {
|
||||||
|
|
||||||
private final DeleteAnswerService answerService;
|
private final DeleteAnswerService answerService;
|
||||||
|
|
||||||
@DeleteMapping("/answers/{resourceId}")
|
@DeleteMapping("/answers/{resourceId}")
|
||||||
public ResponseEntity<Void> deleteAnswer(@PathVariable final String resourceId) {
|
public ResponseEntity<Void> delete(@PathVariable final String resourceId) {
|
||||||
answerService.deleteAnswer(resourceId);
|
answerService.delete(resourceId);
|
||||||
|
|
||||||
return ResponseEntity.noContent().build();
|
return ResponseEntity.noContent().build();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,13 +9,13 @@ import org.springframework.web.bind.annotation.RestController;
|
|||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class GetAnswerController {
|
class GetAnswerController {
|
||||||
|
|
||||||
private final GetAnswerService answerService;
|
private final GetAnswerService answerService;
|
||||||
|
|
||||||
@GetMapping("/answers/{resourceId}")
|
@GetMapping("/answers/{resourceId}")
|
||||||
public ResponseEntity<GetAnswerResponse> getAnswer(@PathVariable final String resourceId) {
|
public ResponseEntity<GetAnswerResponse> get(@PathVariable final String resourceId) {
|
||||||
return ResponseEntity.ok(answerService.getAnswer(resourceId));
|
return ResponseEntity.ok(answerService.get(resourceId));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1,17 +1,19 @@
|
|||||||
package com.mangkyu.employment.interview.app.answer.controller;
|
package com.mangkyu.employment.interview.app.answer.controller;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Builder
|
@Builder
|
||||||
@RequiredArgsConstructor
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
public class GetAnswerResponse {
|
public class GetAnswerResponse {
|
||||||
|
|
||||||
private final String resourceId;
|
private String resourceId;
|
||||||
private final String quizResourceId;
|
private String quizResourceId;
|
||||||
private final String description;
|
private String description;
|
||||||
private final long createdAt;
|
private long createdAt;
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.mangkyu.employment.interview.app.answer.controller;
|
package com.mangkyu.employment.interview.app.answer.controller;
|
||||||
|
|
||||||
import com.mangkyu.employment.interview.app.answer.service.GetAnswerService;
|
|
||||||
import com.mangkyu.employment.interview.app.answer.service.UpdateAnswerService;
|
import com.mangkyu.employment.interview.app.answer.service.UpdateAnswerService;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
@@ -12,13 +11,13 @@ import javax.validation.Valid;
|
|||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class UpdateAnswerController {
|
class UpdateAnswerController {
|
||||||
|
|
||||||
private final UpdateAnswerService answerService;
|
private final UpdateAnswerService answerService;
|
||||||
|
|
||||||
@PutMapping("/answers")
|
@PutMapping("/answers")
|
||||||
public ResponseEntity<Void> putAnswer(@RequestBody @Valid final AddAnswerRequest addAnswerRequest) {
|
public ResponseEntity<Void> update(@RequestBody @Valid final AddAnswerRequest request) {
|
||||||
answerService.addAnswer(addAnswerRequest);
|
answerService.add(request);
|
||||||
return ResponseEntity.noContent()
|
return ResponseEntity.noContent()
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ package com.mangkyu.employment.interview.app.answer.service;
|
|||||||
|
|
||||||
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.service.QuizService;
|
|
||||||
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;
|
||||||
@@ -11,13 +10,12 @@ import org.springframework.transaction.annotation.Transactional;
|
|||||||
|
|
||||||
@Service
|
@Service
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@Transactional(readOnly = true)
|
@Transactional
|
||||||
public class DeleteAnswerService {
|
public class DeleteAnswerService {
|
||||||
|
|
||||||
private final AnswerRepository answerRepository;
|
private final AnswerRepository answerRepository;
|
||||||
|
|
||||||
@Transactional
|
public void delete(final String resourceId) {
|
||||||
public void deleteAnswer(final String resourceId) throws RestApiException {
|
|
||||||
final Answer answer = answerRepository.findByResourceId(resourceId)
|
final Answer answer = answerRepository.findByResourceId(resourceId)
|
||||||
.orElseThrow(() -> new RestApiException(CommonErrorCode.RESOURCE_NOT_FOUND));
|
.orElseThrow(() -> new RestApiException(CommonErrorCode.RESOURCE_NOT_FOUND));
|
||||||
answer.getQuiz().setAnswer(null);
|
answer.getQuiz().setAnswer(null);
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ public class GetAnswerService {
|
|||||||
|
|
||||||
private final AnswerRepository answerRepository;
|
private final AnswerRepository answerRepository;
|
||||||
|
|
||||||
public GetAnswerResponse getAnswer(final String resourceId) throws RestApiException {
|
public GetAnswerResponse get(final String resourceId) {
|
||||||
final Answer answer = answerRepository.findByResourceId(resourceId)
|
final Answer answer = answerRepository.findByResourceId(resourceId)
|
||||||
.orElseThrow(() -> new RestApiException(CommonErrorCode.RESOURCE_NOT_FOUND));
|
.orElseThrow(() -> new RestApiException(CommonErrorCode.RESOURCE_NOT_FOUND));
|
||||||
|
|
||||||
|
|||||||
@@ -12,22 +12,21 @@ import org.springframework.transaction.annotation.Transactional;
|
|||||||
|
|
||||||
@Service
|
@Service
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@Transactional(readOnly = true)
|
@Transactional
|
||||||
public class UpdateAnswerService {
|
public class UpdateAnswerService {
|
||||||
|
|
||||||
private final QuizService quizService;
|
private final QuizService quizService;
|
||||||
private final AnswerRepository answerRepository;
|
private final AnswerRepository answerRepository;
|
||||||
|
|
||||||
@Transactional
|
public void add(final AddAnswerRequest request) {
|
||||||
public void addAnswer(final AddAnswerRequest addAnswerRequest) {
|
final Quiz quiz = quizService.findQuiz(request.getQuizResourceId());
|
||||||
final Quiz quiz = quizService.findQuiz(addAnswerRequest.getQuizResourceId());
|
|
||||||
final Answer quizAnswer = quiz.getAnswer();
|
final Answer quizAnswer = quiz.getAnswer();
|
||||||
if (quizAnswer == null) {
|
if (quizAnswer == null) {
|
||||||
final Answer answer = QuizDtoConverter.convert(addAnswerRequest, quiz);
|
final Answer answer = QuizDtoConverter.convert(request, quiz);
|
||||||
answerRepository.save(answer);
|
answerRepository.save(answer);
|
||||||
quiz.setAnswer(answer);
|
quiz.setAnswer(answer);
|
||||||
} else {
|
} else {
|
||||||
quizAnswer.setDescription(addAnswerRequest.getDescription());
|
quizAnswer.setDescription(request.getDescription());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ 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.getAnswer(quiz.getAnswerResourceId());
|
final GetAnswerResponse answer = answerService.get(quiz.getAnswerResourceId());
|
||||||
model.addAttribute("answer", answer);
|
model.addAttribute("answer", answer);
|
||||||
} else {
|
} else {
|
||||||
model.addAttribute("answer", GetAnswerResponse.builder().build());
|
model.addAttribute("answer", GetAnswerResponse.builder().build());
|
||||||
|
|||||||
@@ -31,17 +31,15 @@ class AddAnswerControllerTest {
|
|||||||
@MethodSource("provideParameters")
|
@MethodSource("provideParameters")
|
||||||
public void addAnswerFail_InvalidParameter(final String quizResourceId, final String desc) throws Exception {
|
public void addAnswerFail_InvalidParameter(final String quizResourceId, final String desc) throws Exception {
|
||||||
// given
|
// given
|
||||||
final String url = "/answers";
|
final AddAnswerRequest request = AddAnswerRequest.builder()
|
||||||
|
|
||||||
final AddAnswerRequest addAnswerRequest = AddAnswerRequest.builder()
|
|
||||||
.quizResourceId(quizResourceId)
|
.quizResourceId(quizResourceId)
|
||||||
.description(desc)
|
.description(desc)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
// when
|
// when
|
||||||
final ResultActions result = mockMvc.perform(
|
final ResultActions result = mockMvc.perform(
|
||||||
MockMvcRequestBuilders.post(url)
|
MockMvcRequestBuilders.post("/answers")
|
||||||
.content(new Gson().toJson(addAnswerRequest))
|
.content(new Gson().toJson(request))
|
||||||
.contentType(MediaType.APPLICATION_JSON)
|
.contentType(MediaType.APPLICATION_JSON)
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -52,8 +50,6 @@ class AddAnswerControllerTest {
|
|||||||
@Test
|
@Test
|
||||||
public void addAnswerSuccess() throws Exception {
|
public void addAnswerSuccess() throws Exception {
|
||||||
// given
|
// given
|
||||||
final String url = "/answers";
|
|
||||||
|
|
||||||
final AddAnswerRequest addAnswerRequest = AddAnswerRequest.builder()
|
final AddAnswerRequest addAnswerRequest = AddAnswerRequest.builder()
|
||||||
.quizResourceId(UUID.randomUUID().toString())
|
.quizResourceId(UUID.randomUUID().toString())
|
||||||
.description("desc")
|
.description("desc")
|
||||||
@@ -62,7 +58,7 @@ class AddAnswerControllerTest {
|
|||||||
|
|
||||||
// when
|
// when
|
||||||
final ResultActions result = mockMvc.perform(
|
final ResultActions result = mockMvc.perform(
|
||||||
MockMvcRequestBuilders.post(url)
|
MockMvcRequestBuilders.post("/answers")
|
||||||
.content(new Gson().toJson(addAnswerRequest))
|
.content(new Gson().toJson(addAnswerRequest))
|
||||||
.contentType(MediaType.APPLICATION_JSON)
|
.contentType(MediaType.APPLICATION_JSON)
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -24,11 +24,10 @@ class DeleteAnswerControllerTest {
|
|||||||
@Test
|
@Test
|
||||||
public void deleteAnswerSuccess() throws Exception {
|
public void deleteAnswerSuccess() throws Exception {
|
||||||
// given
|
// given
|
||||||
final String url = "/answers/" + UUID.randomUUID();
|
|
||||||
|
|
||||||
// when
|
// when
|
||||||
final ResultActions result = mockMvc.perform(
|
final ResultActions result = mockMvc.perform(
|
||||||
MockMvcRequestBuilders.delete(url)
|
MockMvcRequestBuilders.delete("/answers/" + UUID.randomUUID())
|
||||||
);
|
);
|
||||||
|
|
||||||
// then
|
// then
|
||||||
|
|||||||
@@ -27,7 +27,6 @@ class GetAnswerControllerTest {
|
|||||||
public void getAnswer() throws Exception {
|
public void getAnswer() throws Exception {
|
||||||
// given
|
// given
|
||||||
final String resourceId = UUID.randomUUID().toString();
|
final String resourceId = UUID.randomUUID().toString();
|
||||||
final String url = "/answers/" + resourceId;
|
|
||||||
final GetAnswerResponse getAnswerResponse = GetAnswerResponse.builder()
|
final GetAnswerResponse getAnswerResponse = GetAnswerResponse.builder()
|
||||||
.resourceId(resourceId)
|
.resourceId(resourceId)
|
||||||
.quizResourceId(UUID.randomUUID().toString())
|
.quizResourceId(UUID.randomUUID().toString())
|
||||||
@@ -35,11 +34,11 @@ class GetAnswerControllerTest {
|
|||||||
.createdAt(System.currentTimeMillis())
|
.createdAt(System.currentTimeMillis())
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
doReturn(getAnswerResponse).when(answerService).getAnswer(resourceId);
|
doReturn(getAnswerResponse).when(answerService).get(resourceId);
|
||||||
|
|
||||||
// when
|
// when
|
||||||
final ResultActions result = mockMvc.perform(
|
final ResultActions result = mockMvc.perform(
|
||||||
MockMvcRequestBuilders.get(url)
|
MockMvcRequestBuilders.get("/answers/" + resourceId)
|
||||||
);
|
);
|
||||||
|
|
||||||
// then
|
// then
|
||||||
|
|||||||
@@ -31,8 +31,6 @@ class UpdateAnswerControllerTest {
|
|||||||
@MethodSource("provideParameters")
|
@MethodSource("provideParameters")
|
||||||
public void putAnswerFail_InvalidParameter(final String quizResourceId, final String desc) throws Exception {
|
public void putAnswerFail_InvalidParameter(final String quizResourceId, final String desc) throws Exception {
|
||||||
// given
|
// given
|
||||||
final String url = "/answers";
|
|
||||||
|
|
||||||
final AddAnswerRequest addAnswerRequest = AddAnswerRequest.builder()
|
final AddAnswerRequest addAnswerRequest = AddAnswerRequest.builder()
|
||||||
.quizResourceId(quizResourceId)
|
.quizResourceId(quizResourceId)
|
||||||
.description(desc)
|
.description(desc)
|
||||||
@@ -40,7 +38,7 @@ class UpdateAnswerControllerTest {
|
|||||||
|
|
||||||
// when
|
// when
|
||||||
final ResultActions result = mockMvc.perform(
|
final ResultActions result = mockMvc.perform(
|
||||||
MockMvcRequestBuilders.put(url)
|
MockMvcRequestBuilders.put("/answers")
|
||||||
.content(new Gson().toJson(addAnswerRequest))
|
.content(new Gson().toJson(addAnswerRequest))
|
||||||
.contentType(MediaType.APPLICATION_JSON)
|
.contentType(MediaType.APPLICATION_JSON)
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -24,25 +24,6 @@ class AnswerRepositoryTest {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private EntityManager entityManager;
|
private EntityManager entityManager;
|
||||||
|
|
||||||
@Test
|
|
||||||
public void insertAnswer() {
|
|
||||||
// given
|
|
||||||
final Quiz quiz = EntityCreationUtils.quiz();
|
|
||||||
final Quiz savedQuiz = quizRepository.save(quiz);
|
|
||||||
final Answer answer = EntityCreationUtils.answer(savedQuiz);
|
|
||||||
|
|
||||||
answerRepository.save(answer);
|
|
||||||
savedQuiz.setAnswer(answer);
|
|
||||||
entityManager.flush();
|
|
||||||
|
|
||||||
// then
|
|
||||||
final Answer result = answerRepository.save(answer);
|
|
||||||
|
|
||||||
assertThat(result.getResourceId()).isEqualTo(answer.getResourceId());
|
|
||||||
assertThat(result.getDescription()).isEqualTo(answer.getDescription());
|
|
||||||
assertThat(result.getQuiz()).isEqualTo(quiz);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void selectAnswerByQuizId() {
|
public void selectAnswerByQuizId() {
|
||||||
// given
|
// given
|
||||||
|
|||||||
@@ -1,11 +1,8 @@
|
|||||||
package com.mangkyu.employment.interview.app.answer.service;
|
package com.mangkyu.employment.interview.app.answer.service;
|
||||||
|
|
||||||
import com.mangkyu.employment.interview.app.answer.controller.AddAnswerRequest;
|
|
||||||
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.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.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 com.mangkyu.employment.interview.testutils.EntityCreationUtils;
|
import com.mangkyu.employment.interview.testutils.EntityCreationUtils;
|
||||||
@@ -14,7 +11,6 @@ import org.junit.jupiter.api.extension.ExtendWith;
|
|||||||
import org.mockito.InjectMocks;
|
import org.mockito.InjectMocks;
|
||||||
import org.mockito.Mock;
|
import org.mockito.Mock;
|
||||||
import org.mockito.junit.jupiter.MockitoExtension;
|
import org.mockito.junit.jupiter.MockitoExtension;
|
||||||
import org.springframework.test.util.ReflectionTestUtils;
|
|
||||||
|
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
@@ -32,27 +28,35 @@ class DeleteAnswerServiceTest {
|
|||||||
private AnswerRepository answerRepository;
|
private AnswerRepository answerRepository;
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void deleteAnswerByQuizResourceIdFail_AnswerNotExists() {
|
void deleteAnswerByQuizResourceIdFail_AnswerNotExists() {
|
||||||
// given
|
// given
|
||||||
final String resourceId = UUID.randomUUID().toString();
|
final String resourceId = UUID.randomUUID().toString();
|
||||||
doReturn(Optional.empty()).when(answerRepository).findByResourceId(resourceId);
|
|
||||||
|
doReturn(Optional.empty())
|
||||||
|
.when(answerRepository)
|
||||||
|
.findByResourceId(resourceId);
|
||||||
|
|
||||||
// when
|
// when
|
||||||
final RestApiException result = assertThrows(RestApiException.class, () -> answerService.deleteAnswer(resourceId));
|
final RestApiException result = assertThrows(
|
||||||
|
RestApiException.class,
|
||||||
|
() -> answerService.delete(resourceId));
|
||||||
|
|
||||||
// then
|
// then
|
||||||
assertThat(result.getErrorCode()).isEqualTo(CommonErrorCode.RESOURCE_NOT_FOUND);
|
assertThat(result.getErrorCode()).isEqualTo(CommonErrorCode.RESOURCE_NOT_FOUND);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void deleteAnswerByQuizResourceIdSuccess() throws RestApiException {
|
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)).when(answerRepository).findByResourceId(answer.getResourceId());
|
|
||||||
|
doReturn(Optional.of(answer))
|
||||||
|
.when(answerRepository)
|
||||||
|
.findByResourceId(answer.getResourceId());
|
||||||
|
|
||||||
// when
|
// when
|
||||||
answerService.deleteAnswer(answer.getResourceId());
|
answerService.delete(answer.getResourceId());
|
||||||
|
|
||||||
// then
|
// then
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.mangkyu.employment.interview.app.answer.service;
|
package com.mangkyu.employment.interview.app.answer.service;
|
||||||
|
|
||||||
import com.mangkyu.employment.interview.app.answer.controller.AddAnswerRequest;
|
|
||||||
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.entity.Answer;
|
||||||
import com.mangkyu.employment.interview.app.answer.repository.AnswerRepository;
|
import com.mangkyu.employment.interview.app.answer.repository.AnswerRepository;
|
||||||
@@ -14,7 +13,6 @@ import org.junit.jupiter.api.extension.ExtendWith;
|
|||||||
import org.mockito.InjectMocks;
|
import org.mockito.InjectMocks;
|
||||||
import org.mockito.Mock;
|
import org.mockito.Mock;
|
||||||
import org.mockito.junit.jupiter.MockitoExtension;
|
import org.mockito.junit.jupiter.MockitoExtension;
|
||||||
import org.springframework.test.util.ReflectionTestUtils;
|
|
||||||
|
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
@@ -38,10 +36,15 @@ class GetAnswerServiceTest {
|
|||||||
public void getAnswerByQuizResourceIdFail_AnswerNotExists() {
|
public void getAnswerByQuizResourceIdFail_AnswerNotExists() {
|
||||||
// given
|
// given
|
||||||
final String resourceId = UUID.randomUUID().toString();
|
final String resourceId = UUID.randomUUID().toString();
|
||||||
doReturn(Optional.empty()).when(answerRepository).findByResourceId(resourceId);
|
|
||||||
|
doReturn(Optional.empty())
|
||||||
|
.when(answerRepository)
|
||||||
|
.findByResourceId(resourceId);
|
||||||
|
|
||||||
// when
|
// when
|
||||||
final RestApiException result = assertThrows(RestApiException.class, () -> answerService.getAnswer(resourceId));
|
final RestApiException result = assertThrows(
|
||||||
|
RestApiException.class,
|
||||||
|
() -> answerService.get(resourceId));
|
||||||
|
|
||||||
// then
|
// then
|
||||||
assertThat(result.getErrorCode()).isEqualTo(CommonErrorCode.RESOURCE_NOT_FOUND);
|
assertThat(result.getErrorCode()).isEqualTo(CommonErrorCode.RESOURCE_NOT_FOUND);
|
||||||
@@ -52,10 +55,13 @@ class GetAnswerServiceTest {
|
|||||||
// 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)).when(answerRepository).findByResourceId(answer.getResourceId());
|
|
||||||
|
doReturn(Optional.of(answer))
|
||||||
|
.when(answerRepository)
|
||||||
|
.findByResourceId(answer.getResourceId());
|
||||||
|
|
||||||
// when
|
// when
|
||||||
final GetAnswerResponse result = answerService.getAnswer(answer.getResourceId());
|
final GetAnswerResponse result = answerService.get(answer.getResourceId());
|
||||||
|
|
||||||
// then
|
// then
|
||||||
assertThat(result.getDescription()).isEqualTo(answer.getDescription());
|
assertThat(result.getDescription()).isEqualTo(answer.getDescription());
|
||||||
|
|||||||
@@ -40,10 +40,12 @@ class UpdateAnswerServiceTest {
|
|||||||
final Answer answer = EntityCreationUtils.answer(quiz);
|
final Answer answer = EntityCreationUtils.answer(quiz);
|
||||||
ReflectionTestUtils.setField(quiz, "answer", answer);
|
ReflectionTestUtils.setField(quiz, "answer", answer);
|
||||||
|
|
||||||
doReturn(quiz).when(quizService).findQuiz(addAnswerRequest.getQuizResourceId());
|
doReturn(quiz)
|
||||||
|
.when(quizService)
|
||||||
|
.findQuiz(addAnswerRequest.getQuizResourceId());
|
||||||
|
|
||||||
// when
|
// when
|
||||||
answerService.addAnswer(addAnswerRequest);
|
answerService.add(addAnswerRequest);
|
||||||
|
|
||||||
// then
|
// then
|
||||||
|
|
||||||
@@ -60,10 +62,12 @@ class UpdateAnswerServiceTest {
|
|||||||
.build();
|
.build();
|
||||||
final Quiz quiz = EntityCreationUtils.quiz();
|
final Quiz quiz = EntityCreationUtils.quiz();
|
||||||
|
|
||||||
doReturn(quiz).when(quizService).findQuiz(addAnswerRequest.getQuizResourceId());
|
doReturn(quiz)
|
||||||
|
.when(quizService)
|
||||||
|
.findQuiz(addAnswerRequest.getQuizResourceId());
|
||||||
|
|
||||||
// when
|
// when
|
||||||
answerService.addAnswer(addAnswerRequest);
|
answerService.add(addAnswerRequest);
|
||||||
|
|
||||||
// then
|
// then
|
||||||
verify(answerRepository, times(1)).save(any(Answer.class));
|
verify(answerRepository, times(1)).save(any(Answer.class));
|
||||||
|
|||||||
Reference in New Issue
Block a user