diff --git a/OS-Abgabe/resources/.project b/OS-Abgabe/resources/.project
index 03f612d..8ce237d 100644
--- a/OS-Abgabe/resources/.project
+++ b/OS-Abgabe/resources/.project
@@ -8,4 +8,11 @@
+
+
+ produkte.csv
+ 1
+ PARENT-4-PROJECT_LOC/Desktop/produkte.csv
+
+
diff --git a/OS-Abgabe/src/backend/Bestellung.java b/OS-Abgabe/src/backend/Bestellung.java
index ae4c248..c4c9981 100644
--- a/OS-Abgabe/src/backend/Bestellung.java
+++ b/OS-Abgabe/src/backend/Bestellung.java
@@ -1,4 +1,5 @@
package backend;
+import java.util.ArrayList;
public class Bestellung {
private String name;
@@ -28,4 +29,10 @@ public class Bestellung {
public double getGesamtpreis() {
return gesamtpreis;
}
+
+ public void warenkorbLeeren() {
+ for (WarenkorbPosition wp : new ArrayList<>(warenkorb.getPositionen())) {
+ warenkorb.entfernen(wp.getProdukt());
+ }
+ }
}
diff --git a/OS-Abgabe/src/backend/OnlineShop.java b/OS-Abgabe/src/backend/OnlineShop.java
index 8279057..353ceae 100644
--- a/OS-Abgabe/src/backend/OnlineShop.java
+++ b/OS-Abgabe/src/backend/OnlineShop.java
@@ -12,7 +12,7 @@ public class OnlineShop {
public OnlineShop() throws FileNotFoundException {
lager = new ArrayList();
- Scanner sc = new Scanner(new File("././resources/produkte.csv"));
+ Scanner sc = new Scanner(new File("/Users/eronahasani/Desktop/produkte.csv"));
sc.nextLine();
while(sc.hasNextLine() ) {
diff --git a/OS-Abgabe/src/backend/Warenkorb.java b/OS-Abgabe/src/backend/Warenkorb.java
index f797821..2e40eae 100644
--- a/OS-Abgabe/src/backend/Warenkorb.java
+++ b/OS-Abgabe/src/backend/Warenkorb.java
@@ -118,8 +118,8 @@ public class Warenkorb {
if (versandBrutto() == 0 || gesamtNetto == 0) return 0;
- double anteil7 = netto7 / gesamtNetto;
- double anteil19 = netto19 / gesamtNetto;
+ double anteil7 = netto7 / gesamtNetto;
+ double anteil19 = netto19 / gesamtNetto;
double anteilBrutto7 = versandBrutto() * anteil7;
double anteilBrutto19 = versandBrutto() * anteil19;
@@ -149,13 +149,13 @@ public class Warenkorb {
return 0;
}
- double anteil7 = netto7 / gesamtNetto;
+ double anteil7 = netto7 / gesamtNetto;
double anteil19 = netto19 / gesamtNetto;
double anteilBrutto7 = versandBrutto() * anteil7;
double anteilBrutto19 = versandBrutto() * anteil19;
- double nettoVersand7 = anteilBrutto7 / 1.07;
+ double nettoVersand7 = anteilBrutto7 / 1.07;
double nettoVersand19 = anteilBrutto19 / 1.19;
return (anteilBrutto7
diff --git a/OS-Abgabe/src/backend/WarenkorbTest.java b/OS-Abgabe/src/backend/WarenkorbTest.java
index 420a303..7f07a71 100644
--- a/OS-Abgabe/src/backend/WarenkorbTest.java
+++ b/OS-Abgabe/src/backend/WarenkorbTest.java
@@ -18,7 +18,7 @@ public class WarenkorbTest {
warenkorb = new Warenkorb();
produkte = new ArrayList<>();
- Scanner sc = new Scanner(new File("././resources/produkte.csv"));
+ Scanner sc = new Scanner(new File("/Users/eronahasani/Desktop/produkte.csv"));
sc.nextLine();
while (sc.hasNextLine()) {
@@ -40,14 +40,18 @@ public class WarenkorbTest {
@Test
void testProduktHinzufuegen() {
+
warenkorb.produktHinzufügen(produkte.get(0), 2);
+
assertEquals(1, warenkorb.getPositionen().size());
assertEquals(2, warenkorb.getPositionen().get(0).getMenge());
}
@Test
void testGleicheProduktHinzufuegen() {
+
Produkt p = produkte.get(0);
+
warenkorb.produktHinzufügen(p, 1);
warenkorb.produktHinzufügen(p, 2);
assertEquals(3, warenkorb.getPositionen().get(0).getMenge());
@@ -55,25 +59,136 @@ public class WarenkorbTest {
@Test
void testMengeAendern() {
+
Produkt p = produkte.get(1);
+
warenkorb.produktHinzufügen(p, 2);
+
assertTrue(warenkorb.mengeAendern(p, 3));
assertEquals(3, warenkorb.getPositionen().get(0).getMenge());
}
@Test
void testEntfernen() {
+
Produkt p = produkte.get(2);
+
warenkorb.produktHinzufügen(p, 1);
warenkorb.mengeAendern(p, 0);
+
assertEquals(0, warenkorb.getPositionen().size());
}
@Test
void testWarenkorbLeer() {
+
Produkt p = produkte.get(0);
+
warenkorb.produktHinzufügen(p, 2);
warenkorb.mengeAendern(p, 0);
+
assertEquals(0, warenkorb.getPositionen().size());
}
+
+
+ @Test
+ void testProdukteNetto() {
+
+ Produkt p = produkte.get(0);
+
+ warenkorb.produktHinzufügen(p, 1);
+
+ double netto = p.getPreis();
+ assertEquals(netto, warenkorb.produkteNetto(), 0.01);
+ }
+
+
+ @Test
+ void testProdukteMwst() {
+
+ Produkt p = produkte.get(0);
+
+ warenkorb.produktHinzufügen(p, 1);
+
+ double mwst = p.getPreis() * p.getMwst() / 100.0;
+ assertEquals(mwst, warenkorb.produkteMwst(), 0.01);
+ }
+
+
+ @Test
+ void testProdukteMwst19und7() {
+
+ Produkt p1 = produkte.get(0);
+ Produkt p2 = produkte.get(1);
+
+ warenkorb.produktHinzufügen(p1, 2);
+ warenkorb.produktHinzufügen(p2, 3);
+
+ double mwstP1 = 2 * p1.getPreis() * p1.getMwst() / 100.0;
+ double mwstP2 = 3 * p2.getPreis() * p2.getMwst() / 100.0;
+ double erwartet = mwstP1 + mwstP2;
+
+ assertEquals(erwartet, warenkorb.produkteMwst(), 0.01);
+ }
+
+
+ @Test
+ void testVersandNetto() {
+
+ warenkorb.produktHinzufügen(produkte.get(0), 5);
+ warenkorb.produktHinzufügen(produkte.get(1), 2);
+
+ double gesamtNetto = warenkorb.produkteNetto();
+ double anteil7 = 2 * produkte.get(1).getPreis() / gesamtNetto;
+ double anteil19 = 5 * produkte.get(0).getPreis() / gesamtNetto;
+ double versandBrutto = warenkorb.versandBrutto();
+
+ double anteilBrutto7 = versandBrutto * anteil7;
+ double anteilBrutto19 = versandBrutto * anteil19;
+
+ double erwartet = (anteilBrutto7 / 1.07)
+ + (anteilBrutto19 / 1.19);
+
+ assertEquals(erwartet, warenkorb.versandNetto(), 0.01);
+ }
+
+
+ @Test
+ void testVersandMwst() {
+
+ warenkorb.produktHinzufügen(produkte.get(0), 5);
+ warenkorb.produktHinzufügen(produkte.get(1), 2);
+
+ double gesamtNetto = warenkorb.produkteNetto();
+ double anteil7 = 2 * produkte.get(1).getPreis() / gesamtNetto;
+ double anteil19 = 5 * produkte.get(0).getPreis() / gesamtNetto;
+ double versandBrutto = warenkorb.versandBrutto();
+
+ double anteilBrutto7 = versandBrutto * anteil7;
+ double anteilBrutto19 = versandBrutto * anteil19;
+ double nettoVersand7 = anteilBrutto7 / 1.07;
+ double nettoVersand19 = anteilBrutto19 / 1.19;
+
+ double erwartet = (anteilBrutto7
+ - nettoVersand7)
+ + (anteilBrutto19
+ - nettoVersand19);
+
+ assertEquals(erwartet, warenkorb.versandMwst(), 0.01);
+ }
+
+
+ @Test
+ void testGesamtpreis() {
+
+ warenkorb.produktHinzufügen(produkte.get(1), 2);
+
+ double erwartet = warenkorb.produkteNetto()
+ + warenkorb.produkteMwst()
+ + warenkorb.versandNetto()
+ + warenkorb.versandMwst();
+
+ assertEquals(erwartet, warenkorb.gesamtpreis());
+ }
+
}
\ No newline at end of file
diff --git a/OS-Abgabe/src/tui/shopTUI.java b/OS-Abgabe/src/tui/shopTUI.java
index 8fc4182..2c764ea 100644
--- a/OS-Abgabe/src/tui/shopTUI.java
+++ b/OS-Abgabe/src/tui/shopTUI.java
@@ -188,7 +188,7 @@ public class shopTUI {
} else if (eingabe.equals("bestellen")) {
bestellen();
} else {
- System.out.println("\n\n Ungültige Eingabe (˃̣̣̥ᯅ˂̣̣̥) Versuchen Sie es bitte erneut: \n\n");
+ System.out.println("\n\nUngültige Eingabe (˃̣̣̥ᯅ˂̣̣̥) Versuchen Sie es bitte erneut: \n\n");
warenkorb();
}
}
@@ -219,7 +219,7 @@ public class shopTUI {
}
System.out.printf("\nGesamtpreis: \n%.2f€\n", bestellung.getGesamtpreis());
System.out.println("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
- warenkorb = new Warenkorb();
+ bestellung.warenkorbLeeren();
System.out.println("\n\nIhr Warenkorb wurde geleert! ◝(˶˃ᵕ˂˶)◜");
System.out.println("Ab zum Hauptmenü... ٩(^ᗜ^ )و \n\n\n");
hauptmenü();