Skip to content

Commit

Permalink
IllegalStateException in ValidationException umgewandelt
Browse files Browse the repository at this point in the history
  • Loading branch information
Oli B committed Sep 1, 2024
1 parent e93c1c6 commit 6c40566
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 2 deletions.
3 changes: 2 additions & 1 deletion lib/src/main/java/gdv/xport/satz/Satz.java
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import javax.validation.ValidationException;
import java.io.*;
import java.lang.reflect.Constructor;
import java.util.*;
Expand Down Expand Up @@ -621,7 +622,7 @@ private BetragMitVorzeichen getBetragMitVorzeichen(final Bezeichner bezeichner)
String vorzeichenInhalt = vorzeichen.getInhalt();
if (StringUtils.isBlank(vorzeichenInhalt)) {
if (StringUtils.isNotBlank(betrag.getInhalt()) && !StringUtils.repeat('0', betrag.getAnzahlBytes()).equals(betrag.getInhalt())) {
throw new IllegalStateException("Vorzeichenfeld ist leer fuer " + bezeichner + ", aber Betrag ist nicht 0.");
throw new ValidationException("Vorzeichenfeld ist leer fuer " + bezeichner + ", aber Betrag ist nicht 0.");
}
vorzeichenInhalt = "+";
}
Expand Down
3 changes: 2 additions & 1 deletion lib/src/test/java/gdv/xport/satz/SatzTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
import patterntesting.runtime.junit.CollectionTester;
import patterntesting.runtime.junit.ObjectTester;

import javax.validation.ValidationException;
import java.io.*;
import java.math.BigDecimal;
import java.util.Collection;
Expand Down Expand Up @@ -222,7 +223,7 @@ public void testGetBetragMitLeeremVorzeichen() {
satz.getTeildatensatz(1).setFeld(ByteAdresse.of(167), "");

// Leeres Vorzeichen, aber nicht leerer Betrag -> IllegalStateException
assertThrows(IllegalStateException.class, () -> satz.getFeld(Bezeichner.SCHADENBEARBEITUNGSKOSTEN_IN_WAEHRUNGSEINHEITEN, BetragMitVorzeichen.class));
assertThrows(ValidationException.class, () -> satz.getFeld(Bezeichner.SCHADENBEARBEITUNGSKOSTEN_IN_WAEHRUNGSEINHEITEN, BetragMitVorzeichen.class));

// Leeres Vorzeichen und Betrag 0 -> Vorzeichen-Feld weiter leer, aber der Betrag mit Vorzeichen ist "+0"
satz.setFeld(Bezeichner.SCHADENBEARBEITUNGSKOSTEN_IN_WAEHRUNGSEINHEITEN, "00000000000");
Expand Down

0 comments on commit 6c40566

Please sign in to comment.