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

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

parent 0cbda1af
No related branches found
No related tags found
No related merge requests found
......@@ -16,16 +16,19 @@ import lombok.RequiredArgsConstructor;
public class XdomeaValueReader {
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 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 MESSAGE_TYPE_ID_SUFFIX_XPATH = getXpath("Kopf", "Nachrichtentyp", "code");
static final String PRIMARY_DOCUMENT_NAME_XPATH = getXpath("Primaerdokument", "Dateiname");
static String getXpath(String... 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());
}
......
......@@ -65,12 +65,16 @@ class XdomeaXtaMessageCreatorITCase {
}
@DisplayName("should throw client exception for invalid message 0201")
@Test
void shouldThrowClientExceptionForInvalidMessage0201() {
var invalidMessageZipFile = XtaMessageExampleLoader.load(createExampleConfigBuilder()
.messageLabel("dfoerdermittel")
.patchLabel("invalid-behoerdenkennung-order.patch")
.build()).messageFile();
@ParameterizedTest
@ValueSource(strings = {
"invalid-behoerdenkennung-order.patch",
"invalid-Kennung-missing.patch",
})
void shouldThrowClientExceptionForInvalidMessage0201(String patchName) {
var invalidMessageZipFile = loadMessageFileWithPatch(
"dfoerdermittel",
patchName
);
assertThatThrownBy(() -> creator.createMessage(invalidMessageZipFile))
.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