diff --git a/application/module-exercise/src/test/java/org/fuseri/moduleexercise/question/QuestionServiceTest.java b/application/module-exercise/src/test/java/org/fuseri/moduleexercise/question/QuestionServiceTest.java index e2085f855a1ee0af10166607a56f9b1563e11cb8..298510e1ea93958b62dc321e70031f2c8d0c2ab3 100644 --- a/application/module-exercise/src/test/java/org/fuseri/moduleexercise/question/QuestionServiceTest.java +++ b/application/module-exercise/src/test/java/org/fuseri/moduleexercise/question/QuestionServiceTest.java @@ -1,6 +1,7 @@ package org.fuseri.moduleexercise.question; import jakarta.persistence.EntityNotFoundException; +import org.fuseri.moduleexercise.answer.Answer; import org.fuseri.moduleexercise.exercise.Exercise; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; @@ -10,21 +11,20 @@ import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.mock.mockito.MockBean; import java.util.HashSet; import java.util.Optional; +import java.util.Set; import static org.mockito.ArgumentMatchers.anyLong; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @SpringBootTest -public class QuestionServiceTest { - - +class QuestionServiceTest { @MockBean - QuestionRepository repository; + QuestionRepository questionRepository; @Autowired - QuestionService service; + QuestionService questionService; Exercise exercise; Question question; @@ -32,7 +32,7 @@ public class QuestionServiceTest { @BeforeEach void setup() { - exercise = new Exercise("idioms", "exercise on basic idioms",2,1L,new HashSet<Question>()); + exercise = new Exercise("idioms", "exercise on basic idioms",2,1L,new HashSet<>()); question = new Question("text",new HashSet<>(),exercise); question1 = new Question("text2",new HashSet<>(),exercise); } @@ -40,27 +40,44 @@ public class QuestionServiceTest { @Test void create() { - when(repository.save(question)).thenReturn(question); - Question result = service.create(question); + when(questionRepository.save(question)).thenReturn(question); + Question result = questionService.create(question); Assertions.assertEquals(question, result); - verify(repository).save(question); + verify(questionRepository).save(question); } @Test void notFound() { - when(repository.findById(anyLong())).thenReturn(Optional.empty()); + when(questionRepository.findById(anyLong())).thenReturn(Optional.empty()); - Assertions.assertThrows(EntityNotFoundException.class, () -> service.find(anyLong())); + Assertions.assertThrows(EntityNotFoundException.class, () -> questionService.find(anyLong())); } @Test void find() { - when(repository.findById(anyLong())).thenReturn(Optional.of(question)); + when(questionRepository.findById(anyLong())).thenReturn(Optional.of(question)); - Question result = service.find(anyLong()); + Question result = questionService.find(anyLong()); Assertions.assertEquals(question, result); - verify(repository).findById(anyLong()); + verify(questionRepository).findById(anyLong()); } + @Test + void patchUpdateWithoutAnswers() { + when(questionRepository.findById(anyLong())).thenReturn(Optional.of(question)); + when(questionRepository.save(question)).thenReturn(question); + Question result = questionService.patchUpdateWithoutAnswers(anyLong(), question); + Assertions.assertEquals(question, result); + } + + @Test + void addAnswers() { + Set<Answer> answers = Set.of(new Answer("BA", true, question)); + question.setAnswers(answers); + when(questionRepository.findById(anyLong())).thenReturn(Optional.of(question)); + when(questionRepository.save(question)).thenReturn(question); + Question result = questionService.patchUpdateWithoutAnswers(anyLong(), question); + Assertions.assertEquals(question, result); + } }