spring boot test husky

@DataJpaTest public class KundeRepositoryTest { @Autowired private KundeRepository kundeRepository; @Test void findBestellungByKundeId(){ Kunde kunde = new Kunde(); kunde.setId(1L); kunde.setVorname("Max"); kunde.setNachname("Mustermann"); kunde.setEmail("maxmustermann@gmail.com"); kunde.setAlter(39); Bestellung b1 = new Bestellung(); b1.setId(1L); b1.setBestelldatum("28-05-2025"); b1.setBetrag(10.0); b1.setKunde(kunde); Bestellung b2 = new Bestellung(); b1.setId(2L); b2.setBestelldatum("30-05-2025"); b2.setBetrag(20.0); b2.setKunde(kunde); kunde.setBestellungList(List.of(b1,b2)); kundeRepository.save(kunde); List bestellungs = kundeRepository.findBestellungenByKundeId(kunde.getId()); assertEquals(2, bestellungs.size()); } @ExtendWith(MockitoExtension.class) public class KundeServiceTest { @Mock private KundeRepository kundeRepository; private KundeCriteriaRepository kundeCriteriaRepository; @InjectMocks private KundeService kundeService; @Test void testGetAllKunde() { List kundeList = List.of( new Kunde(1L, "Anna", "Meier", 28, "anna@example.com", null), new Kunde(2L, "Tom", "Muster", 38, "tom@example.com", null) ); when(kundeRepository.findAll()).thenReturn(kundeList); List result = kundeService.getAllKunde(); assertEquals(2, result.size()); assertEquals("Anna", result.get(0).vorname()); } @Test void testAddKunde() { Bestellung bestellung = new Bestellung(); KundeDto dto = new KundeDto(null, "Lisa", "Huber", "lisa@example.com", 30, List.of(bestellung)); Kunde gespeicherterKunde = new Kunde(1L, "Lisa", "Huber", 30, "lisa@example.com", List.of(bestellung)); when(kundeRepository.save(org.mockito.ArgumentMatchers.any(Kunde.class))).thenReturn(gespeicherterKunde); Kunde result = kundeService.addKunde(dto); assertEquals("Lisa", result.getVorname()); } @Test void testGetKundeById() { Kunde kunde = new Kunde(1L, "Max", "Muster", 40, "max@example.com", null); when(kundeRepository.findById(1L)).thenReturn(java.util.Optional.of(kunde)); KundeDto dto = kundeService.getKundeById(1L); assertEquals("Max", dto.vorname()); assertEquals("Muster", dto.nachname()); assertEquals(40, dto.alter()); assertEquals(null, dto.email()); } @Test void testGetKundeByCriteria() { Kunde kunde = new Kunde(1L, "Sarah", "Winter", 25, "sarah@example.com", null); when(kundeCriteriaRepository.getKundeByCriteria(org.mockito.ArgumentMatchers.any())) .thenReturn(List.of(kunde)); KundeDto criteria = new KundeDto(null, "Sarah", "Winter", "sarah@example.com", 25, null); List result = kundeService.getKundeByCriteria(criteria); assertEquals(1, result.size()); } } @WebMvcTest(controllers = KundeController.class) @AutoConfigureMockMvc(addFilters = false) public class KundeControllerTest { @Autowired private MockMvc mockMvc; @MockBean private KundeService kundeService; @Autowired private ObjectMapper objectMapper; @Test void getAllKunde() throws Exception{ KundeDto kundeDto = new KundeDto(1L, "Tibor", "Focu", null, 45, null); KundeDto kundeDto2 = new KundeDto(2L, "Lady", "Gaga", null, 43, null); List kundeDtoList = Arrays.asList(kundeDto, kundeDto2); when(kundeService.getAllKunde()).thenReturn(kundeDtoList); ResultActions result = mockMvc.perform(get("/kunde") .contentType(MediaType.APPLICATION_JSON)); result.andExpect(status().isOk()) .andExpect(jsonPath("$[0].vorname", CoreMatchers.is("Tibor"))) .andExpect(jsonPath("$[1].vorname", CoreMatchers.is("Lady"))); } } @Repository public class KundeCriteriaRepository { @Autowired private EntityManager entityManager; public List getKundeByCriteria(Kunde kunde){ CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder(); CriteriaQuery criteriaQuery = criteriaBuilder.createQuery(Kunde.class); Root kundeRoot = criteriaQuery.from(Kunde.class); Predicate vornamePredicate = criteriaBuilder.like(kundeRoot.get("vorname"), kunde.getVorname()); Predicate nachnamePredicate = criteriaBuilder.like(kundeRoot.get("nachname"), kunde.getNachname()); Predicate alterPredicate = criteriaBuilder.equal(kundeRoot.get("alter"), kunde.getAlter()); Predicate vornameAndAlterPredicate = criteriaBuilder.and(vornamePredicate, alterPredicate); Predicate nachnameAndAlterPredicate = criteriaBuilder.and(nachnamePredicate, alterPredicate); Predicate orPredicate = criteriaBuilder.or(vo

May 4, 2025 - 14:07
 0
spring boot test husky
@DataJpaTest
public class KundeRepositoryTest {

    @Autowired
    private KundeRepository kundeRepository;


    @Test
    void findBestellungByKundeId(){
        Kunde kunde = new Kunde();
        kunde.setId(1L);
        kunde.setVorname("Max");
        kunde.setNachname("Mustermann");
        kunde.setEmail("maxmustermann@gmail.com");
        kunde.setAlter(39);


        Bestellung b1 = new Bestellung();
        b1.setId(1L);
        b1.setBestelldatum("28-05-2025");
        b1.setBetrag(10.0);
        b1.setKunde(kunde);

        Bestellung b2 = new Bestellung();
        b1.setId(2L);
        b2.setBestelldatum("30-05-2025");
        b2.setBetrag(20.0);
        b2.setKunde(kunde);

        kunde.setBestellungList(List.of(b1,b2));
        kundeRepository.save(kunde);

        List bestellungs = kundeRepository.findBestellungenByKundeId(kunde.getId());
        assertEquals(2, bestellungs.size());
    }
@ExtendWith(MockitoExtension.class)
public class KundeServiceTest {

    @Mock
    private KundeRepository kundeRepository;
    private KundeCriteriaRepository kundeCriteriaRepository;

    @InjectMocks
    private KundeService kundeService;

    @Test
    void testGetAllKunde() {
        List kundeList = List.of(
                new Kunde(1L, "Anna", "Meier", 28, "anna@example.com", null),
                new Kunde(2L, "Tom", "Muster", 38, "tom@example.com", null)
        );

        when(kundeRepository.findAll()).thenReturn(kundeList);

        List result = kundeService.getAllKunde();
        assertEquals(2, result.size());
        assertEquals("Anna", result.get(0).vorname());
    }

    @Test
    void testAddKunde() {
        Bestellung bestellung = new Bestellung();
        KundeDto dto = new KundeDto(null, "Lisa", "Huber", "lisa@example.com", 30, List.of(bestellung));

        Kunde gespeicherterKunde = new Kunde(1L, "Lisa", "Huber", 30, "lisa@example.com", List.of(bestellung));
        when(kundeRepository.save(org.mockito.ArgumentMatchers.any(Kunde.class))).thenReturn(gespeicherterKunde);

        Kunde result = kundeService.addKunde(dto);

        assertEquals("Lisa", result.getVorname());
    }

    @Test
    void testGetKundeById() {
        Kunde kunde = new Kunde(1L, "Max", "Muster", 40, "max@example.com", null);
        when(kundeRepository.findById(1L)).thenReturn(java.util.Optional.of(kunde));

        KundeDto dto = kundeService.getKundeById(1L);

        assertEquals("Max", dto.vorname());
        assertEquals("Muster", dto.nachname());
        assertEquals(40, dto.alter());
        assertEquals(null, dto.email());
    }

    @Test
    void testGetKundeByCriteria() {
        Kunde kunde = new Kunde(1L, "Sarah", "Winter", 25, "sarah@example.com", null);
        when(kundeCriteriaRepository.getKundeByCriteria(org.mockito.ArgumentMatchers.any()))
                .thenReturn(List.of(kunde));

        KundeDto criteria = new KundeDto(null, "Sarah", "Winter", "sarah@example.com", 25, null);
        List result = kundeService.getKundeByCriteria(criteria);

        assertEquals(1, result.size());
    }
}
@WebMvcTest(controllers = KundeController.class)
@AutoConfigureMockMvc(addFilters = false)
public class KundeControllerTest {

    @Autowired
    private MockMvc mockMvc;

    @MockBean
    private KundeService kundeService;

    @Autowired
    private ObjectMapper objectMapper;


    @Test
    void getAllKunde() throws Exception{
        KundeDto kundeDto = new KundeDto(1L, "Tibor", "Focu", null, 45, null);
        KundeDto kundeDto2 = new KundeDto(2L, "Lady", "Gaga", null, 43, null);

        List kundeDtoList = Arrays.asList(kundeDto, kundeDto2);


        when(kundeService.getAllKunde()).thenReturn(kundeDtoList);

        ResultActions result = mockMvc.perform(get("/kunde")
                .contentType(MediaType.APPLICATION_JSON));

        result.andExpect(status().isOk())
                .andExpect(jsonPath("$[0].vorname", CoreMatchers.is("Tibor")))
                .andExpect(jsonPath("$[1].vorname", CoreMatchers.is("Lady")));

    }


}
@Repository
public class KundeCriteriaRepository {

    @Autowired
private EntityManager entityManager;

    public List getKundeByCriteria(Kunde kunde){
        CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
        CriteriaQuery criteriaQuery = criteriaBuilder.createQuery(Kunde.class);
        Root kundeRoot = criteriaQuery.from(Kunde.class);

        Predicate vornamePredicate = criteriaBuilder.like(kundeRoot.get("vorname"), kunde.getVorname());
        Predicate nachnamePredicate = criteriaBuilder.like(kundeRoot.get("nachname"), kunde.getNachname());
        Predicate alterPredicate = criteriaBuilder.equal(kundeRoot.get("alter"), kunde.getAlter());
        Predicate vornameAndAlterPredicate = criteriaBuilder.and(vornamePredicate, alterPredicate);
        Predicate nachnameAndAlterPredicate = criteriaBuilder.and(nachnamePredicate, alterPredicate);
        Predicate orPredicate = criteriaBuilder.or(vornameAndAlterPredicate, nachnameAndAlterPredicate);
        criteriaQuery.where(orPredicate);
        return entityManager.createQuery(criteriaQuery).getResultList();
    }


}