From 7a4a3274eacebf145a8f193db35f84bf3613eafd Mon Sep 17 00:00:00 2001 From: gitea <3029257@stud.hs-mannheim.de> Date: Mon, 15 Dec 2025 11:44:07 +0100 Subject: [PATCH] add tests and final finish --- OnlineShop/src/backend/OnlineShop.java | 8 -- OnlineShop/src/backend/OnlineShopTest.java | 40 ++++++- OnlineShop/src/backend/ProduktTest.java | 29 ++++- OnlineShop/src/backend/Warenkorb.java | 2 + OnlineShop/src/backend/WarenkorbTest.java | 126 ++++++++++++++++++++- OnlineShop/src/tui/ShopTUI.java | 4 + README.md | 4 + 7 files changed, 197 insertions(+), 16 deletions(-) diff --git a/OnlineShop/src/backend/OnlineShop.java b/OnlineShop/src/backend/OnlineShop.java index 766b58b..3cecea1 100644 --- a/OnlineShop/src/backend/OnlineShop.java +++ b/OnlineShop/src/backend/OnlineShop.java @@ -28,14 +28,6 @@ public class OnlineShop { public void AddProdukt(Produkt neu){ this.lager.add(neu); }; - public void UpdateExistingProdukt(Produkt alt, Produkt neu){ - for(int i = 0; i < this.lager.size(); i++) { - if(alt.equals(this.lager.get(i))) { - this.lager.set(i, neu); - break; - } - } - }; public ArrayList ShowProdukte(){ ArrayList ret = new ArrayList(); for(int i = 0; i < this.lager.size(); i++) { diff --git a/OnlineShop/src/backend/OnlineShopTest.java b/OnlineShop/src/backend/OnlineShopTest.java index 0a84b31..8a80725 100644 --- a/OnlineShop/src/backend/OnlineShopTest.java +++ b/OnlineShop/src/backend/OnlineShopTest.java @@ -2,13 +2,45 @@ package backend; import static org.junit.jupiter.api.Assertions.*; +import java.util.ArrayList; + import org.junit.jupiter.api.Test; class OnlineShopTest { - + @Test - void test() { - fail("Not yet implemented"); + void testAddProdukteVonDatei() { + + OnlineShop o1 = new OnlineShop(); + ArrayList file = new ArrayList(); + file.add("rdm"); + file.add("1,Riesling 0.7 l,1.2,4.2,19,87"); + o1.AddProdukteVonDatei(file); + Produkt p1 = new Produkt(1,"Riesling 0.7 l",1200,420,19,87); + Produkt p2 = o1.FindeProduktVonId(1); + assertEquals(p1.id,p2.id); + assertEquals(p1.name,p2.name); + assertEquals(p1.transportGewicht,p2.transportGewicht); + assertEquals(p1.netto,p2.netto); + assertEquals(p1.mwStSatz,p2.mwStSatz); + assertEquals(p1.lagerbestand,p2.lagerbestand); } - + + @Test + void testAddProdukt(){ + OnlineShop o1 = new OnlineShop(); + Produkt p1 = new Produkt(1,"Riesling 0.7 l",1200,420,19,87); + o1.AddProdukt(p1); + assertTrue(o1.lager.get(0).equals(p1)); + }; + + @Test + void testShowProdukte(){ + OnlineShop o1 = new OnlineShop(); + Produkt p1 = new Produkt(1,"Riesling 0.7 l",1200,420,19,87); + o1.AddProdukt(p1); + ArrayList check = new ArrayList(); + check.add(new String[]{"1", "Riesling 0.7 l", "1200", "420", "19", "87"}); + assertArrayEquals(o1.ShowProdukte().get(0), check.get(0)); + }; } diff --git a/OnlineShop/src/backend/ProduktTest.java b/OnlineShop/src/backend/ProduktTest.java index b0a4d3b..6ac2d5d 100644 --- a/OnlineShop/src/backend/ProduktTest.java +++ b/OnlineShop/src/backend/ProduktTest.java @@ -7,8 +7,33 @@ import org.junit.jupiter.api.Test; class ProduktTest { @Test - void test() { - fail("Not yet implemented"); + void testConstructor() { + + Produkt p1 = new Produkt(1, "name", 100, 100, 10, 20); + Produkt p2 = new Produkt(1, "name", 100, 100, 10, 20); + + assertEquals(p1.id,p2.id); + assertEquals(p1.name,p2.name); + assertEquals(p1.transportGewicht,p2.transportGewicht); + assertEquals(p1.netto,p2.netto); + assertEquals(p1.mwStSatz,p2.mwStSatz); + assertEquals(p1.lagerbestand,p2.lagerbestand); + } + + @Test + void testUpdate() { + + Produkt p1 = new Produkt(1, "name", 100, 100, 10, 20); + Produkt p2 = new Produkt(1, "test", 100, 100, 10, 20); + + assertFalse(p1.name == p2.name); + p2.UpdateProdukt(p1); + assertEquals(p1.id,p2.id); + assertEquals(p1.name,p2.name); + assertEquals(p1.transportGewicht,p2.transportGewicht); + assertEquals(p1.netto,p2.netto); + assertEquals(p1.mwStSatz,p2.mwStSatz); + assertEquals(p1.lagerbestand,p2.lagerbestand); } } diff --git a/OnlineShop/src/backend/Warenkorb.java b/OnlineShop/src/backend/Warenkorb.java index f7fedde..39ca67d 100644 --- a/OnlineShop/src/backend/Warenkorb.java +++ b/OnlineShop/src/backend/Warenkorb.java @@ -51,6 +51,8 @@ public class Warenkorb { ret = 495; if(gewicht <= 100) ret = 395; + if(gewicht == 0) + ret = 0; return ret; }; public int NettoGesamtPreis(){ diff --git a/OnlineShop/src/backend/WarenkorbTest.java b/OnlineShop/src/backend/WarenkorbTest.java index 172462b..e29c682 100644 --- a/OnlineShop/src/backend/WarenkorbTest.java +++ b/OnlineShop/src/backend/WarenkorbTest.java @@ -7,8 +7,130 @@ import org.junit.jupiter.api.Test; class WarenkorbTest { @Test - void test() { - fail("Not yet implemented"); + void testConstructor() { + + Warenkorb p1 = new Warenkorb(); + Warenkorb p2 = new Warenkorb(new Kunde("Lukas", "Klipfel")); + + assertFalse(p1.kunde.name == p2.kunde.name || p1.kunde.Adresse == p2.kunde.Adresse); + p1.UpdateKunde(new Kunde("Lukas", "Klipfel")); + assertTrue(p1.kunde.name == p2.kunde.name && p1.kunde.Adresse == p2.kunde.Adresse); } + @Test + void testAddProdukt(){ + Produkt p1 = new Produkt(1,"Riesling 0.7 l",1200,420,19,87); + Warenkorb w1 = new Warenkorb(); + assertFalse(w1.inhalt.contains(p1)); + w1.AddProdukt(p1, 2); + assertTrue(w1.inhalt.contains(p1)); + }; + + @Test + void testDelProdukt(){ + Produkt p1 = new Produkt(1,"Riesling 0.7 l",1200,420,19,87); + Warenkorb w1 = new Warenkorb(); + assertFalse(w1.inhalt.contains(p1)); + w1.AddProdukt(p1, 2); + assertTrue(w1.inhalt.contains(p1)); + w1.DelProdukt(p1); + assertFalse(w1.inhalt.contains(p1)); + }; + + @Test + void testChangeProdukt(){ + Produkt p1 = new Produkt(1,"Riesling 0.7 l",1200,420,19,87); + Warenkorb w1 = new Warenkorb(); + w1.AddProdukt(p1, 2); + assertFalse(w1.anzahl.get(0)==50); + w1.ChangeProdukt(p1, 50); + assertTrue(w1.anzahl.get(0)==50); + }; + + @Test + void testUpdateKunde(){ + Warenkorb p1 = new Warenkorb(); + p1.UpdateKunde(new Kunde("Lukas", "Klipfel")); + assertTrue(p1.kunde.name == "Lukas" && p1.kunde.Adresse == "Klipfel"); + }; + + @Test + void testCheckCount() { + Produkt p1 = new Produkt(1,"Riesling 0.7 l",1200,420,19,87); + Warenkorb w1 = new Warenkorb(); + w1.AddProdukt(p1, 2); + assertTrue(w1.inhalt.contains(p1)); + w1.ChangeProdukt(p1, 0); + assertFalse(w1.inhalt.contains(p1)); + } + + @Test + void testGewicht() { + Produkt p1 = new Produkt(1,"Riesling 0.7 l",1200,420,19,87); + Warenkorb w1 = new Warenkorb(); + assertTrue(w1.Gewicht()==0); + w1.AddProdukt(p1, 2); + assertTrue(w1.Gewicht()==2400); + } + + @Test + void testIsProduktInWarenkorb() { + Produkt p1 = new Produkt(1,"Riesling 0.7 l",1200,420,19,87); + Warenkorb w1 = new Warenkorb(); + assertFalse(w1.IsProduktInWarenkorb(p1)); + w1.AddProdukt(p1, 2); + assertTrue(w1.IsProduktInWarenkorb(p1)); + } + + @Test + void testGetProduktAnzahl() { + Produkt p1 = new Produkt(1,"Riesling 0.7 l",1200,420,19,87); + Warenkorb w1 = new Warenkorb(); + w1.AddProdukt(p1, 2); + assertTrue(w1.GetProduktAnzahl(p1)==2); + w1.ChangeProdukt(p1, 50); + assertTrue(w1.GetProduktAnzahl(p1)==50); + } + + @Test + void testNettoPreis(){ + Produkt p1 = new Produkt(1,"Riesling 0.7 l",1200,420,19,87); + Warenkorb w1 = new Warenkorb(); + assertTrue(w1.NettoPreis()==0); + w1.AddProdukt(p1, 2); + assertTrue(w1.NettoPreis()==840); + }; + + @Test + void testBruttoPreis(){ + Produkt p1 = new Produkt(1,"Riesling 0.7 l",1200,420,19,87); + Warenkorb w1 = new Warenkorb(); + assertTrue(w1.BruttoPreis()==0); + w1.AddProdukt(p1, 2); + assertTrue(w1.BruttoPreis()==1000); + }; + + @Test + void testNettoVersandkosten(){ + Produkt p1 = new Produkt(1,"Riesling 0.7 l",10,420,10,87); + Warenkorb w1 = new Warenkorb(); + assertTrue(w1.NettoVersandkosten()==0); + w1.AddProdukt(p1, 1); + assertTrue(w1.NettoVersandkosten()==359); + }; + + @Test + void testBruttoVersandkosten(){ + Produkt p1 = new Produkt(1,"Riesling 0.7 l",10,420,19,1000); + Warenkorb w1 = new Warenkorb(); + assertTrue(w1.BruttoVersandkosten()==0); + w1.AddProdukt(p1, 2); + assertTrue(w1.BruttoVersandkosten()==395); + w1.ChangeProdukt(p1, 11); + assertTrue(w1.BruttoVersandkosten()==495); + w1.ChangeProdukt(p1, 110); + assertTrue(w1.BruttoVersandkosten()==595); + w1.ChangeProdukt(p1, 501); + assertTrue(w1.BruttoVersandkosten()==1995); + }; } diff --git a/OnlineShop/src/tui/ShopTUI.java b/OnlineShop/src/tui/ShopTUI.java index c2501d3..64f1600 100644 --- a/OnlineShop/src/tui/ShopTUI.java +++ b/OnlineShop/src/tui/ShopTUI.java @@ -153,8 +153,12 @@ public class ShopTUI { shop.UpdateKundeInWarenkorb(name, addr); }; private static void Bestellen() { + System.out.println("Deine Bestellung mit folgendem Inhalt wurde aufgegeben:"); ShowWarenkorb(); shop.AddBestellung(); + System.out.println(""); + System.out.println(""); + System.out.println("Sie können eine weitere Bestellung aufgeben."); }; private static void ShowBestellungen(){ }; diff --git a/README.md b/README.md index 9d64ef8..3590cea 100644 --- a/README.md +++ b/README.md @@ -26,3 +26,7 @@ Time Chart: 0:45 finish class OnlineShop 2:10 finish class ShopTUI + +1:50 add tests and final finish + +8h to complete the Exercise.