[Added] Functionality for getting data from the database [NOTE: swapping seems to difficult for now, might have to go for a cache approach]
This commit is contained in:
@@ -1,91 +0,0 @@
|
||||
package com.ninjaws.quiz.repositories;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
|
||||
import org.springframework.test.annotation.Rollback;
|
||||
|
||||
import com.ninjaws.quiz.models.Question;
|
||||
|
||||
@DataJpaTest
|
||||
public class QuestRepositoryTest {
|
||||
@Autowired
|
||||
private QuestionRepository questionRepository;
|
||||
|
||||
private Question question;
|
||||
|
||||
@BeforeEach
|
||||
public void setUp() {
|
||||
question = new Question();
|
||||
question.setType("multiple choice");
|
||||
question.setDifficulty("easy");
|
||||
question.setCategory("general knowledge");
|
||||
question.setQuestion("What is the capital of France?");
|
||||
question.setCorrectAnswer("Paris");
|
||||
question.setIncorrectAnswers(Arrays.asList("Berlin", "Madrid", "Rome"));
|
||||
}
|
||||
|
||||
@Test
|
||||
@Rollback(false)
|
||||
public void testSaveQuestion() {
|
||||
Question savedQuestion = questionRepository.save(question);
|
||||
assertThat(savedQuestion).isNotNull();
|
||||
assertThat(savedQuestion.getId()).isGreaterThan(1);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFindQuestionById() {
|
||||
questionRepository.save(question);
|
||||
Optional<Question> foundQuestion = questionRepository.findById(question.getId());
|
||||
assertThat(foundQuestion).isPresent();
|
||||
assertThat(foundQuestion.get().getQuestion()).isEqualTo(question.getQuestion());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFindAllQuestions() {
|
||||
questionRepository.save(question);
|
||||
List<Question> questions = questionRepository.findAll();
|
||||
assertThat(questions).isNotEmpty();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDeleteQuestion() {
|
||||
questionRepository.save(question);
|
||||
Long id = question.getId();
|
||||
questionRepository.deleteById(id);
|
||||
Optional<Question> deletedQuestion = questionRepository.findById(id);
|
||||
assertThat(deletedQuestion).isNotPresent();
|
||||
}
|
||||
|
||||
@Test
|
||||
@Rollback(false)
|
||||
public void testSaveQuestions() {
|
||||
Question question1 = new Question();
|
||||
question1.setType("multiple choice");
|
||||
question1.setDifficulty("easy");
|
||||
question1.setCategory("general knowledge");
|
||||
question1.setQuestion("What is the capital of France?");
|
||||
question1.setCorrectAnswer("Paris");
|
||||
question1.setIncorrectAnswers(Arrays.asList("Berlin", "Madrid", "Rome"));
|
||||
|
||||
Question question2 = new Question();
|
||||
question2.setType("multiple choice");
|
||||
question2.setDifficulty("medium");
|
||||
question2.setCategory("science");
|
||||
question2.setQuestion("What is the chemical symbol for water?");
|
||||
question2.setCorrectAnswer("H2O");
|
||||
question2.setIncorrectAnswers(Arrays.asList("CO2", "O2", "NaCl"));
|
||||
|
||||
List<Question> savedQuestions = questionRepository.saveAll(Arrays.asList(question1, question2));
|
||||
|
||||
assertThat(savedQuestions).hasSize(2);
|
||||
assertThat(savedQuestions.get(0).getQuestion()).isEqualTo("What is the capital of France?");
|
||||
assertThat(savedQuestions.get(1).getQuestion()).isEqualTo("What is the chemical symbol for water?");
|
||||
}
|
||||
}
|
||||
@@ -1,58 +0,0 @@
|
||||
package com.ninjaws.quiz.services;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.mockito.Mockito.*;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.ninjaws.quiz.models.ApiResponse;
|
||||
import com.ninjaws.quiz.models.Question;
|
||||
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
public class CleanerServiceTest {
|
||||
|
||||
@InjectMocks
|
||||
private CleanerService cleanerService;
|
||||
|
||||
@Mock
|
||||
private ObjectMapper objectMapper;
|
||||
|
||||
@BeforeEach
|
||||
public void setUp() {
|
||||
MockitoAnnotations.openMocks(this);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testExtractApiResponse() throws IOException {
|
||||
String json = "{\"response_code\":200,\"results\":[{\"type\":\"multiple choice\",\"difficulty\":\"easy\",\"category\":\"general knowledge\",\"question\":\"What is the capital of France?\",\"correct_answer\":\"Paris\",\"incorrect_answers\":[\"Berlin\",\"Madrid\",\"Rome\"]}]}"; // Example JSON input
|
||||
|
||||
Question question = new Question();
|
||||
question.setType("multiple choice");
|
||||
question.setDifficulty("easy");
|
||||
question.setCategory("general knowledge");
|
||||
question.setQuestion("What is the capital of France?");
|
||||
question.setCorrectAnswer("Paris");
|
||||
question.setIncorrectAnswers(Arrays.asList("Berlin", "Madrid", "Rome"));
|
||||
|
||||
ApiResponse expectedResponse = new ApiResponse();
|
||||
expectedResponse.setResponseCode(200);
|
||||
expectedResponse.setResults(Arrays.asList(question));
|
||||
when(objectMapper.readValue(json, ApiResponse.class)).thenReturn(expectedResponse);
|
||||
|
||||
ApiResponse actualResponse = cleanerService.extractApiResponse(json);
|
||||
assertThat(actualResponse).isNotNull();
|
||||
assertThat(actualResponse.getResponseCode()).isEqualTo(expectedResponse.getResponseCode());
|
||||
assertThat(actualResponse.getResults()).isNotEmpty();
|
||||
assertThat(actualResponse.getResults().get(0).getQuestion()).isEqualTo(question.getQuestion());
|
||||
verify(objectMapper, times(1)).readValue(json, ApiResponse.class);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,107 @@
|
||||
package com.ninjaws.quiz.services;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Arrays;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import static org.mockito.Mockito.times;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.mockito.junit.jupiter.MockitoExtension;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.ninjaws.quiz.entities.Category;
|
||||
import com.ninjaws.quiz.models.ApiResponse;
|
||||
import com.ninjaws.quiz.models.QuestionDTO;
|
||||
|
||||
// public class CleanerServiceTest {
|
||||
|
||||
// @InjectMocks
|
||||
// private CleanerService cleanerService;
|
||||
|
||||
// @Mock
|
||||
// private ObjectMapper objectMapper;
|
||||
|
||||
// @BeforeEach
|
||||
// public void setUp() {
|
||||
// MockitoAnnotations.openMocks(this);
|
||||
// }
|
||||
|
||||
// @Test
|
||||
// public void testExtractApiResponse() throws IOException {
|
||||
// String json = "{\"response_code\":200,\"results\":[{\"type\":\"multiple choice\",\"difficulty\":\"easy\",\"category\":\"general knowledge\",\"question\":\"What is the capital of France?\",\"correct_answer\":\"Paris\",\"incorrect_answers\":[\"Berlin\",\"Madrid\",\"Rome\"]}]}"; // Example JSON input
|
||||
|
||||
// Question question = new Question();
|
||||
// question.setType("multiple choice");
|
||||
// question.setDifficulty("easy");
|
||||
// question.setCategory("general knowledge");
|
||||
// question.setQuestion("What is the capital of France?");
|
||||
// question.setCorrectAnswer("Paris");
|
||||
// question.setIncorrectAnswers(Arrays.asList("Berlin", "Madrid", "Rome"));
|
||||
|
||||
// ApiResponse expectedResponse = new ApiResponse();
|
||||
// expectedResponse.setResponseCode(200);
|
||||
// expectedResponse.setResults(Arrays.asList(question));
|
||||
// when(objectMapper.readValue(json, ApiResponse.class)).thenReturn(expectedResponse);
|
||||
|
||||
// ApiResponse actualResponse = cleanerService.extractApiResponse(json);
|
||||
// assertThat(actualResponse).isNotNull();
|
||||
// assertThat(actualResponse.getResponseCode()).isEqualTo(expectedResponse.getResponseCode());
|
||||
// assertThat(actualResponse.getResults()).isNotEmpty();
|
||||
// assertThat(actualResponse.getResults().get(0).getQuestion()).isEqualTo(question.getQuestion());
|
||||
// verify(objectMapper, times(1)).readValue(json, ApiResponse.class);
|
||||
// }
|
||||
// }
|
||||
|
||||
@ExtendWith(MockitoExtension.class)
|
||||
public class CleanerServiceTest {
|
||||
|
||||
@InjectMocks
|
||||
private CleanerService cleanerService;
|
||||
|
||||
@Mock
|
||||
private ObjectMapper objectMapper;
|
||||
|
||||
@BeforeEach
|
||||
public void setUp() {
|
||||
MockitoAnnotations.openMocks(this);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testExtractApiResponse() throws IOException {
|
||||
String json = "{\"response_code\":200,\"results\":[{\"type\":\"multiple choice\",\"difficulty\":\"easy\",\"category\":\"general knowledge\",\"question\":\"What is the capital of France?\",\"correct_answer\":\"Paris\",\"incorrect_answers\":[\"Berlin\",\"Madrid\",\"Rome\"]}]}"; // Example JSON input
|
||||
|
||||
// Create a Category object for the question
|
||||
Category category = new Category();
|
||||
category.setId(1L);
|
||||
category.setName("General Knowledge");
|
||||
|
||||
// Create the Question object with the category
|
||||
QuestionDTO question = new QuestionDTO();
|
||||
question.setType("multiple choice");
|
||||
question.setDifficulty("easy");
|
||||
question.setCategory(category); // Set the Category object here
|
||||
question.setQuestion("What is the capital of France?");
|
||||
question.setCorrectAnswer("Paris");
|
||||
question.setIncorrectAnswers(Arrays.asList("Berlin", "Madrid", "Rome"));
|
||||
|
||||
ApiResponse expectedResponse = new ApiResponse();
|
||||
expectedResponse.setResponseCode(200);
|
||||
expectedResponse.setResults(Arrays.asList(question));
|
||||
when(objectMapper.readValue(json, ApiResponse.class)).thenReturn(expectedResponse);
|
||||
|
||||
ApiResponse actualResponse = cleanerService.extractApiResponse(json);
|
||||
assertThat(actualResponse).isNotNull();
|
||||
assertThat(actualResponse.getResponseCode()).isEqualTo(expectedResponse.getResponseCode());
|
||||
assertThat(actualResponse.getResults()).isNotEmpty();
|
||||
assertThat(actualResponse.getResults().get(0).getQuestion()).isEqualTo(question.getQuestion());
|
||||
assertThat(actualResponse.getResults().get(0).getCategory().getName()).isEqualTo(category.getName()); // Check category name
|
||||
verify(objectMapper, times(1)).readValue(json, ApiResponse.class);
|
||||
}
|
||||
}
|
||||
@@ -1,105 +0,0 @@
|
||||
package com.ninjaws.quiz.services;
|
||||
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.ArgumentMatchers.anyList;
|
||||
import static org.mockito.Mockito.times;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
|
||||
import com.ninjaws.quiz.models.Question;
|
||||
import com.ninjaws.quiz.repositories.QuestionRepository;
|
||||
|
||||
public class DataServiceTest {
|
||||
|
||||
@InjectMocks
|
||||
private DataService dataService;
|
||||
|
||||
@Mock
|
||||
private QuestionRepository questionRepository;
|
||||
|
||||
private Question question;
|
||||
|
||||
|
||||
@BeforeEach
|
||||
public void setUp() {
|
||||
MockitoAnnotations.openMocks(this);
|
||||
|
||||
question = new Question();
|
||||
question.setType("multiple choice");
|
||||
question.setDifficulty("easy");
|
||||
question.setCategory("general knowledge");
|
||||
question.setQuestion("What is the capital of France?");
|
||||
question.setCorrectAnswer("Paris");
|
||||
question.setIncorrectAnswers(Arrays.asList("Berlin", "Madrid", "Rome"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSaveQuestion() {
|
||||
when(questionRepository.save(any(Question.class))).thenReturn(question);
|
||||
|
||||
Question savedQuestion = dataService.saveQuestion(question);
|
||||
assertThat(savedQuestion).isNotNull();
|
||||
assertThat(savedQuestion.getQuestion()).isEqualTo("What is the capital of France?");
|
||||
verify(questionRepository, times(1)).save(question);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetAllQuestions() {
|
||||
when(questionRepository.findAll()).thenReturn(Arrays.asList(question));
|
||||
|
||||
List<Question> questions = dataService.getAllQuestions();
|
||||
assertThat(questions).isNotEmpty();
|
||||
assertThat(questions.size()).isEqualTo(1);
|
||||
assertThat(questions.get(0).getQuestion()).isEqualTo("What is the capital of France?");
|
||||
verify(questionRepository, times(1)).findAll();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFindQuestionById() {
|
||||
when(questionRepository.findById(any(Long.class))).thenReturn(Optional.of(question));
|
||||
|
||||
Optional<Question> foundQuestion = questionRepository.findById(1L);
|
||||
assertThat(foundQuestion).isPresent();
|
||||
assertThat(foundQuestion.get().getQuestion()).isEqualTo("What is the capital of France?");
|
||||
verify(questionRepository, times(1)).findById(1L);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSaveQuestions() {
|
||||
Question question1 = new Question();
|
||||
question1.setType("multiple choice");
|
||||
question1.setDifficulty("easy");
|
||||
question1.setCategory("general knowledge");
|
||||
question1.setQuestion("What is the capital of France?");
|
||||
question1.setCorrectAnswer("Paris");
|
||||
question1.setIncorrectAnswers(Arrays.asList("Berlin", "Madrid", "Rome"));
|
||||
|
||||
Question question2 = new Question();
|
||||
question2.setType("multiple choice");
|
||||
question2.setDifficulty("medium");
|
||||
question2.setCategory("science");
|
||||
question2.setQuestion("What is the chemical symbol for water?");
|
||||
question2.setCorrectAnswer("H2O");
|
||||
question2.setIncorrectAnswers(Arrays.asList("CO2", "O2", "NaCl"));
|
||||
|
||||
when(questionRepository.saveAll(anyList())).thenReturn(Arrays.asList(question1, question2));
|
||||
|
||||
List<Question> questions = dataService.saveQuestions(Arrays.asList(question1, question2));
|
||||
|
||||
assertThat(questions).hasSize(2);
|
||||
assertThat(questions.get(0).getQuestion()).isEqualTo("What is the capital of France?");
|
||||
assertThat(questions.get(1).getQuestion()).isEqualTo("What is the chemical symbol for water?");
|
||||
verify(questionRepository, times(1)).saveAll(anyList());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,202 @@
|
||||
package com.ninjaws.quiz.services;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.ArgumentMatchers.anyList;
|
||||
import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import static org.mockito.Mockito.times;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.mockito.junit.jupiter.MockitoExtension;
|
||||
|
||||
import com.ninjaws.quiz.entities.Category;
|
||||
import com.ninjaws.quiz.models.QuestionDTO;
|
||||
import com.ninjaws.quiz.repositories.QuestionRepository;
|
||||
|
||||
// public class DataServiceTest {
|
||||
|
||||
// @InjectMocks
|
||||
// private DataService dataService;
|
||||
|
||||
// @Mock
|
||||
// private QuestionRepository questionRepository;
|
||||
|
||||
// private Question question;
|
||||
|
||||
|
||||
// @BeforeEach
|
||||
// public void setUp() {
|
||||
// MockitoAnnotations.openMocks(this);
|
||||
|
||||
// question = new Question();
|
||||
// question.setType("multiple choice");
|
||||
// question.setDifficulty("easy");
|
||||
// question.setCategory("general knowledge");
|
||||
// question.setQuestion("What is the capital of France?");
|
||||
// question.setCorrectAnswer("Paris");
|
||||
// question.setIncorrectAnswers(Arrays.asList("Berlin", "Madrid", "Rome"));
|
||||
// }
|
||||
|
||||
// @Test
|
||||
// public void testSaveQuestion() {
|
||||
// when(questionRepository.save(any(Question.class))).thenReturn(question);
|
||||
|
||||
// Question savedQuestion = dataService.saveQuestion(question);
|
||||
// assertThat(savedQuestion).isNotNull();
|
||||
// assertThat(savedQuestion.getQuestion()).isEqualTo("What is the capital of France?");
|
||||
// verify(questionRepository, times(1)).save(question);
|
||||
// }
|
||||
|
||||
// @Test
|
||||
// public void testGetAllQuestions() {
|
||||
// when(questionRepository.findAll()).thenReturn(Arrays.asList(question));
|
||||
|
||||
// List<Question> questions = dataService.getAllQuestions();
|
||||
// assertThat(questions).isNotEmpty();
|
||||
// assertThat(questions.size()).isEqualTo(1);
|
||||
// assertThat(questions.get(0).getQuestion()).isEqualTo("What is the capital of France?");
|
||||
// verify(questionRepository, times(1)).findAll();
|
||||
// }
|
||||
|
||||
// @Test
|
||||
// public void testFindQuestionById() {
|
||||
// when(questionRepository.findById(any(Long.class))).thenReturn(Optional.of(question));
|
||||
|
||||
// Optional<Question> foundQuestion = questionRepository.findById(1L);
|
||||
// assertThat(foundQuestion).isPresent();
|
||||
// assertThat(foundQuestion.get().getQuestion()).isEqualTo("What is the capital of France?");
|
||||
// verify(questionRepository, times(1)).findById(1L);
|
||||
// }
|
||||
|
||||
// @Test
|
||||
// public void testSaveQuestions() {
|
||||
// Question question1 = new Question();
|
||||
// question1.setType("multiple choice");
|
||||
// question1.setDifficulty("easy");
|
||||
// question1.setCategory("general knowledge");
|
||||
// question1.setQuestion("What is the capital of France?");
|
||||
// question1.setCorrectAnswer("Paris");
|
||||
// question1.setIncorrectAnswers(Arrays.asList("Berlin", "Madrid", "Rome"));
|
||||
|
||||
// Question question2 = new Question();
|
||||
// question2.setType("multiple choice");
|
||||
// question2.setDifficulty("medium");
|
||||
// question2.setCategory("science");
|
||||
// question2.setQuestion("What is the chemical symbol for water?");
|
||||
// question2.setCorrectAnswer("H2O");
|
||||
// question2.setIncorrectAnswers(Arrays.asList("CO2", "O2", "NaCl"));
|
||||
|
||||
// when(questionRepository.saveAll(anyList())).thenReturn(Arrays.asList(question1, question2));
|
||||
|
||||
// List<Question> questions = dataService.saveQuestions(Arrays.asList(question1, question2));
|
||||
|
||||
// assertThat(questions).hasSize(2);
|
||||
// assertThat(questions.get(0).getQuestion()).isEqualTo("What is the capital of France?");
|
||||
// assertThat(questions.get(1).getQuestion()).isEqualTo("What is the chemical symbol for water?");
|
||||
// verify(questionRepository, times(1)).saveAll(anyList());
|
||||
// }
|
||||
// }
|
||||
|
||||
@ExtendWith(MockitoExtension.class)
|
||||
public class DataServiceTest {
|
||||
|
||||
@InjectMocks
|
||||
private DataService dataService;
|
||||
|
||||
@Mock
|
||||
private QuestionRepository questionRepository;
|
||||
|
||||
private QuestionDTO question;
|
||||
private Category category;
|
||||
|
||||
@BeforeEach
|
||||
public void setUp() {
|
||||
MockitoAnnotations.openMocks(this);
|
||||
|
||||
category = new Category();
|
||||
category.setId(1L);
|
||||
category.setName("General Knowledge");
|
||||
|
||||
question = new QuestionDTO();
|
||||
question.setType("multiple choice");
|
||||
question.setDifficulty("easy");
|
||||
question.setCategory(category); // Set the Category object here
|
||||
question.setQuestion("What is the capital of France?");
|
||||
question.setCorrectAnswer("Paris");
|
||||
question.setIncorrectAnswers(Arrays.asList("Berlin", "Madrid", "Rome"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSaveQuestion() {
|
||||
when(questionRepository.save(any(QuestionDTO.class))).thenReturn(question);
|
||||
|
||||
QuestionDTO savedQuestion = dataService.saveQuestion(question);
|
||||
assertThat(savedQuestion).isNotNull();
|
||||
assertThat(savedQuestion.getQuestion()).isEqualTo("What is the capital of France?");
|
||||
assertThat(savedQuestion.getCategory().getName()).isEqualTo("General Knowledge"); // Check category name
|
||||
verify(questionRepository, times(1)).save(question);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetAllQuestions() {
|
||||
when(questionRepository.findAll()).thenReturn(Arrays.asList(question));
|
||||
|
||||
List<QuestionDTO> questions = dataService.getAllQuestions();
|
||||
assertThat(questions).isNotEmpty();
|
||||
assertThat(questions.size()).isEqualTo(1);
|
||||
assertThat(questions.get(0).getQuestion()).isEqualTo("What is the capital of France?");
|
||||
assertThat(questions.get(0).getCategory().getName()).isEqualTo("General Knowledge"); // Check category name
|
||||
verify(questionRepository, times(1)).findAll();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFindQuestionById() {
|
||||
when(questionRepository.findById(any(Long.class))).thenReturn(Optional.of(question));
|
||||
|
||||
Optional<QuestionDTO> foundQuestion = questionRepository.findById(1L);
|
||||
assertThat(foundQuestion).isPresent();
|
||||
assertThat(foundQuestion.get().getQuestion()).isEqualTo("What is the capital of France?");
|
||||
assertThat(foundQuestion.get().getCategory().getName()).isEqualTo("General Knowledge"); // Check category name
|
||||
verify(questionRepository, times(1)).findById(1L);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSaveQuestions() {
|
||||
QuestionDTO question1 = new QuestionDTO();
|
||||
question1.setType("multiple choice");
|
||||
question1.setDifficulty("easy");
|
||||
question1.setCategory(category); // Set the Category object here
|
||||
question1.setQuestion("What is the capital of France?");
|
||||
question1.setCorrectAnswer("Paris");
|
||||
question1.setIncorrectAnswers(Arrays.asList("Berlin", "Madrid", "Rome"));
|
||||
|
||||
QuestionDTO question2 = new QuestionDTO();
|
||||
Category category2 = new Category();
|
||||
category2.setId(2L);
|
||||
category2.setName("Science");
|
||||
question2.setType("multiple choice");
|
||||
question2.setDifficulty("medium");
|
||||
question2.setCategory(category2); // Set the Category object here
|
||||
question2.setQuestion("What is the chemical symbol for water?");
|
||||
question2.setCorrectAnswer("H2O");
|
||||
question2.setIncorrectAnswers(Arrays.asList("CO2", "O2", "NaCl"));
|
||||
|
||||
when(questionRepository.saveAll(anyList())).thenReturn(Arrays.asList(question1, question2));
|
||||
|
||||
List<QuestionDTO> questions = dataService.saveQuestions(Arrays.asList(question1, question2));
|
||||
|
||||
assertThat(questions).hasSize(2);
|
||||
assertThat(questions.get(0).getQuestion()).isEqualTo("What is the capital of France?");
|
||||
assertThat(questions.get(1).getQuestion()).isEqualTo("What is the chemical symbol for water?");
|
||||
verify(questionRepository, times(1)).saveAll(anyList());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user