Gruppe K: Belegworkflow Tests hinzugefuegt - 10/10 bestanden
parent
3d74423278
commit
3c0f1cee07
|
|
@ -0,0 +1 @@
|
||||||
|
9
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
AN-2026-000001;2026-06-24;K-000001;2026-07-24;OFFEN;0.00;0.00;0.00
|
||||||
|
AN-2026-000002;2026-06-24;K-000001;2026-07-24;OFFEN;0.00;0.00;0.00
|
||||||
|
AN-2026-000003;2026-06-24;K-000001;2026-07-24;UEBERFUEHRT;0.00;0.00;0.00
|
||||||
|
AN-2026-000004;2026-06-24;K-000099;2026-07-24;OFFEN;0.00;0.00;0.00
|
||||||
|
AN-2026-000005;2026-06-24;K-000001;2026-07-24;UEBERFUEHRT;0.00;0.00;0.00
|
||||||
|
AN-2026-000006;2026-06-24;K-000001;2026-07-24;UEBERFUEHRT;0.00;0.00;0.00
|
||||||
|
AN-2026-000007;2026-06-24;K-000001;2026-07-24;UEBERFUEHRT;0.00;0.00;0.00
|
||||||
|
AN-2026-000008;2026-06-24;K-000001;2026-07-24;UEBERFUEHRT;0.00;0.00;0.00
|
||||||
|
AN-2026-000009;2026-06-24;K-000001;2026-07-24;OFFEN;20.00;3.80;23.80
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
5
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
R-2026-000001;2026-06-24;K-000001;2026-06-24;2026-06-24;2026-07-08;AN-2026-000003;OFFEN;true;0.00;0.00;0.00
|
||||||
|
R-2026-000002;2026-06-24;K-000001;2026-06-24;2026-06-24;2026-07-08;AN-2026-000005;OFFEN;false;0.00;0.00;0.00
|
||||||
|
R-2026-000003;2026-06-24;K-000001;2026-06-24;2026-06-24;2026-07-08;AN-2026-000006;OFFEN;false;0.00;0.00;0.00
|
||||||
|
R-2026-000004;2026-06-24;K-000001;2026-06-24;2026-06-24;2026-07-08;AN-2026-000007;OFFEN;false;20.00;3.80;23.80
|
||||||
|
R-2026-000005;2026-06-24;K-000001;2026-06-24;2026-06-24;2026-07-08;AN-2026-000008;OFFEN;false;20.00;3.80;23.80
|
||||||
|
Binary file not shown.
|
|
@ -0,0 +1,145 @@
|
||||||
|
package belegworkflow;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
|
import org.junit.jupiter.api.DisplayName;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
|
||||||
|
class BelegworkflowTest {
|
||||||
|
|
||||||
|
private BelegworkflowService service;
|
||||||
|
private List<Dokumentposition> testPositionen;
|
||||||
|
|
||||||
|
@BeforeEach
|
||||||
|
void setUp() throws Exception {
|
||||||
|
service = new BelegworkflowService();
|
||||||
|
testPositionen = List.of(new Dokumentposition(
|
||||||
|
"P-000001", "Testprodukt",
|
||||||
|
2, new BigDecimal("10.00"), new BigDecimal("0.19")
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@DisplayName("TC-01: Angebot erstellen -> Angebotsnummer AN- vergeben (F-01, F-02)")
|
||||||
|
void tc01AngebotErstellen() {
|
||||||
|
Angebot a = service.erstelleAngebot("K-000001", testPositionen,
|
||||||
|
LocalDate.now().plusDays(30));
|
||||||
|
assertNotNull(a);
|
||||||
|
assertTrue(a.getBelegnummer().startsWith("AN-"));
|
||||||
|
assertEquals(AngebotStatus.OFFEN, a.getStatus());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@DisplayName("TC-02: Angebot ohne Kunde wird abgelehnt (F-01)")
|
||||||
|
void tc02AngebotOhneKunde() {
|
||||||
|
Angebot a = service.erstelleAngebot("", testPositionen,
|
||||||
|
LocalDate.now().plusDays(30));
|
||||||
|
assertNull(a);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@DisplayName("TC-03: Angebot ohne Positionen wird abgelehnt (F-01)")
|
||||||
|
void tc03AngebotOhnePositionen() {
|
||||||
|
Angebot a = service.erstelleAngebot("K-000001", List.of(),
|
||||||
|
LocalDate.now().plusDays(30));
|
||||||
|
assertNull(a);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@DisplayName("TC-04: Summenberechnung korrekt (F-03, GR-06)")
|
||||||
|
void tc04Summenberechnung() {
|
||||||
|
Angebot a = service.erstelleAngebot("K-000001", testPositionen,
|
||||||
|
LocalDate.now().plusDays(30));
|
||||||
|
assertNotNull(a);
|
||||||
|
assertEquals(new BigDecimal("20.00"), a.getSummeNetto());
|
||||||
|
assertEquals(new BigDecimal("3.80"), a.getSummeSteuer());
|
||||||
|
assertEquals(new BigDecimal("23.80"), a.getSummeBrutto());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@DisplayName("TC-05: Rechnung aus Angebot -> Angebot wird auf UEBERFUEHRT gesetzt (F-05)")
|
||||||
|
void tc05RechnungAusAngebot() {
|
||||||
|
Angebot a = service.erstelleAngebot("K-000001", testPositionen,
|
||||||
|
LocalDate.now().plusDays(30));
|
||||||
|
assertNotNull(a);
|
||||||
|
Rechnung r = service.erstelleRechnungAusAngebot(a.getBelegnummer(),
|
||||||
|
LocalDate.now(), LocalDate.now(), LocalDate.now().plusDays(14));
|
||||||
|
assertNotNull(r);
|
||||||
|
assertTrue(r.getBelegnummer().startsWith("R-"));
|
||||||
|
assertEquals(AngebotStatus.UEBERFUEHRT, a.getStatus());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@DisplayName("TC-06: Rechnungsnummer ist fortlaufend (F-07, GR-01)")
|
||||||
|
void tc06RechnungsnummerFortlaufend() {
|
||||||
|
Angebot a1 = service.erstelleAngebot("K-000001", testPositionen,
|
||||||
|
LocalDate.now().plusDays(30));
|
||||||
|
Angebot a2 = service.erstelleAngebot("K-000001", testPositionen,
|
||||||
|
LocalDate.now().plusDays(30));
|
||||||
|
assertNotNull(a1);
|
||||||
|
assertNotNull(a2);
|
||||||
|
|
||||||
|
Rechnung r1 = service.erstelleRechnungAusAngebot(a1.getBelegnummer(),
|
||||||
|
LocalDate.now(), LocalDate.now(), LocalDate.now().plusDays(14));
|
||||||
|
Rechnung r2 = service.erstelleRechnungAusAngebot(a2.getBelegnummer(),
|
||||||
|
LocalDate.now(), LocalDate.now(), LocalDate.now().plusDays(14));
|
||||||
|
|
||||||
|
assertNotNull(r1);
|
||||||
|
assertNotNull(r2);
|
||||||
|
assertNotEquals(r1.getBelegnummer(), r2.getBelegnummer());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@DisplayName("TC-07: Rechnung aus ueberführtem Angebot wird abgelehnt (F-05)")
|
||||||
|
void tc07RechnungAusUeberfuehrtemAngebot() {
|
||||||
|
Angebot a = service.erstelleAngebot("K-000001", testPositionen,
|
||||||
|
LocalDate.now().plusDays(30));
|
||||||
|
assertNotNull(a);
|
||||||
|
service.erstelleRechnungAusAngebot(a.getBelegnummer(),
|
||||||
|
LocalDate.now(), LocalDate.now(), LocalDate.now().plusDays(14));
|
||||||
|
|
||||||
|
Rechnung r2 = service.erstelleRechnungAusAngebot(a.getBelegnummer(),
|
||||||
|
LocalDate.now(), LocalDate.now(), LocalDate.now().plusDays(14));
|
||||||
|
assertNull(r2);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@DisplayName("TC-08: Festgeschriebene Rechnung kann nicht geaendert werden (F-10)")
|
||||||
|
void tc08FestgeschriebeneRechnung() {
|
||||||
|
Angebot a = service.erstelleAngebot("K-000001", testPositionen,
|
||||||
|
LocalDate.now().plusDays(30));
|
||||||
|
assertNotNull(a);
|
||||||
|
Rechnung r = service.erstelleRechnungAusAngebot(a.getBelegnummer(),
|
||||||
|
LocalDate.now(), LocalDate.now(), LocalDate.now().plusDays(14));
|
||||||
|
assertNotNull(r);
|
||||||
|
|
||||||
|
service.finalisiereRechnung(r.getBelegnummer());
|
||||||
|
assertTrue(r.isFestgeschrieben());
|
||||||
|
|
||||||
|
r.setStatus(RechnungStatus.BEZAHLT);
|
||||||
|
assertEquals(RechnungStatus.OFFEN, r.getStatus());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@DisplayName("TC-09: Kunde ist referenziert wird erkannt (F-12)")
|
||||||
|
void tc09KundeReferenziert() {
|
||||||
|
service.erstelleAngebot("K-000099", testPositionen,
|
||||||
|
LocalDate.now().plusDays(30));
|
||||||
|
assertTrue(service.istKundeReferenziert("K-000099"));
|
||||||
|
assertFalse(service.istKundeReferenziert("K-999999"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@DisplayName("TC-10: Produkt ist referenziert wird erkannt (F-12)")
|
||||||
|
void tc10ProduktReferenziert() {
|
||||||
|
service.erstelleAngebot("K-000001", testPositionen,
|
||||||
|
LocalDate.now().plusDays(30));
|
||||||
|
assertTrue(service.istProduktReferenziert("P-000001"));
|
||||||
|
assertFalse(service.istProduktReferenziert("P-999999"));
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue