KundenVerwaltungTest: alle 13 Testfaelle implementiert und bestanden
parent
2b5f3e54f5
commit
01c4cdb013
|
|
@ -1,18 +0,0 @@
|
||||||
src/main/java/bestandsmanagement/ProduktServiceImpl.java
|
|
||||||
src/main/java/bestandsmanagement/ProduktRepository.java
|
|
||||||
src/main/java/bestandsmanagement/ProduktIdGenerator.java
|
|
||||||
src/main/java/bestandsmanagement/Produkt.java
|
|
||||||
src/main/java/belegworkflow/Angebot.java
|
|
||||||
src/main/java/belegworkflow/Dokumentposition.java
|
|
||||||
src/main/java/belegworkflow/BelegnummernGenerator.java
|
|
||||||
src/main/java/belegworkflow/Dokument.java
|
|
||||||
src/main/java/belegworkflow/AngebotStatus.java
|
|
||||||
src/main/java/belegworkflow/RechnungStatus.java
|
|
||||||
src/main/java/belegworkflow/BelegworkflowService.java
|
|
||||||
src/main/java/belegworkflow/Rechnung.java
|
|
||||||
src/main/java/kundenverwaltung/KundenRepository.java
|
|
||||||
src/main/java/kundenverwaltung/KundenIdGenerator.java
|
|
||||||
src/main/java/kundenverwaltung/KundenServiceImpl.java
|
|
||||||
src/main/java/kundenverwaltung/KundenStatus.java
|
|
||||||
src/main/java/kundenverwaltung/Kunde.java
|
|
||||||
src/main/java/kundenverwaltung/Main.java
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
src/test/java/bestandsmanagement/BestandsmanagementTest.java
|
|
||||||
src/test/java/belegworkflow/BelegworkflowTest.java
|
|
||||||
src/test/java/kundenverwaltung/KundenVerwaltungTest.java
|
|
||||||
|
|
@ -3,9 +3,7 @@ package kundenverwaltung;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.DisplayName;
|
import org.junit.jupiter.api.DisplayName;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.junit.jupiter.api.io.TempDir;
|
|
||||||
|
|
||||||
import java.nio.file.Path;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.*;
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
|
@ -20,7 +18,7 @@ class KundenVerwaltungTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@DisplayName("TC-01: Kunde anlegen -> ID K-000001 vergeben")
|
@DisplayName("TC-01: Kunde anlegen -> ID K- vergeben (F-01, F-02)")
|
||||||
void tc01KundeAnlegen() {
|
void tc01KundeAnlegen() {
|
||||||
Kunde k = service.kundeAnlegen("Muster GmbH", "Hauptstr. 1", "68163",
|
Kunde k = service.kundeAnlegen("Muster GmbH", "Hauptstr. 1", "68163",
|
||||||
"Mannheim", "DE123456789", "info@muster.de", "0621-123456");
|
"Mannheim", "DE123456789", "info@muster.de", "0621-123456");
|
||||||
|
|
@ -30,15 +28,24 @@ class KundenVerwaltungTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@DisplayName("TC-03: Speichern ohne E-Mail wird abgelehnt")
|
@DisplayName("TC-02: Fortlaufende ID mit fuehrenden Nullen (F-02)")
|
||||||
void tc03FehlendePflichtfeld() {
|
void tc02KundenIdFormat() {
|
||||||
|
Kunde k = service.kundeAnlegen("Format GmbH", "Str. 1", "68163",
|
||||||
|
"Mannheim", "DE000000001", "format@test.de", "0621-000001");
|
||||||
|
assertNotNull(k);
|
||||||
|
assertTrue(k.getKundenId().matches("K-\\d{6}"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@DisplayName("TC-03: Speichern ohne E-Mail wird abgelehnt (F-03)")
|
||||||
|
void tc03FehlendeEmail() {
|
||||||
Kunde k = service.kundeAnlegen("Muster GmbH", "Hauptstr. 1", "68163",
|
Kunde k = service.kundeAnlegen("Muster GmbH", "Hauptstr. 1", "68163",
|
||||||
"Mannheim", "DE123456789", "", "0621-123456");
|
"Mannheim", "DE123456789", "", "0621-123456");
|
||||||
assertNull(k);
|
assertNull(k);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@DisplayName("TC-04: Speichern ohne Name wird abgelehnt")
|
@DisplayName("TC-04: Speichern ohne Name wird abgelehnt (F-03)")
|
||||||
void tc04FehlenderName() {
|
void tc04FehlenderName() {
|
||||||
Kunde k = service.kundeAnlegen("", "Hauptstr. 1", "68163",
|
Kunde k = service.kundeAnlegen("", "Hauptstr. 1", "68163",
|
||||||
"Mannheim", "DE123456789", "info@muster.de", "0621-123456");
|
"Mannheim", "DE123456789", "info@muster.de", "0621-123456");
|
||||||
|
|
@ -46,7 +53,34 @@ class KundenVerwaltungTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@DisplayName("TC-07: Suche nach Name findet Treffer")
|
@DisplayName("TC-05: Datenpersistenz - Daten nach Neustart erhalten (F-04, NF-SEC-01)")
|
||||||
|
void tc05Datenpersistenz() throws Exception {
|
||||||
|
Kunde k = service.kundeAnlegen("Persistenz GmbH", "Str. 1", "68163",
|
||||||
|
"Mannheim", "DE555555555", "persist@test.de", "0621-555555");
|
||||||
|
assertNotNull(k);
|
||||||
|
String id = k.getKundenId();
|
||||||
|
|
||||||
|
// Neuen Service erstellen simuliert Neustart
|
||||||
|
KundenServiceImpl neuerService = new KundenServiceImpl();
|
||||||
|
Kunde geladen = neuerService.findeKunde(id);
|
||||||
|
assertNotNull(geladen);
|
||||||
|
assertEquals("Persistenz GmbH", geladen.getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@DisplayName("TC-06: Kunde bearbeiten aktualisiert E-Mail (F-05, F-06, F-07)")
|
||||||
|
void tc06KundeBearbeiten() {
|
||||||
|
Kunde k = service.kundeAnlegen("Edit GmbH", "Str. 1", "68163",
|
||||||
|
"Mannheim", "DE333333333", "alt@edit.de", "0621-333333");
|
||||||
|
assertNotNull(k);
|
||||||
|
boolean ok = service.kundeBearbeiten(k.getKundenId(), "Edit GmbH",
|
||||||
|
"Str. 1", "68163", "Mannheim", "DE333333333", "neu@edit.de", "0621-333333");
|
||||||
|
assertTrue(ok);
|
||||||
|
assertEquals("neu@edit.de", service.findeKunde(k.getKundenId()).getEmail());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@DisplayName("TC-07: Suche nach Name findet Treffer (F-09)")
|
||||||
void tc07SucheNachName() {
|
void tc07SucheNachName() {
|
||||||
service.kundeAnlegen("Muster GmbH", "Hauptstr. 1", "68163",
|
service.kundeAnlegen("Muster GmbH", "Hauptstr. 1", "68163",
|
||||||
"Mannheim", "DE123456789", "info@muster.de", "0621-123456");
|
"Mannheim", "DE123456789", "info@muster.de", "0621-123456");
|
||||||
|
|
@ -56,7 +90,7 @@ class KundenVerwaltungTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@DisplayName("TC-08: findeKunde gibt Objekt zurueck")
|
@DisplayName("TC-08: findeKunde gibt Objekt zurueck (F-10)")
|
||||||
void tc08FindeKunde() {
|
void tc08FindeKunde() {
|
||||||
Kunde angelegt = service.kundeAnlegen("Test AG", "Teststr. 1", "68163",
|
Kunde angelegt = service.kundeAnlegen("Test AG", "Teststr. 1", "68163",
|
||||||
"Mannheim", "DE987654321", "test@test.de", "0621-654321");
|
"Mannheim", "DE987654321", "test@test.de", "0621-654321");
|
||||||
|
|
@ -67,25 +101,32 @@ class KundenVerwaltungTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@DisplayName("TC-09: findeKunde gibt null zurueck fuer unbekannte ID")
|
@DisplayName("TC-09: findeKunde gibt null zurueck fuer unbekannte ID (F-10)")
|
||||||
void tc09FindeKundeNull() {
|
void tc09FindeKundeNull() {
|
||||||
Kunde k = service.findeKunde("K-999999");
|
assertNull(service.findeKunde("K-999999"));
|
||||||
assertNull(k);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@DisplayName("TC-10: Loeschen referenzierter Kunde wird abgelehnt")
|
@DisplayName("TC-10: Loeschen referenzierter Kunde wird abgelehnt (F-12, GR-04)")
|
||||||
void tc10LoeschsperreReferenzierterKunde() {
|
void tc10LoeschsperreReferenzierterKunde() throws Exception {
|
||||||
Kunde k = service.kundeAnlegen("Ref GmbH", "Str. 1", "68163",
|
Kunde k = service.kundeAnlegen("Ref GmbH", "Str. 1", "68163",
|
||||||
"Mannheim", "DE111111111", "ref@ref.de", "0621-111111");
|
"Mannheim", "DE111111111", "ref@ref.de", "0621-111111");
|
||||||
assertNotNull(k);
|
assertNotNull(k);
|
||||||
k.belegHinzufuegen("R-2026-000001");
|
|
||||||
|
java.nio.file.Files.createDirectories(java.nio.file.Path.of("data"));
|
||||||
|
java.nio.file.Files.writeString(
|
||||||
|
java.nio.file.Path.of("data/angebote.csv"),
|
||||||
|
"AN-2026-000001;2026-06-24;" + k.getKundenId() + ";2026-07-31;OFFEN;100.00;19.00;119.00\n"
|
||||||
|
);
|
||||||
|
|
||||||
boolean geloescht = service.kundeLoschen(k.getKundenId());
|
boolean geloescht = service.kundeLoschen(k.getKundenId());
|
||||||
assertFalse(geloescht);
|
assertFalse(geloescht);
|
||||||
|
|
||||||
|
java.nio.file.Files.deleteIfExists(java.nio.file.Path.of("data/angebote.csv"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@DisplayName("TC-11: Loeschen nicht referenzierter Kunde funktioniert")
|
@DisplayName("TC-11: Loeschen nicht referenzierter Kunde funktioniert (F-11)")
|
||||||
void tc11LoeschenErfolgreich() {
|
void tc11LoeschenErfolgreich() {
|
||||||
Kunde k = service.kundeAnlegen("Temp GmbH", "Str. 1", "68163",
|
Kunde k = service.kundeAnlegen("Temp GmbH", "Str. 1", "68163",
|
||||||
"Mannheim", "DE222222222", "temp@temp.de", "0621-222222");
|
"Mannheim", "DE222222222", "temp@temp.de", "0621-222222");
|
||||||
|
|
@ -96,14 +137,30 @@ class KundenVerwaltungTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@DisplayName("TC-06: Kunde bearbeiten aktualisiert E-Mail")
|
@DisplayName("TC-12: Transaktionshistorie zeigt verknuepfte Belege (F-13)")
|
||||||
void tc06KundeBearbeiten() {
|
void tc12Transaktionshistorie() {
|
||||||
Kunde k = service.kundeAnlegen("Edit GmbH", "Str. 1", "68163",
|
Kunde k = service.kundeAnlegen("Historie GmbH", "Str. 1", "68163",
|
||||||
"Mannheim", "DE333333333", "alt@edit.de", "0621-333333");
|
"Mannheim", "DE444444444", "hist@test.de", "0621-444444");
|
||||||
assertNotNull(k);
|
assertNotNull(k);
|
||||||
boolean ok = service.kundeBearbeiten(k.getKundenId(), "Edit GmbH",
|
k.belegHinzufuegen("AN-2026-000001");
|
||||||
"Str. 1", "68163", "Mannheim", "DE333333333", "neu@edit.de", "0621-333333");
|
k.belegHinzufuegen("R-2026-000001");
|
||||||
assertTrue(ok);
|
assertEquals(2, k.getBelegReferenzen().size());
|
||||||
assertEquals("neu@edit.de", service.findeKunde(k.getKundenId()).getEmail());
|
assertTrue(k.getBelegReferenzen().contains("AN-2026-000001"));
|
||||||
|
assertTrue(k.getBelegReferenzen().contains("R-2026-000001"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@DisplayName("TC-13: Suche liefert Ergebnis in unter 1 Sekunde (NF-PERF-01)")
|
||||||
|
void tc13Performance() throws Exception {
|
||||||
|
for (int i = 0; i < 100; i++) {
|
||||||
|
service.kundeAnlegen("Kunde " + i, "Str. " + i, "68163",
|
||||||
|
"Mannheim", "DE" + String.format("%09d", i),
|
||||||
|
"kunde" + i + "@test.de", "0621-" + String.format("%06d", i));
|
||||||
|
}
|
||||||
|
long start = System.currentTimeMillis();
|
||||||
|
List<Kunde> treffer = service.sucheNachName("Kunde");
|
||||||
|
long dauer = System.currentTimeMillis() - start;
|
||||||
|
assertFalse(treffer.isEmpty());
|
||||||
|
assertTrue(dauer < 1000, "Suche dauerte laenger als 1 Sekunde: " + dauer + "ms");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue