Add Answer POST APIs

This commit is contained in:
MangKyu
2022-01-09 00:02:23 +09:00
parent 2556424c42
commit 12e60ed3eb
2 changed files with 52 additions and 1 deletions

View File

@@ -24,6 +24,13 @@ public class AnswerController {
.build();
}
@PostMapping("/answer")
public ResponseEntity<Void> postAnswer(@RequestBody @Valid final AddAnswerRequest addAnswerRequest) throws QuizException {
answerService.addAnswer(addAnswerRequest);
return ResponseEntity.noContent()
.build();
}
@GetMapping("/answer/{resourceId}")
public ResponseEntity<GetAnswerResponse> getAnswer(@PathVariable final String resourceId) throws QuizException {
return ResponseEntity.ok(answerService.getAnswer(resourceId));

View File

@@ -85,7 +85,7 @@ class AnswerControllerTest {
// when
final ResultActions result = mockMvc.perform(
MockMvcRequestBuilders.put(url)
MockMvcRequestBuilders.post(url)
.content(new Gson().toJson(addAnswerRequest))
.contentType(MediaType.APPLICATION_JSON)
);
@@ -105,6 +105,50 @@ class AnswerControllerTest {
.build();
// when
final ResultActions result = mockMvc.perform(
MockMvcRequestBuilders.post(url)
.content(new Gson().toJson(addAnswerRequest))
.contentType(MediaType.APPLICATION_JSON)
);
// then
result.andExpect(status().isNoContent());
}
@ParameterizedTest
@MethodSource("provideParameters")
public void putAnswerFail_InvalidParameter(final String quizResourceId, final String desc) throws Exception {
// given
final String url = "/answer";
final AddAnswerRequest addAnswerRequest = AddAnswerRequest.builder()
.quizResourceId(quizResourceId)
.description(desc)
.build();
// when
final ResultActions result = mockMvc.perform(
MockMvcRequestBuilders.put(url)
.content(new Gson().toJson(addAnswerRequest))
.contentType(MediaType.APPLICATION_JSON)
);
// then
result.andExpect(status().isBadRequest());
}
@Test
public void putAnswerSuccess() throws Exception {
// given
final String url = "/answer";
final AddAnswerRequest addAnswerRequest = AddAnswerRequest.builder()
.quizResourceId(UUID.randomUUID().toString())
.description("desc")
.build();
// when
final ResultActions result = mockMvc.perform(
MockMvcRequestBuilders.put(url)