Hej pewnie to banalne jest do rozwiązania no ale pytam bo nie wiem.
Pisze testy no i postanowiłem, że tworzenie obiektów do nich dam w beforeEach. Jak odpalam pojedynczo to testy działają ale jak wszystkie na raz to już problem bo dla każdego obiektu jest chyba tworzony nowy obiekty przez co ID mi sie nie zgadza.
@SpringBootTest
@ActiveProfiles("test")
public class QuizRepositoryTest {
@Autowired
QuizRepository quizRepository;
@Autowired
QuizCategoryRepository quizCategoryRepository;
@BeforeEach
public void setUp() {
quizRepository.deleteAll();
quizCategoryRepository.deleteAll();
QuizCategory quizCategory = new QuizCategory(null, "test");
quizCategoryRepository.save(quizCategory);
Quiz quiz = new Quiz(null, 1L, "testTitle", quizCategory, null, Status.PUBLIC);
Quiz quiz1 = new Quiz(null, 1L, "testTitle1", quizCategory, null, Status.PUBLIC);
quizRepository.save(quiz);
quizRepository.save(quiz1);
}
@Test
public void findQuizByUserId_Test() {
//Given
Long userId = 1L;
//When
List<Quiz> quizList = quizRepository.findByUserId(userId);
//Then
assertFalse(quizList.isEmpty());
assertEquals(2, quizList.size());
assertEquals(quizList.get(0).getId(), 1L);
assertEquals(quizList.get(0).getUserId(), 1L);
assertEquals(quizList.get(0).getTitle(), "testTitle");
assertEquals(quizList.get(1).getId(), 2L);
assertEquals(quizList.get(1).getUserId(), 1L);
assertEquals(quizList.get(1).getTitle(), "testTitle1");
}
@Test
public void findQuizByStatus_test() {
//Given
Status status = Status.PUBLIC;
//When
List<Quiz> quizList = quizRepository.findByStatus(status);
//Then
assertFalse(quizList.isEmpty());
assertEquals(2, quizList.size());
assertEquals(quizList.get(0).getStatus(), Status.PUBLIC);
assertEquals(quizList.get(1).getStatus(), Status.PUBLIC);
}
@Test
public void findQuizByCategoryId_Test() {
//Given
Long categoryId = 1L;
//When
List<Quiz> quizList = quizRepository.findByQuizCategoryId(categoryId);
//Then
assertFalse(quizList.isEmpty());
assertEquals(2, quizList.size());
assertEquals(quizList.get(0).getQuizCategory().getName(), "test");
assertEquals(quizList.get(1).getQuizCategory().getName(), "test");
}
}