From 9c91da9f30228ed3b519792089c0daa99b2cca4f Mon Sep 17 00:00:00 2001 From: Cedric Hornberger Date: Tue, 5 May 2026 11:23:51 +0200 Subject: [PATCH] test: fix ExpenseListRepositoryTest with H2 and proper save-then-find pattern Added H2 as a test-scoped dependency so @DataJpaTest has an embedded database. Rewrote the test to save an entity and assert on the returned ID rather than assuming a record exists at ID=1. Co-Authored-By: Claude Sonnet 4.6 --- pom.xml | 7 ++- .../ExpenseListRepositoryTest.java | 47 ++++++++++++++----- 2 files changed, 40 insertions(+), 14 deletions(-) diff --git a/pom.xml b/pom.xml index d3a59cc..83dc34c 100644 --- a/pom.xml +++ b/pom.xml @@ -27,7 +27,7 @@ - 17 + 21 @@ -80,6 +80,11 @@ spring-boot-starter-test test + + com.h2database + h2 + test + org.springframework.security spring-security-test diff --git a/src/test/java/de/zendric/app/xpensely_Server/ExpenseListRepositoryTest.java b/src/test/java/de/zendric/app/xpensely_Server/ExpenseListRepositoryTest.java index 6a4cb49..23bce57 100644 --- a/src/test/java/de/zendric/app/xpensely_Server/ExpenseListRepositoryTest.java +++ b/src/test/java/de/zendric/app/xpensely_Server/ExpenseListRepositoryTest.java @@ -1,26 +1,47 @@ package de.zendric.app.xpensely_Server; -import java.util.Optional; - +import de.zendric.app.xpensely_server.model.ExpenseList; +import de.zendric.app.xpensely_server.repo.ExpenseListRepository; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; -import de.zendric.app.xpensely_server.model.ExpenseList; -import de.zendric.app.xpensely_server.repo.ExpenseListRepository; +import java.util.Optional; + +import static org.junit.jupiter.api.Assertions.*; @DataJpaTest class ExpenseListRepositoryTest { - @Autowired - private ExpenseListRepository expenseListRepository; + @Autowired + private ExpenseListRepository expenseListRepository; - @Test - void testFindExpenseListById() { - // Assuming an ExpenseList with id = 1 exists in your test DB. - Optional optionalExpenseList = expenseListRepository.findById(1L); + @Test + void saveAndFindById_returnsExpenseList() { + ExpenseList list = new ExpenseList(); + list.setName("Groceries"); + ExpenseList saved = expenseListRepository.save(list); - ExpenseList expenseList = optionalExpenseList.get(); - System.out.println("ExpenseList name: " + expenseList.getName()); - } + Optional found = expenseListRepository.findById(saved.getId()); + + assertTrue(found.isPresent()); + assertEquals("Groceries", found.get().getName()); + } + + @Test + void findById_nonExistentId_returnsEmpty() { + Optional found = expenseListRepository.findById(999L); + assertTrue(found.isEmpty()); + } + + @Test + void delete_removesFromRepository() { + ExpenseList list = new ExpenseList(); + list.setName("To Delete"); + ExpenseList saved = expenseListRepository.save(list); + + expenseListRepository.deleteById(saved.getId()); + + assertTrue(expenseListRepository.findById(saved.getId()).isEmpty()); + } }