diff --git a/data/kunden.csv b/data/kunden.csv new file mode 100644 index 0000000..ce05721 --- /dev/null +++ b/data/kunden.csv @@ -0,0 +1,5 @@ +K-000002;Ref GmbH;Str. 1;68163;Mannheim;DE111111111;ref@ref.de;0621-111111;;AKTIV +K-000003;Muster GmbH;Hauptstr. 1;68163;Mannheim;DE123456789;info@muster.de;0621-123456;;AKTIV +K-000004;Edit GmbH;Str. 1;68163;Mannheim;DE333333333;neu@edit.de;0621-333333;;AKTIV +K-000006;Test AG;Teststr. 1;68163;Mannheim;DE987654321;test@test.de;0621-654321;;AKTIV +K-000007;Muster GmbH;Hauptstr. 1;68163;Mannheim;DE123456789;info@muster.de;0621-123456;;AKTIV diff --git a/data/kunden_counter.txt b/data/kunden_counter.txt new file mode 100644 index 0000000..c793025 --- /dev/null +++ b/data/kunden_counter.txt @@ -0,0 +1 @@ +7 \ No newline at end of file diff --git a/lib/junit.jar b/lib/junit.jar new file mode 100644 index 0000000..7b39ab9 Binary files /dev/null and b/lib/junit.jar differ diff --git a/out/kundenverwaltung/KundenVerwaltungTest.class b/out/kundenverwaltung/KundenVerwaltungTest.class new file mode 100644 index 0000000..fb09a80 Binary files /dev/null and b/out/kundenverwaltung/KundenVerwaltungTest.class differ diff --git a/src/test/java/kundenverwaltung/KundenVerwaltungTest.java b/src/test/java/kundenverwaltung/KundenVerwaltungTest.java new file mode 100644 index 0000000..ec0f994 --- /dev/null +++ b/src/test/java/kundenverwaltung/KundenVerwaltungTest.java @@ -0,0 +1,109 @@ +package kundenverwaltung; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + +import java.nio.file.Path; +import java.util.List; + +import static org.junit.jupiter.api.Assertions.*; + +class KundenVerwaltungTest { + + private KundenServiceImpl service; + + @BeforeEach + void setUp() throws Exception { + service = new KundenServiceImpl(); + } + + @Test + @DisplayName("TC-01: Kunde anlegen -> ID K-000001 vergeben") + void tc01KundeAnlegen() { + Kunde k = service.kundeAnlegen("Muster GmbH", "Hauptstr. 1", "68163", + "Mannheim", "DE123456789", "info@muster.de", "0621-123456"); + assertNotNull(k); + assertNotNull(k.getKundenId()); + assertTrue(k.getKundenId().startsWith("K-")); + } + + @Test + @DisplayName("TC-03: Speichern ohne E-Mail wird abgelehnt") + void tc03FehlendePflichtfeld() { + Kunde k = service.kundeAnlegen("Muster GmbH", "Hauptstr. 1", "68163", + "Mannheim", "DE123456789", "", "0621-123456"); + assertNull(k); + } + + @Test + @DisplayName("TC-04: Speichern ohne Name wird abgelehnt") + void tc04FehlenderName() { + Kunde k = service.kundeAnlegen("", "Hauptstr. 1", "68163", + "Mannheim", "DE123456789", "info@muster.de", "0621-123456"); + assertNull(k); + } + + @Test + @DisplayName("TC-07: Suche nach Name findet Treffer") + void tc07SucheNachName() { + service.kundeAnlegen("Muster GmbH", "Hauptstr. 1", "68163", + "Mannheim", "DE123456789", "info@muster.de", "0621-123456"); + List treffer = service.sucheNachName("Muster"); + assertFalse(treffer.isEmpty()); + assertEquals("Muster GmbH", treffer.get(0).getName()); + } + + @Test + @DisplayName("TC-08: findeKunde gibt Objekt zurueck") + void tc08FindeKunde() { + Kunde angelegt = service.kundeAnlegen("Test AG", "Teststr. 1", "68163", + "Mannheim", "DE987654321", "test@test.de", "0621-654321"); + assertNotNull(angelegt); + Kunde gefunden = service.findeKunde(angelegt.getKundenId()); + assertNotNull(gefunden); + assertEquals("Test AG", gefunden.getName()); + } + + @Test + @DisplayName("TC-09: findeKunde gibt null zurueck fuer unbekannte ID") + void tc09FindeKundeNull() { + Kunde k = service.findeKunde("K-999999"); + assertNull(k); + } + + @Test + @DisplayName("TC-10: Loeschen referenzierter Kunde wird abgelehnt") + void tc10LoeschsperreReferenzierterKunde() { + Kunde k = service.kundeAnlegen("Ref GmbH", "Str. 1", "68163", + "Mannheim", "DE111111111", "ref@ref.de", "0621-111111"); + assertNotNull(k); + k.belegHinzufuegen("R-2026-000001"); + boolean geloescht = service.kundeLoschen(k.getKundenId()); + assertFalse(geloescht); + } + + @Test + @DisplayName("TC-11: Loeschen nicht referenzierter Kunde funktioniert") + void tc11LoeschenErfolgreich() { + Kunde k = service.kundeAnlegen("Temp GmbH", "Str. 1", "68163", + "Mannheim", "DE222222222", "temp@temp.de", "0621-222222"); + assertNotNull(k); + boolean geloescht = service.kundeLoschen(k.getKundenId()); + assertTrue(geloescht); + assertNull(service.findeKunde(k.getKundenId())); + } + + @Test + @DisplayName("TC-06: Kunde bearbeiten aktualisiert E-Mail") + 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()); + } +} \ No newline at end of file