Gruppe L: Bestandsmanagement Tests hinzugefuegt - 10/10 bestanden

main
Christian Khazanovych 2026-06-24 17:24:52 +02:00
parent ca66a4685d
commit a88ad8ec1b
4 changed files with 121 additions and 1 deletions

View File

@ -1 +1 @@
1 8

View File

@ -0,0 +1,6 @@
P-000002;Verfuegbar;9.99;0.19;5;;
P-000003;Ausverkauft;9.99;0.19;0;;
P-000004;Hammer;5.99;0.19;20;;
P-000006;Edit Artikel;15.00;0.19;10;;
P-000007;Ref Artikel;1.00;0.19;5;;
P-000008;Testprodukt;19.99;0.19;100;;
1 P-000002 Verfuegbar 9.99 0.19 5
1 P-000002 Verfuegbar 9.99 0.19 5
2 P-000003 Ausverkauft 9.99 0.19 0
3 P-000004 Hammer 5.99 0.19 20
4 P-000006 Edit Artikel 15.00 0.19 10
5 P-000007 Ref Artikel 1.00 0.19 5
6 P-000008 Testprodukt 19.99 0.19 100

View File

@ -0,0 +1,114 @@
package bestandsmanagement;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import java.math.BigDecimal;
import java.util.List;
import static org.junit.jupiter.api.Assertions.*;
class BestandsmanagementTest {
private ProduktServiceImpl service;
@BeforeEach
void setUp() throws Exception {
service = new ProduktServiceImpl();
}
@Test
@DisplayName("TC-01: Artikel anlegen -> ID P-000001 vergeben")
void tc01ArtikelAnlegen() {
Produkt p = service.produktAnlegen("Testprodukt",
new BigDecimal("19.99"), new BigDecimal("0.19"), 100, null);
assertNotNull(p);
assertTrue(p.getProduktId().startsWith("P-"));
}
@Test
@DisplayName("TC-02: Artikel mit negativem Bestand wird abgelehnt (F-09)")
void tc02NegativerBestand() {
Produkt p = service.produktAnlegen("Testprodukt",
new BigDecimal("19.99"), new BigDecimal("0.19"), -1, null);
assertNull(p);
}
@Test
@DisplayName("TC-03: Artikel ohne Bezeichnung wird abgelehnt")
void tc03FehlenderName() {
Produkt p = service.produktAnlegen("",
new BigDecimal("19.99"), new BigDecimal("0.19"), 10, null);
assertNull(p);
}
@Test
@DisplayName("TC-04: Bestand 0 -> Artikel wird als nicht verfuegbar markiert (F-08)")
void tc04BestandNull() {
Produkt p = service.produktAnlegen("Ausverkauft",
new BigDecimal("9.99"), new BigDecimal("0.19"), 0, null);
assertNotNull(p);
assertFalse(p.isVerfuegbar());
}
@Test
@DisplayName("TC-05: Bestand > 0 -> Artikel ist verfuegbar")
void tc05BestandPositiv() {
Produkt p = service.produktAnlegen("Verfuegbar",
new BigDecimal("9.99"), new BigDecimal("0.19"), 5, null);
assertNotNull(p);
assertTrue(p.isVerfuegbar());
}
@Test
@DisplayName("TC-06: Artikel bearbeiten aktualisiert Preis (F-03, F-04)")
void tc06ArtikelBearbeiten() {
Produkt p = service.produktAnlegen("Edit Artikel",
new BigDecimal("10.00"), new BigDecimal("0.19"), 10, null);
assertNotNull(p);
boolean ok = service.produktBearbeiten(p.getProduktId(), "Edit Artikel",
new BigDecimal("15.00"), new BigDecimal("0.19"), 10, null);
assertTrue(ok);
assertEquals(new BigDecimal("15.00"),
service.findeProdukt(p.getProduktId()).getNettoEinzelpreis());
}
@Test
@DisplayName("TC-07: Suche nach Bezeichnung findet Treffer (F-07)")
void tc07SucheNachBezeichnung() {
service.produktAnlegen("Hammer",
new BigDecimal("5.99"), new BigDecimal("0.19"), 20, null);
List<Produkt> treffer = service.sucheNachBezeichnung("Hammer");
assertFalse(treffer.isEmpty());
assertEquals("Hammer", treffer.get(0).getBezeichnung());
}
@Test
@DisplayName("TC-08: findeProdukt gibt null fuer unbekannte ID zurueck")
void tc08FindeProduktNull() {
assertNull(service.findeProdukt("P-999999"));
}
@Test
@DisplayName("TC-09: Loeschen referenzierter Artikel wird abgelehnt (F-11)")
void tc09LoeschsperreReferenzierterArtikel() {
Produkt p = service.produktAnlegen("Ref Artikel",
new BigDecimal("1.00"), new BigDecimal("0.19"), 5, null);
assertNotNull(p);
p.belegHinzufuegen("R-2026-000001");
boolean geloescht = service.produktLoeschen(p.getProduktId());
assertFalse(geloescht);
}
@Test
@DisplayName("TC-10: Loeschen nicht referenzierter Artikel funktioniert (F-10)")
void tc10LoeschenErfolgreich() {
Produkt p = service.produktAnlegen("Temp Artikel",
new BigDecimal("1.00"), new BigDecimal("0.19"), 5, null);
assertNotNull(p);
boolean geloescht = service.produktLoeschen(p.getProduktId());
assertTrue(geloescht);
assertNull(service.findeProdukt(p.getProduktId()));
}
}