Dateien nach "/" hochladen

UI mit tests
main
Fatima Zehra Ulu 2025-12-19 12:14:54 +01:00
parent fdcb71bd46
commit e21aa4f283
2 changed files with 101 additions and 0 deletions

59
shopTUI.java 100644
View File

@ -0,0 +1,59 @@
package pckg;
import pckg.Backend.OnlineShop;
import pckg.Backend.Warenkorb;
import java.util.Scanner;
import java.io.FileNotFoundException;
public class shopTUI {
private OnlineShop shop;
private Scanner sc = new Scanner(System.in);
public void main(String[] args) throws FileNotFoundException {
System.out.println("Willkommen bei Ihrem vertreiber für Alltägliches");
shop = new OnlineShop();
mainMenu();
}
public void mainMenu() throws FileNotFoundException {
System.out.println("\n-----------Hauptmenü-----------");
System.out.println("----------------------------------");
System.out.println(" Produktangebot ");
System.out.println(" Produktsuche ");
System.out.println(" Warenkorb ");
System.out.println(" Beenden ");
System.out.println("-----------------------------------\n");
System.out.print("Bitte geben Sie eine der Optionen an: ");
boolean rekursiv = true;
while(rekursiv){
System.out.println("\nWas möchten Sie tun? (produktangebot, produktsuche, warenkorb, beenden): ");
String eingabe = sc.nextLine().toLowerCase();
switch (eingabe) {
case "produktangebot":
shop.angebot();
// Nach shop.angebot() springt er automatisch zum Schleifenanfang
break;
case "produktsuche":
shop.suche();
break;
case "warenkorb":
shop.showCart();
break;
case "beenden":
System.out.println("\n Auf Wiedersehen! ");
rekursiv = false; // Beendet die Schleife
break;
default:
System.out.println("\nUngültige Eingabe, bitte versuchen Sie es erneut.");
}
}
}
}

42
shopTUITest.java 100644
View File

@ -0,0 +1,42 @@
package pckg;
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.io.FileNotFoundException;
class shopTUITest {
private shopTUI tui;
@BeforeEach
void setUp() {
tui = new shopTUI();
}
@Test
void testBeendenLogik() throws FileNotFoundException {
// Wir simulieren die Eingabe "beenden", damit die Endlosschleife direkt stoppt
String input = "beenden\n";
InputStream in = new ByteArrayInputStream(input.getBytes());
System.setIn(in);
// Der Test ist erfolgreich, wenn die Methode ohne Endlosschleife durchläuft
assertDoesNotThrow(() -> {
// Da mainMenu() die Schleife enthält, testen wir das Beenden hier
tui.mainMenu();
});
}
@Test
void testUngueltigeEingabeUndDannBeenden() throws FileNotFoundException {
// Erst eine falsche Eingabe, dann beenden
String input = "falscheEingabe\nbeenden\n";
InputStream in = new ByteArrayInputStream(input.getBytes());
System.setIn(in);
assertDoesNotThrow(() -> tui.mainMenu());
}
}