From 50b153df794eb022bc760dcded0a7312316ff317 Mon Sep 17 00:00:00 2001 From: akulikov Date: Wed, 27 Nov 2024 16:46:39 +0300 Subject: [PATCH] fix tests xml_exporter/xml_importer --- .../logic/stages/ExportFromHazelcast.java | 8 +- .../logic/stages/ExportFromHazelcastTest.java | 95 +++++++++++++------ .../xml-original/DF-02_S_PRC1604240915_1.xml | 6 +- .../DF-02_S_PRC1604240915_1_empty.xml | 5 + .../xml-original/DF-03_S_PRC1604240915_1.xml | 2 +- .../xml-original/DF-05_S_PRC1604240915_1.xml | 2 +- .../xml-original/DF-07_S_PRC1604240915_1.xml | 6 +- .../xml-original/DF-51_S_PRC1604240915_1.xml | 2 +- .../xml-original/DF-53_S_PRC1604240915_1.xml | 6 +- .../xml-original/DF-54_S_PRC1604240915_1.xml | 2 +- .../xml-original/DF-56_S_PRC1604240915_1.xml | 2 +- .../resources/xml/DF-01_S_PRC1604240915_1.xml | 2 +- .../resources/xml/DF-04_S_PRC1604240915_1.xml | 2 +- .../resources/xml/DF-06_S_PRC1604240915_1.xml | 2 +- .../resources/xml/DF-52_S_PRC1604240915_1.xml | 2 +- .../resources/xml/DF-55_S_PRC1604240915_1.xml | 2 +- .../resources/xml/DF-57_S_PRC1604240915_1.xml | 2 +- 17 files changed, 92 insertions(+), 56 deletions(-) create mode 100644 clearing-parent/xml-exporter/src/test/resources/xml-original/DF-02_S_PRC1604240915_1_empty.xml diff --git a/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/logic/stages/ExportFromHazelcast.java b/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/logic/stages/ExportFromHazelcast.java index 6ff9a7faf..a5e39e485 100644 --- a/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/logic/stages/ExportFromHazelcast.java +++ b/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/logic/stages/ExportFromHazelcast.java @@ -1,9 +1,5 @@ package ru.spcex.clearing.xml.exporter.logic.stages; -import static ru.spcex.clearing.platform.messaging.domain.Consts.PAIR_SDF; -import static ru.spcex.clearing.xml.exporter.logic.data.tags.objects.ObjectTag.ruCurrency; - -import com.fasterxml.jackson.dataformat.xml.XmlMapper; import java.io.File; import java.io.IOException; import java.time.LocalDate; @@ -16,6 +12,8 @@ import java.util.Map; import java.util.Objects; import java.util.function.Function; import java.util.function.Supplier; +import com.fasterxml.jackson.dataformat.xml.XmlMapper; +import net.logstash.logback.util.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Qualifier; @@ -183,7 +181,7 @@ public class ExportFromHazelcast { private void patchDocumentTag(DocumentTag documentTag, Long inSdfId, Imdg mapWithInSdf, Function messageIdGetter) { T inSdf = mapWithInSdf.getSingleObjectByID(inSdfId); if (inSdf instanceof WithMessageId withMessageId) { - if (documentTag.getParentDoc().getParentId() == null) { + if (StringUtils.isBlank(documentTag.getParentDoc().getParentId())) { documentTag.getParentDoc().setParentId(withMessageId.getMessageId()); } else if (!documentTag.getParentDoc().getParentId().equalsIgnoreCase(withMessageId.getMessageId())) { log.warn( diff --git a/clearing-parent/xml-exporter/src/test/java/ru/spcex/clearing/xml/exporter/logic/stages/ExportFromHazelcastTest.java b/clearing-parent/xml-exporter/src/test/java/ru/spcex/clearing/xml/exporter/logic/stages/ExportFromHazelcastTest.java index 2db4ef189..3373119b2 100644 --- a/clearing-parent/xml-exporter/src/test/java/ru/spcex/clearing/xml/exporter/logic/stages/ExportFromHazelcastTest.java +++ b/clearing-parent/xml-exporter/src/test/java/ru/spcex/clearing/xml/exporter/logic/stages/ExportFromHazelcastTest.java @@ -1,23 +1,26 @@ package ru.spcex.clearing.xml.exporter.logic.stages; -import static org.junit.jupiter.api.Assertions.fail; - import java.io.File; import java.io.IOException; import java.math.BigDecimal; import java.math.BigInteger; +import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; import java.time.Instant; import java.time.LocalDate; import java.time.ZoneId; import java.time.format.DateTimeFormatter; +import java.util.Collection; import javax.annotation.PostConstruct; +import org.apache.commons.io.FileUtils; import org.apache.kafka.clients.producer.MockProducer; import org.apache.kafka.clients.producer.Producer; import org.apache.kafka.clients.producer.ProducerRecord; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.AfterEach; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.fail; import org.junit.jupiter.api.Test; import org.mockito.ArgumentCaptor; import org.mockito.Captor; @@ -168,9 +171,11 @@ class ExportFromHazelcastTest { Assertions.assertThat(actualObjectTag.getFileType()).isEqualTo(expectedSDf02.getFile_type()); try { - Assertions.assertThat(Files.mismatch(actualResultContainer.getFileForExport().toPath(), - Path.of("./src/test/resources/xml-original/DF-02_S_PRC1604240915_1.xml"))) - .isEqualTo(-1L); + String actual = FileUtils.readFileToString(actualResultContainer.getFileForExport(), StandardCharsets.UTF_8); + String expected = FileUtils.readFileToString(new File("./src/test/resources/xml-original/DF-02_S_PRC1604240915_1.xml"), StandardCharsets.UTF_8); + actual = removeAttributes(actual, "MESSAGEDATE", "MESSAGETIME"); + expected = removeAttributes(expected, "MESSAGEDATE", "MESSAGETIME"); + assertEquals(expected, actual); } catch (IOException e) { fail("File comparison failed!"); } @@ -182,16 +187,18 @@ class ExportFromHazelcastTest { actualResultContainer.setFileForExport(new File("./src/test/resources/xml/DF-02_S_PRC1604240915_1.xml")); StageResult stageResult = exportFromHazelcast.process(actualResultContainer); - DF02ObjectTag actualObjectTag = (DF02ObjectTag) actualResultContainer.getDocumentTag().getObjects(); + Object actualObjectTag = actualResultContainer.getDocumentTag().getObjects(); Assertions.assertThat(stageResult).isEqualTo(StageResult.OK); Assertions.assertThat(actualResultContainer.getDocumentTag().getMessageType()).isEqualTo("DF02"); - Assertions.assertThat(actualObjectTag).isEqualTo(null); + Assertions.assertThat(((Collection) actualObjectTag).isEmpty()).isTrue(); try { - Assertions.assertThat(Files.mismatch(actualResultContainer.getFileForExport().toPath(), - Path.of("./src/test/resources/xml-original/DF-02_S_PRC1604240915_1.xml"))) - .isEqualTo(-1L); + String actual = FileUtils.readFileToString(actualResultContainer.getFileForExport(), StandardCharsets.UTF_8); + String expected = FileUtils.readFileToString(new File("./src/test/resources/xml-original/DF-02_S_PRC1604240915_1_empty.xml"), StandardCharsets.UTF_8); + actual = removeAttributes(actual, "MESSAGEDATE", "MESSAGETIME"); + expected = removeAttributes(expected, "MESSAGEDATE", "MESSAGETIME"); + assertEquals(expected, actual); } catch (IOException e) { fail("File comparison failed!"); } @@ -239,10 +246,13 @@ class ExportFromHazelcastTest { Assertions.assertThat(actualObjectTag.getSpecif1()).isEqualTo(expectedSDf03.getSpecif_1()); Assertions.assertThat(actualObjectTag.getImpResult()).isEqualTo(expectedSDf03.getImp_result()); + try { - Assertions.assertThat(Files.mismatch(actualResultContainer.getFileForExport().toPath(), - Path.of("./src/test/resources/xml-original/DF-03_S_PRC1604240915_1.xml"))) - .isEqualTo(-1L); + String actual = FileUtils.readFileToString(actualResultContainer.getFileForExport(), StandardCharsets.UTF_8); + String expected = FileUtils.readFileToString(new File("./src/test/resources/xml-original/DF-03_S_PRC1604240915_1.xml"), StandardCharsets.UTF_8); + actual = removeAttributes(actual, "MESSAGEDATE", "MESSAGETIME", "PAY_DATE"); + expected = removeAttributes(expected, "MESSAGEDATE", "MESSAGETIME", "PAY_DATE"); + assertEquals(expected, actual); } catch (IOException e) { fail("File comparison failed!"); } @@ -273,9 +283,11 @@ class ExportFromHazelcastTest { Assertions.assertThat(actualObjectTag.getPr()).isEqualTo(expectedSDf05.getPr()); try { - Assertions.assertThat(Files.mismatch(actualResultContainer.getFileForExport().toPath(), - Path.of("./src/test/resources/xml-original/DF-05_S_PRC1604240915_1.xml"))) - .isEqualTo(-1L); + String actual = FileUtils.readFileToString(actualResultContainer.getFileForExport(), StandardCharsets.UTF_8); + String expected = FileUtils.readFileToString(new File("./src/test/resources/xml-original/DF-05_S_PRC1604240915_1.xml"), StandardCharsets.UTF_8); + actual = removeAttributes(actual, "MESSAGEDATE", "MESSAGETIME"); + expected = removeAttributes(expected, "MESSAGEDATE", "MESSAGETIME"); + assertEquals(expected, actual); } catch (IOException e) { fail("File comparison failed!"); } @@ -335,9 +347,11 @@ class ExportFromHazelcastTest { Assertions.assertThat(actualObjectTag.getPayVal()).isEqualTo(expectedSDf07.getPay_val()); try { - Assertions.assertThat(Files.mismatch(actualResultContainer.getFileForExport().toPath(), - Path.of("./src/test/resources/xml-original/DF-07_S_PRC1604240915_1.xml"))) - .isEqualTo(-1L); + String actual = FileUtils.readFileToString(actualResultContainer.getFileForExport(), StandardCharsets.UTF_8); + String expected = FileUtils.readFileToString(new File("./src/test/resources/xml-original/DF-07_S_PRC1604240915_1.xml"), StandardCharsets.UTF_8); + actual = removeAttributes(actual, "MESSAGEDATE", "MESSAGETIME"); + expected = removeAttributes(expected, "MESSAGEDATE", "MESSAGETIME"); + assertEquals(expected, actual); } catch (IOException e) { fail("File comparison failed!"); } @@ -365,9 +379,11 @@ class ExportFromHazelcastTest { Assertions.assertThat(actualObjectTag.getDatetime()).isEqualTo(Instant.ofEpochMilli(Long.parseLong(expectedSDf51.getDatetime())).atZone(ZoneId.systemDefault()).toLocalDateTime()); try { - Assertions.assertThat(Files.mismatch(actualResultContainer.getFileForExport().toPath(), - Path.of("./src/test/resources/xml-original/DF-51_S_PRC1604240915_1.xml"))) - .isEqualTo(-1L); + String actual = FileUtils.readFileToString(actualResultContainer.getFileForExport(), StandardCharsets.UTF_8); + String expected = FileUtils.readFileToString(new File("./src/test/resources/xml-original/DF-51_S_PRC1604240915_1.xml"), StandardCharsets.UTF_8); + actual = removeAttributes(actual, "MESSAGEDATE", "MESSAGETIME", "UNIXTIME", "DATETIME"); + expected = removeAttributes(expected, "MESSAGEDATE", "MESSAGETIME", "UNIXTIME", "DATETIME"); + assertEquals(expected, actual); } catch (IOException e) { fail("File comparison failed!"); } @@ -414,13 +430,17 @@ class ExportFromHazelcastTest { Assertions.assertThat(actualObjectTag.getAccType()).isEqualTo(expectedSDf53.getAccType()); Assertions.assertThat(actualObjectTag.getResult()).isEqualTo(expectedSDf53.getResult()); + try { - Assertions.assertThat(Files.mismatch(actualResultContainer.getFileForExport().toPath(), - Path.of("./src/test/resources/xml-original/DF-53_S_PRC1604240915_1.xml"))) - .isEqualTo(-1L); + String actual = FileUtils.readFileToString(actualResultContainer.getFileForExport(), StandardCharsets.UTF_8); + String expected = FileUtils.readFileToString(new File("./src/test/resources/xml-original/DF-53_S_PRC1604240915_1.xml"), StandardCharsets.UTF_8); + actual = removeAttributes(actual, "MESSAGEDATE", "MESSAGETIME"); + expected = removeAttributes(expected, "MESSAGEDATE", "MESSAGETIME"); + assertEquals(expected, actual); } catch (IOException e) { fail("File comparison failed!"); } + } @Test @@ -502,9 +522,11 @@ class ExportFromHazelcastTest { Assertions.assertThat(actualObjectTag.getSwiftInt()).isEqualTo(expectedSDf54.getSwift_int()); try { - Assertions.assertThat(Files.mismatch(actualResultContainer.getFileForExport().toPath(), - Path.of("./src/test/resources/xml-original/DF-54_S_PRC1604240915_1.xml"))) - .isEqualTo(-1L); + String actual = FileUtils.readFileToString(actualResultContainer.getFileForExport(), StandardCharsets.UTF_8); + String expected = FileUtils.readFileToString(new File("./src/test/resources/xml-original/DF-54_S_PRC1604240915_1.xml"), StandardCharsets.UTF_8); + actual = removeAttributes(actual, "MESSAGEDATE", "MESSAGETIME", "PAY_DATE", "DOC_DATE", "VALUE_DATE"); + expected = removeAttributes(expected, "MESSAGEDATE", "MESSAGETIME", "PAY_DATE", "DOC_DATE", "VALUE_DATE"); + assertEquals(expected, actual); } catch (IOException e) { fail("File comparison failed!"); } @@ -539,11 +561,22 @@ class ExportFromHazelcastTest { Assertions.assertThat(actualObjectTag.getDeal()).isEqualTo(expectedSDf56.getDeal()); try { - Assertions.assertThat(Files.mismatch(actualResultContainer.getFileForExport().toPath(), - Path.of("./src/test/resources/xml-original/DF-56_S_PRC1604240915_1.xml"))) - .isEqualTo(-1L); + String actual = FileUtils.readFileToString(actualResultContainer.getFileForExport(), StandardCharsets.UTF_8); + String expected = FileUtils.readFileToString(new File("./src/test/resources/xml-original/DF-56_S_PRC1604240915_1.xml"), StandardCharsets.UTF_8); + actual = removeAttributes(actual, "MESSAGEDATE", "MESSAGETIME", "SUNIXTIME", "SDATETIME", "EUNIXTIME", "EDATETIME"); + expected = removeAttributes(expected, "MESSAGEDATE", "MESSAGETIME", "SUNIXTIME", "SDATETIME", "EUNIXTIME", "EDATETIME"); + assertEquals(expected, actual); } catch (IOException e) { fail("File comparison failed!"); } + + } + + + private String removeAttributes(String src, String ... args) { + for (String arg : args) { + src = src.replaceAll("%s\\s*=\\s*\".*?\"".formatted(arg), ""); + } + return src; } } \ No newline at end of file diff --git a/clearing-parent/xml-exporter/src/test/resources/xml-original/DF-02_S_PRC1604240915_1.xml b/clearing-parent/xml-exporter/src/test/resources/xml-original/DF-02_S_PRC1604240915_1.xml index 1304d3431..d49cc2a5f 100644 --- a/clearing-parent/xml-exporter/src/test/resources/xml-original/DF-02_S_PRC1604240915_1.xml +++ b/clearing-parent/xml-exporter/src/test/resources/xml-original/DF-02_S_PRC1604240915_1.xml @@ -1,6 +1,6 @@ - - - + + + diff --git a/clearing-parent/xml-exporter/src/test/resources/xml-original/DF-02_S_PRC1604240915_1_empty.xml b/clearing-parent/xml-exporter/src/test/resources/xml-original/DF-02_S_PRC1604240915_1_empty.xml new file mode 100644 index 000000000..89273c171 --- /dev/null +++ b/clearing-parent/xml-exporter/src/test/resources/xml-original/DF-02_S_PRC1604240915_1_empty.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/clearing-parent/xml-exporter/src/test/resources/xml-original/DF-03_S_PRC1604240915_1.xml b/clearing-parent/xml-exporter/src/test/resources/xml-original/DF-03_S_PRC1604240915_1.xml index b20b240d8..cfd121e33 100644 --- a/clearing-parent/xml-exporter/src/test/resources/xml-original/DF-03_S_PRC1604240915_1.xml +++ b/clearing-parent/xml-exporter/src/test/resources/xml-original/DF-03_S_PRC1604240915_1.xml @@ -1,4 +1,4 @@ - + diff --git a/clearing-parent/xml-exporter/src/test/resources/xml-original/DF-05_S_PRC1604240915_1.xml b/clearing-parent/xml-exporter/src/test/resources/xml-original/DF-05_S_PRC1604240915_1.xml index e6c54e03c..517e1d45a 100644 --- a/clearing-parent/xml-exporter/src/test/resources/xml-original/DF-05_S_PRC1604240915_1.xml +++ b/clearing-parent/xml-exporter/src/test/resources/xml-original/DF-05_S_PRC1604240915_1.xml @@ -1,4 +1,4 @@ - + diff --git a/clearing-parent/xml-exporter/src/test/resources/xml-original/DF-07_S_PRC1604240915_1.xml b/clearing-parent/xml-exporter/src/test/resources/xml-original/DF-07_S_PRC1604240915_1.xml index 9a3af18a7..3f697e8ee 100644 --- a/clearing-parent/xml-exporter/src/test/resources/xml-original/DF-07_S_PRC1604240915_1.xml +++ b/clearing-parent/xml-exporter/src/test/resources/xml-original/DF-07_S_PRC1604240915_1.xml @@ -1,6 +1,6 @@ - - - + + + diff --git a/clearing-parent/xml-exporter/src/test/resources/xml-original/DF-51_S_PRC1604240915_1.xml b/clearing-parent/xml-exporter/src/test/resources/xml-original/DF-51_S_PRC1604240915_1.xml index 0b54e318d..7086b6158 100644 --- a/clearing-parent/xml-exporter/src/test/resources/xml-original/DF-51_S_PRC1604240915_1.xml +++ b/clearing-parent/xml-exporter/src/test/resources/xml-original/DF-51_S_PRC1604240915_1.xml @@ -1,4 +1,4 @@ - + diff --git a/clearing-parent/xml-exporter/src/test/resources/xml-original/DF-53_S_PRC1604240915_1.xml b/clearing-parent/xml-exporter/src/test/resources/xml-original/DF-53_S_PRC1604240915_1.xml index cf3b9e9e3..4be195221 100644 --- a/clearing-parent/xml-exporter/src/test/resources/xml-original/DF-53_S_PRC1604240915_1.xml +++ b/clearing-parent/xml-exporter/src/test/resources/xml-original/DF-53_S_PRC1604240915_1.xml @@ -1,6 +1,6 @@ - - - + + + diff --git a/clearing-parent/xml-exporter/src/test/resources/xml-original/DF-54_S_PRC1604240915_1.xml b/clearing-parent/xml-exporter/src/test/resources/xml-original/DF-54_S_PRC1604240915_1.xml index c4d8d252b..302f4d445 100644 --- a/clearing-parent/xml-exporter/src/test/resources/xml-original/DF-54_S_PRC1604240915_1.xml +++ b/clearing-parent/xml-exporter/src/test/resources/xml-original/DF-54_S_PRC1604240915_1.xml @@ -1,4 +1,4 @@ - + diff --git a/clearing-parent/xml-exporter/src/test/resources/xml-original/DF-56_S_PRC1604240915_1.xml b/clearing-parent/xml-exporter/src/test/resources/xml-original/DF-56_S_PRC1604240915_1.xml index be6cb751f..2a2d6b115 100644 --- a/clearing-parent/xml-exporter/src/test/resources/xml-original/DF-56_S_PRC1604240915_1.xml +++ b/clearing-parent/xml-exporter/src/test/resources/xml-original/DF-56_S_PRC1604240915_1.xml @@ -1,4 +1,4 @@ - + diff --git a/clearing-parent/xml-importer/src/test/resources/xml/DF-01_S_PRC1604240915_1.xml b/clearing-parent/xml-importer/src/test/resources/xml/DF-01_S_PRC1604240915_1.xml index dbb84c066..91e1935e1 100644 --- a/clearing-parent/xml-importer/src/test/resources/xml/DF-01_S_PRC1604240915_1.xml +++ b/clearing-parent/xml-importer/src/test/resources/xml/DF-01_S_PRC1604240915_1.xml @@ -1,5 +1,5 @@ - + diff --git a/clearing-parent/xml-importer/src/test/resources/xml/DF-04_S_PRC1604240915_1.xml b/clearing-parent/xml-importer/src/test/resources/xml/DF-04_S_PRC1604240915_1.xml index 6589e4db0..37054e7f7 100644 --- a/clearing-parent/xml-importer/src/test/resources/xml/DF-04_S_PRC1604240915_1.xml +++ b/clearing-parent/xml-importer/src/test/resources/xml/DF-04_S_PRC1604240915_1.xml @@ -1,5 +1,5 @@ - + diff --git a/clearing-parent/xml-importer/src/test/resources/xml/DF-06_S_PRC1604240915_1.xml b/clearing-parent/xml-importer/src/test/resources/xml/DF-06_S_PRC1604240915_1.xml index 61f6ffd04..21cee6894 100644 --- a/clearing-parent/xml-importer/src/test/resources/xml/DF-06_S_PRC1604240915_1.xml +++ b/clearing-parent/xml-importer/src/test/resources/xml/DF-06_S_PRC1604240915_1.xml @@ -1,5 +1,5 @@ - + diff --git a/clearing-parent/xml-importer/src/test/resources/xml/DF-52_S_PRC1604240915_1.xml b/clearing-parent/xml-importer/src/test/resources/xml/DF-52_S_PRC1604240915_1.xml index 2340caca7..4a379aa9d 100644 --- a/clearing-parent/xml-importer/src/test/resources/xml/DF-52_S_PRC1604240915_1.xml +++ b/clearing-parent/xml-importer/src/test/resources/xml/DF-52_S_PRC1604240915_1.xml @@ -1,5 +1,5 @@ - + diff --git a/clearing-parent/xml-importer/src/test/resources/xml/DF-55_S_PRC1604240915_1.xml b/clearing-parent/xml-importer/src/test/resources/xml/DF-55_S_PRC1604240915_1.xml index 9600330da..74af95b2b 100644 --- a/clearing-parent/xml-importer/src/test/resources/xml/DF-55_S_PRC1604240915_1.xml +++ b/clearing-parent/xml-importer/src/test/resources/xml/DF-55_S_PRC1604240915_1.xml @@ -1,5 +1,5 @@ - + + SENDER="БИСКВИТ" RECIEVER="">