Skip to content
Snippets Groups Projects
Commit a37500ba authored by Jan Zickermann's avatar Jan Zickermann
Browse files

OZG-6754 KOP-2717 xdomea: Refine xpath for author and reader id

parent ff4f9eaa
No related branches found
No related tags found
No related merge requests found
...@@ -16,16 +16,19 @@ import lombok.RequiredArgsConstructor; ...@@ -16,16 +16,19 @@ import lombok.RequiredArgsConstructor;
public class XdomeaValueReader { public class XdomeaValueReader {
static final String PROCESS_ID_XPATH = getXpath("Kopf", "ProzessID"); static final String PROCESS_ID_XPATH = getXpath("Kopf", "ProzessID");
static final String AUTHOR_ID_SUFFIX_XPATH = getXpath("Kopf", "Absender", "code"); static final String AUTHOR_ID_SUFFIX_XPATH = getXpath("Kopf", "Absender", "Behoerdenschluessel|Kennung", "code");
static final String AUTHOR_ID_PREFIX_XPATH = getXpath("Kopf", "Absender", "Praefix", "code"); static final String AUTHOR_ID_PREFIX_XPATH = getXpath("Kopf", "Absender", "Praefix", "code");
static final String READER_ID_SUFFIX_XPATH = getXpath("Kopf", "Empfaenger", "code"); static final String READER_ID_SUFFIX_XPATH = getXpath("Kopf", "Empfaenger", "Behoerdenschluessel|Kennung", "code");
static final String READER_ID_PREFIX_XPATH = getXpath("Kopf", "Empfaenger", "Praefix", "code"); static final String READER_ID_PREFIX_XPATH = getXpath("Kopf", "Empfaenger", "Praefix", "code");
static final String MESSAGE_TYPE_ID_SUFFIX_XPATH = getXpath("Kopf", "Nachrichtentyp", "code"); static final String MESSAGE_TYPE_ID_SUFFIX_XPATH = getXpath("Kopf", "Nachrichtentyp", "code");
static final String PRIMARY_DOCUMENT_NAME_XPATH = getXpath("Primaerdokument", "Dateiname"); static final String PRIMARY_DOCUMENT_NAME_XPATH = getXpath("Primaerdokument", "Dateiname");
static String getXpath(String... hierarchy) { static String getXpath(String... hierarchy) {
return Arrays.stream(hierarchy) return Arrays.stream(hierarchy)
.map(h -> "//*[local-name() = '" + h + "']") .map(localNames -> Arrays.stream(localNames.split("\\|"))
.map(localName -> "local-name() = '" + localName + "'")
.collect(Collectors.joining(" or ")))
.map(predicate -> "//*[" + predicate + "]")
.collect(Collectors.joining()); .collect(Collectors.joining());
} }
......
...@@ -65,12 +65,16 @@ class XdomeaXtaMessageCreatorITCase { ...@@ -65,12 +65,16 @@ class XdomeaXtaMessageCreatorITCase {
} }
@DisplayName("should throw client exception for invalid message 0201") @DisplayName("should throw client exception for invalid message 0201")
@Test @ParameterizedTest
void shouldThrowClientExceptionForInvalidMessage0201() { @ValueSource(strings = {
var invalidMessageZipFile = XtaMessageExampleLoader.load(createExampleConfigBuilder() "invalid-behoerdenkennung-order.patch",
.messageLabel("dfoerdermittel") "invalid-Kennung-missing.patch",
.patchLabel("invalid-behoerdenkennung-order.patch") })
.build()).messageFile(); void shouldThrowClientExceptionForInvalidMessage0201(String patchName) {
var invalidMessageZipFile = loadMessageFileWithPatch(
"dfoerdermittel",
patchName
);
assertThatThrownBy(() -> creator.createMessage(invalidMessageZipFile)) assertThatThrownBy(() -> creator.createMessage(invalidMessageZipFile))
.isInstanceOf(ClientException.class); .isInstanceOf(ClientException.class);
......
diff --git a/src/test/resources/messages/dfoerdermittel/message/d5be7468-e620-4126-a40e-61a7f9b46345_Geschaeftsgang.Geschaeftsgang.0201.zip/d5be7468-e620-4126-a40e-61a7f9b46345_Geschaeftsgang.Geschaeftsgang.0201.xml b/src/test/resources/messages/dfoerdermittel/message/d5be7468-e620-4126-a40e-61a7f9b46345_Geschaeftsgang.Geschaeftsgang.0201.zip/d5be7468-e620-4126-a40e-61a7f9b46345_Geschaeftsgang.Geschaeftsgang.0201.xml
index 7815e7b..82dd9db 100644
--- a/src/test/resources/messages/dfoerdermittel/message/d5be7468-e620-4126-a40e-61a7f9b46345_Geschaeftsgang.Geschaeftsgang.0201.zip/d5be7468-e620-4126-a40e-61a7f9b46345_Geschaeftsgang.Geschaeftsgang.0201.xml
+++ b/src/test/resources/messages/dfoerdermittel/message/d5be7468-e620-4126-a40e-61a7f9b46345_Geschaeftsgang.Geschaeftsgang.0201.zip/d5be7468-e620-4126-a40e-61a7f9b46345_Geschaeftsgang.Geschaeftsgang.0201.xml
@@ -10,9 +10,6 @@
<Erstellungszeitpunkt>2023-04-04T06:59:15.4231885+02:00</Erstellungszeitpunkt>
<Absender>
<Behoerdenkennung>
- <Kennung listURI="" listVersionID="">
- <code xmlns="">${authorIdentifier.value}</code>
- </Kennung>
<Praefix listURI="" listVersionID="">
<code xmlns="">${authorIdentifier.prefix}</code>
</Praefix>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment