putin
This commit is contained in:
parent
4c49d28d0d
commit
f4946a762b
14 changed files with 243 additions and 98 deletions
|
|
@ -7,16 +7,25 @@ import de.antco.projekt.model.WorkOrderDetails;
|
||||||
import de.antco.projekt.model.WorkOrderItem;
|
import de.antco.projekt.model.WorkOrderItem;
|
||||||
import de.antco.projekt.service.WorkshopService;
|
import de.antco.projekt.service.WorkshopService;
|
||||||
|
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.io.PrintStream;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
public class ConsoleUi {
|
public class ConsoleUi {
|
||||||
|
|
||||||
private final WorkshopService service;
|
private final WorkshopService service;
|
||||||
private final Scanner scanner = new Scanner(System.in);
|
private final Scanner scanner;
|
||||||
|
private final PrintStream out;
|
||||||
|
|
||||||
public ConsoleUi(WorkshopService service) {
|
public ConsoleUi(WorkshopService service) {
|
||||||
|
this(service, System.in, System.out);
|
||||||
|
}
|
||||||
|
|
||||||
|
public ConsoleUi(WorkshopService service, InputStream in, PrintStream out) {
|
||||||
this.service = service;
|
this.service = service;
|
||||||
|
this.scanner = new Scanner(in);
|
||||||
|
this.out = out;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void start() {
|
public void start() {
|
||||||
|
|
@ -24,6 +33,7 @@ public class ConsoleUi {
|
||||||
|
|
||||||
while (running) {
|
while (running) {
|
||||||
showMenu();
|
showMenu();
|
||||||
|
if (!scanner.hasNextLine()) break;
|
||||||
String choice = scanner.nextLine().trim();
|
String choice = scanner.nextLine().trim();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
@ -34,34 +44,63 @@ public class ConsoleUi {
|
||||||
case "4" -> showVehiclesOfPerson();
|
case "4" -> showVehiclesOfPerson();
|
||||||
case "5" -> createWorkOrder();
|
case "5" -> createWorkOrder();
|
||||||
case "6" -> showWorkOrders();
|
case "6" -> showWorkOrders();
|
||||||
|
case "7" -> exportPersons();
|
||||||
|
case "8" -> importPersons();
|
||||||
case "0" -> running = false;
|
case "0" -> running = false;
|
||||||
default -> System.out.println("Ungültige Eingabe.");
|
default -> out.println("Ungültige Eingabe.");
|
||||||
}
|
}
|
||||||
} catch (SQLException e) {
|
} catch (Exception e) {
|
||||||
System.out.println("Ein Fehler ist aufgetreten: " + e.getMessage());
|
out.println("Ein Fehler ist aufgetreten: " + e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
System.out.println("Programm beendet.");
|
out.println("Programm beendet.");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void showMenu() {
|
private void showMenu() {
|
||||||
System.out.println("\n=== Werkstatt Menü ===");
|
out.println("\n=== Werkstatt Menü ===");
|
||||||
System.out.println("1) Kunde anlegen");
|
out.println("1) Kunde anlegen");
|
||||||
System.out.println("2) Kunden anzeigen");
|
out.println("2) Kunden anzeigen");
|
||||||
System.out.println("3) Fahrzeug anlegen");
|
out.println("3) Fahrzeug anlegen");
|
||||||
System.out.println("4) Fahrzeuge einer Person anzeigen");
|
out.println("4) Fahrzeuge einer Person anzeigen");
|
||||||
System.out.println("5) Werkstattvorgang anlegen");
|
out.println("5) Werkstattvorgang anlegen");
|
||||||
System.out.println("6) Vorgänge anzeigen");
|
out.println("6) Vorgänge anzeigen");
|
||||||
System.out.println("0) Beenden");
|
out.println("7) Kunden exportieren (CSV)");
|
||||||
System.out.print("Auswahl: ");
|
out.println("8) Kunden importieren (CSV)");
|
||||||
|
out.println("0) Beenden");
|
||||||
|
out.print("Auswahl: ");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void exportPersons() throws Exception {
|
||||||
|
out.print("Dateipfad für Export: ");
|
||||||
|
if (!scanner.hasNextLine()) return;
|
||||||
|
String path = scanner.nextLine().trim();
|
||||||
|
if (path.isEmpty()) {
|
||||||
|
out.println("Export abgebrochen.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
service.exportPersons(path);
|
||||||
|
out.println("Export erfolgreich nach " + path);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void importPersons() throws Exception {
|
||||||
|
out.print("Dateipfad für Import: ");
|
||||||
|
if (!scanner.hasNextLine()) return;
|
||||||
|
String path = scanner.nextLine().trim();
|
||||||
|
if (path.isEmpty()) {
|
||||||
|
out.println("Import abgebrochen.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
service.importPersons(path);
|
||||||
|
out.println("Import erfolgreich.");
|
||||||
}
|
}
|
||||||
|
|
||||||
// ---------------- INPUT HELPERS ----------------
|
// ---------------- INPUT HELPERS ----------------
|
||||||
|
|
||||||
private int readPositiveInt(String text) {
|
private int readPositiveInt(String text) {
|
||||||
while (true) {
|
while (true) {
|
||||||
System.out.print(text);
|
out.print(text);
|
||||||
|
if (!scanner.hasNextLine()) return 0;
|
||||||
String input = scanner.nextLine().trim();
|
String input = scanner.nextLine().trim();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
@ -69,64 +108,68 @@ public class ConsoleUi {
|
||||||
if (value > 0) {
|
if (value > 0) {
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
System.out.println("Bitte eine Zahl größer 0 eingeben.");
|
out.println("Bitte eine Zahl größer 0 eingeben.");
|
||||||
} catch (NumberFormatException e) {
|
} catch (NumberFormatException e) {
|
||||||
System.out.println("Bitte eine gültige Zahl eingeben.");
|
out.println("Bitte eine gültige Zahl eingeben.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private String readEmail(String text) {
|
private String readEmail(String text) {
|
||||||
while (true) {
|
while (true) {
|
||||||
System.out.print(text);
|
out.print(text);
|
||||||
|
if (!scanner.hasNextLine()) return "";
|
||||||
String input = scanner.nextLine().trim();
|
String input = scanner.nextLine().trim();
|
||||||
|
|
||||||
// einfache Validierung: enthält '@' und mindestens einen Punkt nach dem '@'
|
// einfache Validierung: enthält '@' und mindestens einen Punkt nach dem '@'
|
||||||
if (input.matches("^[\\w._%+-]+@[\\w.-]+\\.[a-zA-Z]{2,}$")) {
|
if (input.matches("^[\\w._%+-]+@[\\w.-]+\\.[a-zA-Z]{2,}$")) {
|
||||||
return input;
|
return input;
|
||||||
} else {
|
} else {
|
||||||
System.out.println("Bitte eine gültige Email-Adresse eingeben.");
|
out.println("Bitte eine gültige Email-Adresse eingeben.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private String readAddress(String text) {
|
private String readAddress(String text) {
|
||||||
while (true) {
|
while (true) {
|
||||||
System.out.print(text);
|
out.print(text);
|
||||||
|
if (!scanner.hasNextLine()) return "";
|
||||||
String input = scanner.nextLine().trim();
|
String input = scanner.nextLine().trim();
|
||||||
|
|
||||||
// einfache Validierung: mindestens 5 Zeichen, darf Buchstaben, Zahlen, Leerzeichen und Komma enthalten
|
// einfache Validierung: mindestens 5 Zeichen, darf Buchstaben, Zahlen, Leerzeichen und Komma enthalten
|
||||||
if (input.length() >= 5 && input.matches("[\\w\\d\\s,.-]+")) {
|
if (input.length() >= 5 && input.matches("[\\w\\d\\s,.-]+")) {
|
||||||
return input;
|
return input;
|
||||||
} else {
|
} else {
|
||||||
System.out.println("Bitte eine gültige Adresse eingeben (mindestens 5 Zeichen).");
|
out.println("Bitte eine gültige Adresse eingeben (mindestens 5 Zeichen).");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private String readNonEmpty(String text) {
|
private String readNonEmpty(String text) {
|
||||||
while (true) {
|
while (true) {
|
||||||
System.out.print(text);
|
out.print(text);
|
||||||
|
if (!scanner.hasNextLine()) return "";
|
||||||
String value = scanner.nextLine().trim();
|
String value = scanner.nextLine().trim();
|
||||||
|
|
||||||
if (!value.isEmpty()) {
|
if (!value.isEmpty()) {
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
System.out.println("Eingabe darf nicht leer sein.");
|
out.println("Eingabe darf nicht leer sein.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private String readValidName(String label) {
|
private String readValidName(String label) {
|
||||||
while (true) {
|
while (true) {
|
||||||
String name = readNonEmpty(label);
|
String name = readNonEmpty(label);
|
||||||
|
if (name.isEmpty()) return "";
|
||||||
|
|
||||||
if (name.length() < 2) {
|
if (name.length() < 2) {
|
||||||
System.out.println("Der Name muss mindestens 2 Zeichen haben.");
|
out.println("Der Name muss mindestens 2 Zeichen haben.");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!name.matches("[a-zA-ZäöüÄÖÜß ]+")) {
|
if (!name.matches("[a-zA-ZäöüÄÖÜß ]+")) {
|
||||||
System.out.println("Der Name darf nur Buchstaben enthalten.");
|
out.println("Der Name darf nur Buchstaben enthalten.");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -136,21 +179,22 @@ public class ConsoleUi {
|
||||||
|
|
||||||
private String readPhoneNumber(String text) {
|
private String readPhoneNumber(String text) {
|
||||||
while (true) {
|
while (true) {
|
||||||
System.out.print(text);
|
out.print(text);
|
||||||
|
if (!scanner.hasNextLine()) return "";
|
||||||
String phone = scanner.nextLine().trim();
|
String phone = scanner.nextLine().trim();
|
||||||
|
|
||||||
if (!phone.matches("\\d+")) {
|
if (!phone.matches("\\d+")) {
|
||||||
System.out.println("Telefonnummer darf nur Zahlen enthalten.");
|
out.println("Telefonnummer darf nur Zahlen enthalten.");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (phone.length() < 8) {
|
if (phone.length() < 8) {
|
||||||
System.out.println("Telefonnummer muss mindestens 8 Stellen haben.");
|
out.println("Telefonnummer muss mindestens 8 Stellen haben.");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (phone.length() > 15) {
|
if (phone.length() > 15) {
|
||||||
System.out.println("Telefonnummer darf maximal 15 Stellen haben.");
|
out.println("Telefonnummer darf maximal 15 Stellen haben.");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -160,16 +204,17 @@ public class ConsoleUi {
|
||||||
|
|
||||||
private String readValidCarText(String label) {
|
private String readValidCarText(String label) {
|
||||||
while (true) {
|
while (true) {
|
||||||
System.out.print(label);
|
out.print(label);
|
||||||
|
if (!scanner.hasNextLine()) return "";
|
||||||
String value = scanner.nextLine().trim();
|
String value = scanner.nextLine().trim();
|
||||||
|
|
||||||
if (value.length() < 2) {
|
if (value.length() < 2) {
|
||||||
System.out.println("Eingabe muss mindestens 2 Zeichen haben.");
|
out.println("Eingabe muss mindestens 2 Zeichen haben.");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!value.matches("[a-zA-Z0-9äöüÄÖÜß ]+")) {
|
if (!value.matches("[a-zA-Z0-9äöüÄÖÜß ]+")) {
|
||||||
System.out.println("Nur Buchstaben, Zahlen und Leerzeichen erlaubt.");
|
out.println("Nur Buchstaben, Zahlen und Leerzeichen erlaubt.");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -179,16 +224,17 @@ public class ConsoleUi {
|
||||||
|
|
||||||
private String readLicensePlate(String text) {
|
private String readLicensePlate(String text) {
|
||||||
while (true) {
|
while (true) {
|
||||||
System.out.print(text);
|
out.print(text);
|
||||||
|
if (!scanner.hasNextLine()) return "";
|
||||||
String plate = scanner.nextLine().trim().toUpperCase();
|
String plate = scanner.nextLine().trim().toUpperCase();
|
||||||
|
|
||||||
if (plate.length() < 5) {
|
if (plate.length() < 5) {
|
||||||
System.out.println("Kennzeichen muss mindestens 5 Zeichen haben.");
|
out.println("Kennzeichen muss mindestens 5 Zeichen haben.");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!plate.matches("[A-Z0-9\\-]+")) {
|
if (!plate.matches("[A-Z0-9\\-]+")) {
|
||||||
System.out.println("Nur Großbuchstaben, Zahlen und Bindestriche erlaubt.");
|
out.println("Nur Großbuchstaben, Zahlen und Bindestriche erlaubt.");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -198,11 +244,12 @@ public class ConsoleUi {
|
||||||
|
|
||||||
private String readNote() {
|
private String readNote() {
|
||||||
while (true) {
|
while (true) {
|
||||||
System.out.print("Notiz: ");
|
out.print("Notiz: ");
|
||||||
|
if (!scanner.hasNextLine()) return "";
|
||||||
String note = scanner.nextLine().trim();
|
String note = scanner.nextLine().trim();
|
||||||
|
|
||||||
if (note.length() > 200) {
|
if (note.length() > 200) {
|
||||||
System.out.println("Notiz darf maximal 200 Zeichen haben.");
|
out.println("Notiz darf maximal 200 Zeichen haben.");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -212,7 +259,8 @@ public class ConsoleUi {
|
||||||
|
|
||||||
private int readQuantity(String text) {
|
private int readQuantity(String text) {
|
||||||
while (true) {
|
while (true) {
|
||||||
System.out.print(text);
|
out.print(text);
|
||||||
|
if (!scanner.hasNextLine()) return 0;
|
||||||
String input = scanner.nextLine().trim();
|
String input = scanner.nextLine().trim();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
@ -220,9 +268,9 @@ public class ConsoleUi {
|
||||||
if (qty > 0 && qty <= 99) {
|
if (qty > 0 && qty <= 99) {
|
||||||
return qty;
|
return qty;
|
||||||
}
|
}
|
||||||
System.out.println("Menge muss zwischen 1 und 99 liegen.");
|
out.println("Menge muss zwischen 1 und 99 liegen.");
|
||||||
} catch (NumberFormatException e) {
|
} catch (NumberFormatException e) {
|
||||||
System.out.println("Bitte eine gültige Zahl eingeben.");
|
out.println("Bitte eine gültige Zahl eingeben.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -234,28 +282,31 @@ public class ConsoleUi {
|
||||||
String email = readEmail("Email: ");
|
String email = readEmail("Email: ");
|
||||||
String address = readAddress("Adresse: ");
|
String address = readAddress("Adresse: ");
|
||||||
|
|
||||||
|
if (name.isEmpty() || phone.isEmpty() || email.isEmpty() || address.isEmpty()) return;
|
||||||
|
|
||||||
Person person = service.createPerson(name, phone,email,address);
|
Person person = service.createPerson(name, phone,email,address);
|
||||||
System.out.println("Kunde gespeichert (ID: " + person.getId() + ")");
|
out.println("Kunde gespeichert (ID: " + person.getId() + ")");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void showPersons() throws SQLException {
|
private void showPersons() throws SQLException {
|
||||||
List<Person> persons = service.listPersons();
|
List<Person> persons = service.listPersons();
|
||||||
|
|
||||||
if (persons.isEmpty()) {
|
if (persons.isEmpty()) {
|
||||||
System.out.println("Keine Kunden vorhanden.");
|
out.println("Keine Kunden vorhanden.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
System.out.println("\n--- Kundenliste ---");
|
out.println("\n--- Kundenliste ---");
|
||||||
persons.forEach(System.out::println);
|
persons.forEach(p -> out.println(p));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addVehicle() throws SQLException {
|
private void addVehicle() throws SQLException {
|
||||||
int personId = readPositiveInt("Personen-ID: ");
|
int personId = readPositiveInt("Personen-ID: ");
|
||||||
|
if (personId == 0) return;
|
||||||
Person person = service.findPerson(personId);
|
Person person = service.findPerson(personId);
|
||||||
|
|
||||||
if (person == null) {
|
if (person == null) {
|
||||||
System.out.println("Person wurde nicht gefunden.");
|
out.println("Person wurde nicht gefunden.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -263,35 +314,39 @@ public class ConsoleUi {
|
||||||
String model = readValidCarText("Modell: ");
|
String model = readValidCarText("Modell: ");
|
||||||
String plate = readLicensePlate("Kennzeichen: ");
|
String plate = readLicensePlate("Kennzeichen: ");
|
||||||
|
|
||||||
|
if (brand.isEmpty() || model.isEmpty() || plate.isEmpty()) return;
|
||||||
|
|
||||||
Vehicle vehicle = service.createVehicle(personId, brand, model, plate);
|
Vehicle vehicle = service.createVehicle(personId, brand, model, plate);
|
||||||
System.out.println("Fahrzeug gespeichert (ID: " + vehicle.getId() + ")");
|
out.println("Fahrzeug gespeichert (ID: " + vehicle.getId() + ")");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void showVehiclesOfPerson() throws SQLException {
|
private void showVehiclesOfPerson() throws SQLException {
|
||||||
int personId = readPositiveInt("Personen-ID: ");
|
int personId = readPositiveInt("Personen-ID: ");
|
||||||
|
if (personId == 0) return;
|
||||||
Person person = service.findPerson(personId);
|
Person person = service.findPerson(personId);
|
||||||
|
|
||||||
if (person == null) {
|
if (person == null) {
|
||||||
System.out.println("Person nicht gefunden.");
|
out.println("Person nicht gefunden.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
List<Vehicle> vehicles = service.listVehicles(personId);
|
List<Vehicle> vehicles = service.listVehicles(personId);
|
||||||
|
|
||||||
System.out.println("Fahrzeuge von " + person.getName() + ":");
|
out.println("Fahrzeuge von " + person.getName() + ":");
|
||||||
if (vehicles.isEmpty()) {
|
if (vehicles.isEmpty()) {
|
||||||
System.out.println("Keine Fahrzeuge vorhanden.");
|
out.println("Keine Fahrzeuge vorhanden.");
|
||||||
} else {
|
} else {
|
||||||
vehicles.forEach(System.out::println);
|
vehicles.forEach(v -> out.println(v));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void createWorkOrder() throws SQLException {
|
private void createWorkOrder() throws SQLException {
|
||||||
int vehicleId = readPositiveInt("Fahrzeug-ID: ");
|
int vehicleId = readPositiveInt("Fahrzeug-ID: ");
|
||||||
|
if (vehicleId == 0) return;
|
||||||
Vehicle vehicle = service.findVehicle(vehicleId);
|
Vehicle vehicle = service.findVehicle(vehicleId);
|
||||||
|
|
||||||
if (vehicle == null) {
|
if (vehicle == null) {
|
||||||
System.out.println("Fahrzeug nicht gefunden.");
|
out.println("Fahrzeug nicht gefunden.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -301,10 +356,11 @@ public class ConsoleUi {
|
||||||
Map<Integer, Integer> selectedItems = new LinkedHashMap<>();
|
Map<Integer, Integer> selectedItems = new LinkedHashMap<>();
|
||||||
|
|
||||||
while (true) {
|
while (true) {
|
||||||
System.out.println("\n--- Service-Katalog ---");
|
out.println("\n--- Service-Katalog ---");
|
||||||
catalog.forEach(System.out::println);
|
catalog.forEach(item -> out.println(item));
|
||||||
|
|
||||||
System.out.print("Service-ID (leer = fertig): ");
|
out.print("Service-ID (leer = fertig): ");
|
||||||
|
if (!scanner.hasNextLine()) break;
|
||||||
String input = scanner.nextLine().trim();
|
String input = scanner.nextLine().trim();
|
||||||
|
|
||||||
if (input.isEmpty()) {
|
if (input.isEmpty()) {
|
||||||
|
|
@ -315,54 +371,57 @@ public class ConsoleUi {
|
||||||
try {
|
try {
|
||||||
serviceId = Integer.parseInt(input);
|
serviceId = Integer.parseInt(input);
|
||||||
} catch (NumberFormatException e) {
|
} catch (NumberFormatException e) {
|
||||||
System.out.println("Bitte eine gültige ID eingeben.");
|
out.println("Bitte eine gültige ID eingeben.");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean exists = catalog.stream().anyMatch(s -> s.getId() == serviceId);
|
int finalServiceId = serviceId;
|
||||||
|
boolean exists = catalog.stream().anyMatch(s -> s.getId() == finalServiceId);
|
||||||
if (!exists) {
|
if (!exists) {
|
||||||
System.out.println("Service nicht gefunden.");
|
out.println("Service nicht gefunden.");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
int qty = readQuantity("Menge: ");
|
int qty = readQuantity("Menge: ");
|
||||||
|
if (qty > 0) {
|
||||||
selectedItems.merge(serviceId, qty, Integer::sum);
|
selectedItems.merge(serviceId, qty, Integer::sum);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (selectedItems.isEmpty()) {
|
if (selectedItems.isEmpty()) {
|
||||||
System.out.println("Keine Positionen ausgewählt.");
|
out.println("Keine Positionen ausgewählt.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
int orderId = service.createWorkOrder(vehicleId, note, selectedItems);
|
int orderId = service.createWorkOrder(vehicleId, note, selectedItems);
|
||||||
System.out.println("Vorgang wurde angelegt (ID: " + orderId + ")");
|
out.println("Vorgang wurde angelegt (ID: " + orderId + ")");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void showWorkOrders() throws SQLException {
|
private void showWorkOrders() throws SQLException {
|
||||||
List<WorkOrderDetails> orders = service.listWorkOrders();
|
List<WorkOrderDetails> orders = service.listWorkOrders();
|
||||||
|
|
||||||
if (orders.isEmpty()) {
|
if (orders.isEmpty()) {
|
||||||
System.out.println("Keine Vorgänge vorhanden.");
|
out.println("Keine Vorgänge vorhanden.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (WorkOrderDetails order : orders) {
|
for (WorkOrderDetails order : orders) {
|
||||||
System.out.println("\n--- Vorgang " + order.getOrderId() + " ---");
|
out.println("\n--- Vorgang " + order.getOrderId() + " ---");
|
||||||
System.out.println("Kunde: " + order.getPersonName());
|
out.println("Kunde: " + order.getPersonName());
|
||||||
System.out.println("Fahrzeug: " + order.getVehicleText());
|
out.println("Fahrzeug: " + order.getVehicleText());
|
||||||
System.out.println("Datum: " + order.getCreatedAt());
|
out.println("Datum: " + order.getCreatedAt());
|
||||||
|
|
||||||
if (order.getNote() != null && !order.getNote().isBlank()) {
|
if (order.getNote() != null && !order.getNote().isBlank()) {
|
||||||
System.out.println("Notiz: " + order.getNote());
|
out.println("Notiz: " + order.getNote());
|
||||||
}
|
}
|
||||||
|
|
||||||
for (WorkOrderItem item : order.getItems()) {
|
for (WorkOrderItem item : order.getItems()) {
|
||||||
System.out.println(" - " + item.getServiceItem().getTitle() +
|
out.println(" - " + item.getServiceItem().getTitle() +
|
||||||
" x" + item.getQuantity() +
|
" x" + item.getQuantity() +
|
||||||
" = " + item.getTotalPrice() + " €");
|
" = " + item.getTotalPrice() + " €");
|
||||||
}
|
}
|
||||||
|
|
||||||
System.out.println("Gesamtsumme: " + order.getTotal() + " €");
|
out.println("Gesamtsumme: " + order.getTotal() + " €");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -61,4 +61,12 @@ public class PersonDao {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void deleteAll() throws SQLException {
|
||||||
|
String sql = "TRUNCATE TABLE person CASCADE";
|
||||||
|
try (Connection con = Database.getConnection();
|
||||||
|
Statement st = con.createStatement()) {
|
||||||
|
st.execute(sql);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,9 @@ import de.antco.projekt.model.ServiceItem;
|
||||||
import de.antco.projekt.model.Vehicle;
|
import de.antco.projekt.model.Vehicle;
|
||||||
import de.antco.projekt.model.WorkOrderDetails;
|
import de.antco.projekt.model.WorkOrderDetails;
|
||||||
|
|
||||||
|
import de.antco.projekt.exporters.CsvPersonExporter;
|
||||||
|
import de.antco.projekt.importers.CsvPersonImporter;
|
||||||
|
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
@ -19,6 +22,8 @@ public class WorkshopService {
|
||||||
private final VehicleDao vehicleDao;
|
private final VehicleDao vehicleDao;
|
||||||
private final ServiceItemDao serviceItemDao;
|
private final ServiceItemDao serviceItemDao;
|
||||||
private final WorkOrderDao workOrderDao;
|
private final WorkOrderDao workOrderDao;
|
||||||
|
private final CsvPersonImporter personImporter = new CsvPersonImporter();
|
||||||
|
private final CsvPersonExporter personExporter = new CsvPersonExporter();
|
||||||
|
|
||||||
public WorkshopService() {
|
public WorkshopService() {
|
||||||
this(new PersonDao(), new VehicleDao(), new ServiceItemDao(), new WorkOrderDao());
|
this(new PersonDao(), new VehicleDao(), new ServiceItemDao(), new WorkOrderDao());
|
||||||
|
|
@ -37,6 +42,21 @@ public class WorkshopService {
|
||||||
this.workOrderDao = workOrderDao;
|
this.workOrderDao = workOrderDao;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void importPersons(String filePath) throws Exception {
|
||||||
|
personDao.deleteAll();
|
||||||
|
List<Person> persons = personImporter.importData(filePath);
|
||||||
|
for (Person p : persons) {
|
||||||
|
// Check if person exists? For simplicity, we just create new ones.
|
||||||
|
// Duplicate checks could be added here based on name/phone/email
|
||||||
|
personDao.create(p.getName(), p.getPhone(), p.getEmail(), p.getAddress());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void exportPersons(String filePath) throws Exception {
|
||||||
|
List<Person> persons = personDao.findAll();
|
||||||
|
personExporter.exportData(persons, filePath);
|
||||||
|
}
|
||||||
|
|
||||||
public Person createPerson(String name, String phone, String email, String address) throws SQLException {
|
public Person createPerson(String name, String phone, String email, String address) throws SQLException {
|
||||||
return personDao.create(name, phone, email, address);
|
return personDao.create(name, phone, email, address);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -57,11 +57,12 @@ class ConsoleUiTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testAddPerson() throws SQLException {
|
void testAddPerson() throws SQLException {
|
||||||
ConsoleUi ui = createUi("1\nMax\n123\nmail\naddr\n0\n");
|
// Phone needs to be >= 8 digits
|
||||||
Person p = new Person(1, "Max", "123", "mail", "addr");
|
ConsoleUi ui = createUi("1\nMax\n12345678\nmail@test.com\nAddress, 1\n0\n");
|
||||||
when(service.createPerson("Max", "123", "mail", "addr")).thenReturn(p);
|
Person p = new Person(1, "Max", "12345678", "mail@test.com", "Address, 1");
|
||||||
|
when(service.createPerson("Max", "12345678", "mail@test.com", "Address, 1")).thenReturn(p);
|
||||||
ui.start();
|
ui.start();
|
||||||
verify(service).createPerson("Max", "123", "mail", "addr");
|
verify(service).createPerson("Max", "12345678", "mail@test.com", "Address, 1");
|
||||||
assertTrue(outContent.toString().contains("Kunde gespeichert"));
|
assertTrue(outContent.toString().contains("Kunde gespeichert"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -76,16 +77,16 @@ class ConsoleUiTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testAddVehicle() throws SQLException {
|
void testAddVehicle() throws SQLException {
|
||||||
// 3 -> Person ID -> Brand -> Model -> Plate -> 0
|
// 3 -> Person ID -> Brand -> Model -> Plate (>=5 chars) -> 0
|
||||||
ConsoleUi ui = createUi("3\n1\nVW\nGolf\nABC\n0\n");
|
ConsoleUi ui = createUi("3\n1\nVW\nGolf\nABC-123\n0\n");
|
||||||
Person p = new Person(1, "Max", "123", "m", "a");
|
Person p = new Person(1, "Max", "123", "m", "a");
|
||||||
Vehicle v = new Vehicle(10, 1, "VW", "Golf", "ABC");
|
Vehicle v = new Vehicle(10, 1, "VW", "Golf", "ABC-123");
|
||||||
|
|
||||||
when(service.findPerson(1)).thenReturn(p);
|
when(service.findPerson(1)).thenReturn(p);
|
||||||
when(service.createVehicle(1, "VW", "Golf", "ABC")).thenReturn(v);
|
when(service.createVehicle(1, "VW", "Golf", "ABC-123")).thenReturn(v);
|
||||||
|
|
||||||
ui.start();
|
ui.start();
|
||||||
assertTrue(outContent.toString().contains("Fahrzeug angelegt"));
|
assertTrue(outContent.toString().contains("Fahrzeug gespeichert"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -136,7 +137,7 @@ class ConsoleUiTest {
|
||||||
ui.start();
|
ui.start();
|
||||||
String output = outContent.toString();
|
String output = outContent.toString();
|
||||||
assertTrue(output.contains("Service nicht gefunden"));
|
assertTrue(output.contains("Service nicht gefunden"));
|
||||||
assertTrue(output.contains("Menge muss größer als 0 sein"));
|
assertTrue(output.contains("Menge muss zwischen 1 und 99 liegen"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -160,24 +161,26 @@ class ConsoleUiTest {
|
||||||
@Test
|
@Test
|
||||||
void testInputValidation() throws SQLException {
|
void testInputValidation() throws SQLException {
|
||||||
// 1 (Add Person)
|
// 1 (Add Person)
|
||||||
// Name: "123" (invalid) -> "Max" (valid)
|
// Name: "" (empty) -> "1" (too short) -> "Max" (valid)
|
||||||
// Phone: "abc" (invalid) -> "123" (valid)
|
// Phone: "abc" (invalid) -> "123" (too short) -> "12345678" (valid)
|
||||||
// Email: "" (empty - loop) -> "mail"
|
// Email: "" (empty - regex fail) -> "mail" (invalid) -> "mail@test.com" (valid)
|
||||||
// Address: "addr"
|
// Address: "addr" (valid if >= 5)
|
||||||
// 0 (Exit)
|
// 0 (Exit)
|
||||||
|
|
||||||
String input = "1\n123\nMax\nabc\n123\n\nmail\naddr\n0\n";
|
String input = "1\n\n1\nMax\nabc\n123\n12345678\n\nmail\nmail@test.com\nAddress\n0\n";
|
||||||
ConsoleUi ui = createUi(input);
|
ConsoleUi ui = createUi(input);
|
||||||
|
|
||||||
Person p = new Person(1, "Max", "123", "mail", "addr");
|
Person p = new Person(1, "Max", "12345678", "mail@test.com", "Address");
|
||||||
when(service.createPerson("Max", "123", "mail", "addr")).thenReturn(p);
|
when(service.createPerson("Max", "12345678", "mail@test.com", "Address")).thenReturn(p);
|
||||||
|
|
||||||
ui.start();
|
ui.start();
|
||||||
|
|
||||||
String output = outContent.toString();
|
String output = outContent.toString();
|
||||||
assertTrue(output.contains("Der Name darf nur Buchstaben enthalten"));
|
assertTrue(output.contains("Der Name muss mindestens 2 Zeichen haben"));
|
||||||
assertTrue(output.contains("Telefonnummer darf nur Zahlen enthalten"));
|
assertTrue(output.contains("Telefonnummer darf nur Zahlen enthalten"));
|
||||||
|
assertTrue(output.contains("Telefonnummer muss mindestens 8 Stellen haben"));
|
||||||
assertTrue(output.contains("Eingabe darf nicht leer sein"));
|
assertTrue(output.contains("Eingabe darf nicht leer sein"));
|
||||||
|
assertTrue(output.contains("Bitte eine gültige Email-Adresse eingeben"));
|
||||||
assertTrue(output.contains("Kunde gespeichert"));
|
assertTrue(output.contains("Kunde gespeichert"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -0,0 +1,53 @@
|
||||||
|
package de.antco.projekt.service;
|
||||||
|
|
||||||
|
import de.antco.projekt.dao.PersonDao;
|
||||||
|
import de.antco.projekt.dao.ServiceItemDao;
|
||||||
|
import de.antco.projekt.dao.VehicleDao;
|
||||||
|
import de.antco.projekt.dao.WorkOrderDao;
|
||||||
|
import de.antco.projekt.model.Person;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.junit.jupiter.api.extension.ExtendWith;
|
||||||
|
import org.mockito.InjectMocks;
|
||||||
|
import org.mockito.Mock;
|
||||||
|
import org.mockito.junit.jupiter.MockitoExtension;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FileWriter;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import static org.mockito.ArgumentMatchers.anyString;
|
||||||
|
import static org.mockito.Mockito.*;
|
||||||
|
|
||||||
|
@ExtendWith(MockitoExtension.class)
|
||||||
|
class WorkshopServiceIntegrationTest {
|
||||||
|
|
||||||
|
@Mock
|
||||||
|
private PersonDao personDao;
|
||||||
|
@Mock
|
||||||
|
private VehicleDao vehicleDao;
|
||||||
|
@Mock
|
||||||
|
private ServiceItemDao serviceItemDao;
|
||||||
|
@Mock
|
||||||
|
private WorkOrderDao workOrderDao;
|
||||||
|
|
||||||
|
@InjectMocks
|
||||||
|
private WorkshopService service;
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void testImportClearsTable() throws Exception {
|
||||||
|
// Create a temporary CSV file
|
||||||
|
File tempFile = File.createTempFile("import_test", ".csv");
|
||||||
|
tempFile.deleteOnExit();
|
||||||
|
try (FileWriter writer = new FileWriter(tempFile)) {
|
||||||
|
writer.write("New User;12345;mail;addr\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
service.importPersons(tempFile.getAbsolutePath());
|
||||||
|
|
||||||
|
// Verify deleteAll was called
|
||||||
|
verify(personDao).deleteAll();
|
||||||
|
|
||||||
|
// Verify create was called for the new user
|
||||||
|
verify(personDao).create("New User", "12345", "mail", "addr");
|
||||||
|
}
|
||||||
|
}
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -3,6 +3,7 @@ de/antco/projekt/ConsoleUiTest.class
|
||||||
de/antco/projekt/dao/WorkOrderDaoTest.class
|
de/antco/projekt/dao/WorkOrderDaoTest.class
|
||||||
de/antco/projekt/model/WorkOrderItemTest.class
|
de/antco/projekt/model/WorkOrderItemTest.class
|
||||||
de/antco/projekt/exporters/CsvPersonExporterTest.class
|
de/antco/projekt/exporters/CsvPersonExporterTest.class
|
||||||
|
de/antco/projekt/service/WorkshopServiceIntegrationTest.class
|
||||||
de/antco/projekt/importers/CsvPersonImporterTest.class
|
de/antco/projekt/importers/CsvPersonImporterTest.class
|
||||||
de/antco/projekt/model/WorkOrderTest.class
|
de/antco/projekt/model/WorkOrderTest.class
|
||||||
de/antco/projekt/model/ServiceItemTest.class
|
de/antco/projekt/model/ServiceItemTest.class
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
/config/workspace/SchuleB/jdbc_konsolen_projekt/src/test/java/de/antco/projekt/model/VehicleTest.java
|
/config/workspace/SchuleB/jdbc_konsolen_projekt/src/test/java/de/antco/projekt/model/VehicleTest.java
|
||||||
/config/workspace/SchuleB/jdbc_konsolen_projekt/src/test/java/de/antco/projekt/importers/CsvPersonImporterTest.java
|
/config/workspace/SchuleB/jdbc_konsolen_projekt/src/test/java/de/antco/projekt/importers/CsvPersonImporterTest.java
|
||||||
|
/config/workspace/SchuleB/jdbc_konsolen_projekt/src/test/java/de/antco/projekt/service/WorkshopServiceIntegrationTest.java
|
||||||
/config/workspace/SchuleB/jdbc_konsolen_projekt/src/test/java/de/antco/projekt/ConsoleUiTest.java
|
/config/workspace/SchuleB/jdbc_konsolen_projekt/src/test/java/de/antco/projekt/ConsoleUiTest.java
|
||||||
/config/workspace/SchuleB/jdbc_konsolen_projekt/src/test/java/de/antco/projekt/dao/PersonDaoTest.java
|
/config/workspace/SchuleB/jdbc_konsolen_projekt/src/test/java/de/antco/projekt/dao/PersonDaoTest.java
|
||||||
/config/workspace/SchuleB/jdbc_konsolen_projekt/src/test/java/de/antco/projekt/dao/VehicleDaoTest.java
|
/config/workspace/SchuleB/jdbc_konsolen_projekt/src/test/java/de/antco/projekt/dao/VehicleDaoTest.java
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report-3.0.xsd" version="3.0" name="de.antco.projekt.exporters.CsvPersonExporterTest" time="0.108" tests="1" errors="0" skipped="0" failures="0">
|
<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report-3.0.xsd" version="3.0" name="de.antco.projekt.exporters.CsvPersonExporterTest" time="0.083" tests="1" errors="0" skipped="0" failures="0">
|
||||||
<properties>
|
<properties>
|
||||||
<property name="java.specification.version" value="21"/>
|
<property name="java.specification.version" value="21"/>
|
||||||
<property name="sun.jnu.encoding" value="UTF-8"/>
|
<property name="sun.jnu.encoding" value="UTF-8"/>
|
||||||
|
|
@ -13,7 +13,7 @@
|
||||||
<property name="sun.java.launcher" value="SUN_STANDARD"/>
|
<property name="sun.java.launcher" value="SUN_STANDARD"/>
|
||||||
<property name="user.country" value="US"/>
|
<property name="user.country" value="US"/>
|
||||||
<property name="sun.boot.library.path" value="/usr/lib/jvm/java-21-openjdk-amd64/lib"/>
|
<property name="sun.boot.library.path" value="/usr/lib/jvm/java-21-openjdk-amd64/lib"/>
|
||||||
<property name="sun.java.command" value="/config/workspace/SchuleB/jdbc_konsolen_projekt/target/surefire/surefirebooter-20251211123619406_3.jar /config/workspace/SchuleB/jdbc_konsolen_projekt/target/surefire 2025-12-11T12-36-19_171-jvmRun1 surefire-20251211123619406_1tmp surefire_0-20251211123619406_2tmp"/>
|
<property name="sun.java.command" value="/config/workspace/SchuleB/jdbc_konsolen_projekt/target/surefire/surefirebooter-20251211134712585_3.jar /config/workspace/SchuleB/jdbc_konsolen_projekt/target/surefire 2025-12-11T13-47-12_301-jvmRun1 surefire-20251211134712585_1tmp surefire_0-20251211134712585_2tmp"/>
|
||||||
<property name="jdk.debug" value="release"/>
|
<property name="jdk.debug" value="release"/>
|
||||||
<property name="surefire.test.class.path" value="/config/workspace/SchuleB/jdbc_konsolen_projekt/target/test-classes:/config/workspace/SchuleB/jdbc_konsolen_projekt/target/classes:/config/.m2/repository/org/postgresql/postgresql/42.7.3/postgresql-42.7.3.jar:/config/.m2/repository/org/checkerframework/checker-qual/3.42.0/checker-qual-3.42.0.jar:/config/.m2/repository/org/junit/jupiter/junit-jupiter/5.10.0/junit-jupiter-5.10.0.jar:/config/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.10.0/junit-jupiter-api-5.10.0.jar:/config/.m2/repository/org/opentest4j/opentest4j/1.3.0/opentest4j-1.3.0.jar:/config/.m2/repository/org/junit/platform/junit-platform-commons/1.10.0/junit-platform-commons-1.10.0.jar:/config/.m2/repository/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.jar:/config/.m2/repository/org/junit/jupiter/junit-jupiter-params/5.10.0/junit-jupiter-params-5.10.0.jar:/config/.m2/repository/org/junit/jupiter/junit-jupiter-engine/5.10.0/junit-jupiter-engine-5.10.0.jar:/config/.m2/repository/org/junit/platform/junit-platform-engine/1.10.0/junit-platform-engine-1.10.0.jar:/config/.m2/repository/org/mockito/mockito-core/5.11.0/mockito-core-5.11.0.jar:/config/.m2/repository/net/bytebuddy/byte-buddy/1.14.12/byte-buddy-1.14.12.jar:/config/.m2/repository/net/bytebuddy/byte-buddy-agent/1.14.12/byte-buddy-agent-1.14.12.jar:/config/.m2/repository/org/objenesis/objenesis/3.3/objenesis-3.3.jar:/config/.m2/repository/org/mockito/mockito-junit-jupiter/5.11.0/mockito-junit-jupiter-5.11.0.jar:"/>
|
<property name="surefire.test.class.path" value="/config/workspace/SchuleB/jdbc_konsolen_projekt/target/test-classes:/config/workspace/SchuleB/jdbc_konsolen_projekt/target/classes:/config/.m2/repository/org/postgresql/postgresql/42.7.3/postgresql-42.7.3.jar:/config/.m2/repository/org/checkerframework/checker-qual/3.42.0/checker-qual-3.42.0.jar:/config/.m2/repository/org/junit/jupiter/junit-jupiter/5.10.0/junit-jupiter-5.10.0.jar:/config/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.10.0/junit-jupiter-api-5.10.0.jar:/config/.m2/repository/org/opentest4j/opentest4j/1.3.0/opentest4j-1.3.0.jar:/config/.m2/repository/org/junit/platform/junit-platform-commons/1.10.0/junit-platform-commons-1.10.0.jar:/config/.m2/repository/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.jar:/config/.m2/repository/org/junit/jupiter/junit-jupiter-params/5.10.0/junit-jupiter-params-5.10.0.jar:/config/.m2/repository/org/junit/jupiter/junit-jupiter-engine/5.10.0/junit-jupiter-engine-5.10.0.jar:/config/.m2/repository/org/junit/platform/junit-platform-engine/1.10.0/junit-platform-engine-1.10.0.jar:/config/.m2/repository/org/mockito/mockito-core/5.11.0/mockito-core-5.11.0.jar:/config/.m2/repository/net/bytebuddy/byte-buddy/1.14.12/byte-buddy-1.14.12.jar:/config/.m2/repository/net/bytebuddy/byte-buddy-agent/1.14.12/byte-buddy-agent-1.14.12.jar:/config/.m2/repository/org/objenesis/objenesis/3.3/objenesis-3.3.jar:/config/.m2/repository/org/mockito/mockito-junit-jupiter/5.11.0/mockito-junit-jupiter-5.11.0.jar:"/>
|
||||||
<property name="sun.cpu.endian" value="little"/>
|
<property name="sun.cpu.endian" value="little"/>
|
||||||
|
|
@ -28,7 +28,7 @@
|
||||||
<property name="line.separator" value=" "/>
|
<property name="line.separator" value=" "/>
|
||||||
<property name="java.specification.name" value="Java Platform API Specification"/>
|
<property name="java.specification.name" value="Java Platform API Specification"/>
|
||||||
<property name="java.vm.specification.vendor" value="Oracle Corporation"/>
|
<property name="java.vm.specification.vendor" value="Oracle Corporation"/>
|
||||||
<property name="surefire.real.class.path" value="/config/workspace/SchuleB/jdbc_konsolen_projekt/target/surefire/surefirebooter-20251211123619406_3.jar"/>
|
<property name="surefire.real.class.path" value="/config/workspace/SchuleB/jdbc_konsolen_projekt/target/surefire/surefirebooter-20251211134712585_3.jar"/>
|
||||||
<property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
|
<property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
|
||||||
<property name="java.runtime.version" value="21.0.9+10-Ubuntu-124.04"/>
|
<property name="java.runtime.version" value="21.0.9+10-Ubuntu-124.04"/>
|
||||||
<property name="user.name" value="abc"/>
|
<property name="user.name" value="abc"/>
|
||||||
|
|
@ -54,5 +54,5 @@
|
||||||
<property name="sun.io.unicode.encoding" value="UnicodeLittle"/>
|
<property name="sun.io.unicode.encoding" value="UnicodeLittle"/>
|
||||||
<property name="java.class.version" value="65.0"/>
|
<property name="java.class.version" value="65.0"/>
|
||||||
</properties>
|
</properties>
|
||||||
<testcase name="testExport" classname="de.antco.projekt.exporters.CsvPersonExporterTest" time="0.097"/>
|
<testcase name="testExport" classname="de.antco.projekt.exporters.CsvPersonExporterTest" time="0.078"/>
|
||||||
</testsuite>
|
</testsuite>
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report-3.0.xsd" version="3.0" name="de.antco.projekt.importers.CsvPersonImporterTest" time="0.008" tests="1" errors="0" skipped="0" failures="0">
|
<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report-3.0.xsd" version="3.0" name="de.antco.projekt.importers.CsvPersonImporterTest" time="0.02" tests="1" errors="0" skipped="0" failures="0">
|
||||||
<properties>
|
<properties>
|
||||||
<property name="java.specification.version" value="21"/>
|
<property name="java.specification.version" value="21"/>
|
||||||
<property name="sun.jnu.encoding" value="UTF-8"/>
|
<property name="sun.jnu.encoding" value="UTF-8"/>
|
||||||
|
|
@ -13,7 +13,7 @@
|
||||||
<property name="sun.java.launcher" value="SUN_STANDARD"/>
|
<property name="sun.java.launcher" value="SUN_STANDARD"/>
|
||||||
<property name="user.country" value="US"/>
|
<property name="user.country" value="US"/>
|
||||||
<property name="sun.boot.library.path" value="/usr/lib/jvm/java-21-openjdk-amd64/lib"/>
|
<property name="sun.boot.library.path" value="/usr/lib/jvm/java-21-openjdk-amd64/lib"/>
|
||||||
<property name="sun.java.command" value="/config/workspace/SchuleB/jdbc_konsolen_projekt/target/surefire/surefirebooter-20251211123619406_3.jar /config/workspace/SchuleB/jdbc_konsolen_projekt/target/surefire 2025-12-11T12-36-19_171-jvmRun1 surefire-20251211123619406_1tmp surefire_0-20251211123619406_2tmp"/>
|
<property name="sun.java.command" value="/config/workspace/SchuleB/jdbc_konsolen_projekt/target/surefire/surefirebooter-20251211134712585_3.jar /config/workspace/SchuleB/jdbc_konsolen_projekt/target/surefire 2025-12-11T13-47-12_301-jvmRun1 surefire-20251211134712585_1tmp surefire_0-20251211134712585_2tmp"/>
|
||||||
<property name="jdk.debug" value="release"/>
|
<property name="jdk.debug" value="release"/>
|
||||||
<property name="surefire.test.class.path" value="/config/workspace/SchuleB/jdbc_konsolen_projekt/target/test-classes:/config/workspace/SchuleB/jdbc_konsolen_projekt/target/classes:/config/.m2/repository/org/postgresql/postgresql/42.7.3/postgresql-42.7.3.jar:/config/.m2/repository/org/checkerframework/checker-qual/3.42.0/checker-qual-3.42.0.jar:/config/.m2/repository/org/junit/jupiter/junit-jupiter/5.10.0/junit-jupiter-5.10.0.jar:/config/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.10.0/junit-jupiter-api-5.10.0.jar:/config/.m2/repository/org/opentest4j/opentest4j/1.3.0/opentest4j-1.3.0.jar:/config/.m2/repository/org/junit/platform/junit-platform-commons/1.10.0/junit-platform-commons-1.10.0.jar:/config/.m2/repository/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.jar:/config/.m2/repository/org/junit/jupiter/junit-jupiter-params/5.10.0/junit-jupiter-params-5.10.0.jar:/config/.m2/repository/org/junit/jupiter/junit-jupiter-engine/5.10.0/junit-jupiter-engine-5.10.0.jar:/config/.m2/repository/org/junit/platform/junit-platform-engine/1.10.0/junit-platform-engine-1.10.0.jar:/config/.m2/repository/org/mockito/mockito-core/5.11.0/mockito-core-5.11.0.jar:/config/.m2/repository/net/bytebuddy/byte-buddy/1.14.12/byte-buddy-1.14.12.jar:/config/.m2/repository/net/bytebuddy/byte-buddy-agent/1.14.12/byte-buddy-agent-1.14.12.jar:/config/.m2/repository/org/objenesis/objenesis/3.3/objenesis-3.3.jar:/config/.m2/repository/org/mockito/mockito-junit-jupiter/5.11.0/mockito-junit-jupiter-5.11.0.jar:"/>
|
<property name="surefire.test.class.path" value="/config/workspace/SchuleB/jdbc_konsolen_projekt/target/test-classes:/config/workspace/SchuleB/jdbc_konsolen_projekt/target/classes:/config/.m2/repository/org/postgresql/postgresql/42.7.3/postgresql-42.7.3.jar:/config/.m2/repository/org/checkerframework/checker-qual/3.42.0/checker-qual-3.42.0.jar:/config/.m2/repository/org/junit/jupiter/junit-jupiter/5.10.0/junit-jupiter-5.10.0.jar:/config/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.10.0/junit-jupiter-api-5.10.0.jar:/config/.m2/repository/org/opentest4j/opentest4j/1.3.0/opentest4j-1.3.0.jar:/config/.m2/repository/org/junit/platform/junit-platform-commons/1.10.0/junit-platform-commons-1.10.0.jar:/config/.m2/repository/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.jar:/config/.m2/repository/org/junit/jupiter/junit-jupiter-params/5.10.0/junit-jupiter-params-5.10.0.jar:/config/.m2/repository/org/junit/jupiter/junit-jupiter-engine/5.10.0/junit-jupiter-engine-5.10.0.jar:/config/.m2/repository/org/junit/platform/junit-platform-engine/1.10.0/junit-platform-engine-1.10.0.jar:/config/.m2/repository/org/mockito/mockito-core/5.11.0/mockito-core-5.11.0.jar:/config/.m2/repository/net/bytebuddy/byte-buddy/1.14.12/byte-buddy-1.14.12.jar:/config/.m2/repository/net/bytebuddy/byte-buddy-agent/1.14.12/byte-buddy-agent-1.14.12.jar:/config/.m2/repository/org/objenesis/objenesis/3.3/objenesis-3.3.jar:/config/.m2/repository/org/mockito/mockito-junit-jupiter/5.11.0/mockito-junit-jupiter-5.11.0.jar:"/>
|
||||||
<property name="sun.cpu.endian" value="little"/>
|
<property name="sun.cpu.endian" value="little"/>
|
||||||
|
|
@ -28,7 +28,7 @@
|
||||||
<property name="line.separator" value=" "/>
|
<property name="line.separator" value=" "/>
|
||||||
<property name="java.specification.name" value="Java Platform API Specification"/>
|
<property name="java.specification.name" value="Java Platform API Specification"/>
|
||||||
<property name="java.vm.specification.vendor" value="Oracle Corporation"/>
|
<property name="java.vm.specification.vendor" value="Oracle Corporation"/>
|
||||||
<property name="surefire.real.class.path" value="/config/workspace/SchuleB/jdbc_konsolen_projekt/target/surefire/surefirebooter-20251211123619406_3.jar"/>
|
<property name="surefire.real.class.path" value="/config/workspace/SchuleB/jdbc_konsolen_projekt/target/surefire/surefirebooter-20251211134712585_3.jar"/>
|
||||||
<property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
|
<property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
|
||||||
<property name="java.runtime.version" value="21.0.9+10-Ubuntu-124.04"/>
|
<property name="java.runtime.version" value="21.0.9+10-Ubuntu-124.04"/>
|
||||||
<property name="user.name" value="abc"/>
|
<property name="user.name" value="abc"/>
|
||||||
|
|
@ -54,5 +54,5 @@
|
||||||
<property name="sun.io.unicode.encoding" value="UnicodeLittle"/>
|
<property name="sun.io.unicode.encoding" value="UnicodeLittle"/>
|
||||||
<property name="java.class.version" value="65.0"/>
|
<property name="java.class.version" value="65.0"/>
|
||||||
</properties>
|
</properties>
|
||||||
<testcase name="testImport" classname="de.antco.projekt.importers.CsvPersonImporterTest" time="0.005"/>
|
<testcase name="testImport" classname="de.antco.projekt.importers.CsvPersonImporterTest" time="0.011"/>
|
||||||
</testsuite>
|
</testsuite>
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Test set: de.antco.projekt.exporters.CsvPersonExporterTest
|
Test set: de.antco.projekt.exporters.CsvPersonExporterTest
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.108 s -- in de.antco.projekt.exporters.CsvPersonExporterTest
|
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.083 s -- in de.antco.projekt.exporters.CsvPersonExporterTest
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Test set: de.antco.projekt.importers.CsvPersonImporterTest
|
Test set: de.antco.projekt.importers.CsvPersonImporterTest
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.008 s -- in de.antco.projekt.importers.CsvPersonImporterTest
|
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.020 s -- in de.antco.projekt.importers.CsvPersonImporterTest
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue