package pckg.Backend; import pckg.Backend.Produkt; import pckg.Backend.Warenkorb; import pckg.Backend.Bestellung; import static org.junit.jupiter.api.Assertions.*; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; class BestellungTest { private Warenkorb warenkorb; private Produkt apfel; private Produkt birne; @BeforeEach void setUp() { // Mock-Daten vorbereiten: Wir brauchen Produkte und einen Warenkorb apfel = new Produkt(1, "Apfel", 0.2, 1.50, 7, 100); birne = new Produkt(2, "Birne", 0.2, 2.00, 7, 100); warenkorb = new Warenkorb(); warenkorb.produktHinzufügen(apfel, 2); // 3.00€ warenkorb.produktHinzufügen(birne, 1); // 2.00€ // Gesamtpreis sollte 5.00€ sein } @Test void testBestellungInitialisierung() { Bestellung bestellung = new Bestellung("Max Mustermann", "Musterstraße 1, Berlin", warenkorb); assertEquals("Max Mustermann", bestellung.getName()); assertEquals("Musterstraße 1, Berlin", bestellung.getAdresse()); assertEquals(5.00, bestellung.getGesamtpreis(), 0.001, "Der Gesamtpreis wurde nicht korrekt übernommen."); assertEquals(warenkorb, bestellung.getWarenkorb()); } @Test void testWarenkorbLeeren() { Bestellung bestellung = new Bestellung("Max Mustermann", "Musterstraße 1", warenkorb); // Sicherstellen, dass der Warenkorb vor dem Leeren nicht leer ist assertFalse(bestellung.getWarenkorb().getPositionen().isEmpty()); // Methode ausführen bestellung.warenkorbLeeren(); // Prüfen, ob die Liste der Positionen jetzt leer ist assertTrue(bestellung.getWarenkorb().getPositionen().isEmpty(), "Der Warenkorb sollte nach dem Aufruf von warenkorbLeeren() leer sein."); } @Test void testEmptyConstructor() { Bestellung leer = new Bestellung(); assertNull(leer.getName()); assertNull(leer.getWarenkorb()); assertEquals(0.0, leer.getGesamtpreis()); } }