Write to XML moved to a separate class from ExportFromHazelcast, xml-exporter ExportFromHazelcast and WriteXMLFile steps tests added
This commit is contained in:
parent
2588000456
commit
5b1d672712
22 changed files with 1080 additions and 83 deletions
|
|
@ -13,7 +13,6 @@ import javax.xml.stream.XMLInputFactory;
|
|||
import javax.xml.stream.XMLOutputFactory;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.ComponentScan;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import ru.spcex.clearing.xml.exporter.logic.data.enums.Table;
|
||||
import ru.spcex.clearing.xml.exporter.logic.data.tags.objects.DF02ObjectTag;
|
||||
|
|
@ -29,7 +28,6 @@ import ru.spcex.platform.classes.base.SpcexObjectBase;
|
|||
|
||||
@Configuration
|
||||
@EnableConfigurationProperties
|
||||
@ComponentScan(basePackages = {"ru.spcex.clearing.xml.exporter"})
|
||||
public class XMLExporterConfig {
|
||||
@Bean("mapOfTable")
|
||||
public Map<Table, ObjectTag<? extends SpcexObjectBase>> getMapOfTables() {
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import java.time.LocalDateTime;
|
|||
import java.util.UUID;
|
||||
import ru.spcex.clearing.xml.exporter.logic.data.enums.StageResult;
|
||||
import ru.spcex.clearing.xml.exporter.logic.data.enums.Table;
|
||||
import ru.spcex.clearing.xml.exporter.logic.data.tags.DocumentTag;
|
||||
|
||||
public class ResultContainer {
|
||||
private String sourceName; // имя инициатора (файла)
|
||||
|
|
@ -15,6 +16,7 @@ public class ResultContainer {
|
|||
private StageResult lastStageResult;
|
||||
private LocalDateTime registrationDateTime;
|
||||
private String memberCode;
|
||||
private DocumentTag documentTag;
|
||||
|
||||
public ResultContainer(Table tableForExport) {
|
||||
this.tableForExport = tableForExport;
|
||||
|
|
@ -84,4 +86,12 @@ public class ResultContainer {
|
|||
public void setMemberCode(String memberCode) {
|
||||
this.memberCode = memberCode;
|
||||
}
|
||||
|
||||
public DocumentTag getDocumentTag() {
|
||||
return documentTag;
|
||||
}
|
||||
|
||||
public void setDocumentTag(DocumentTag documentTag) {
|
||||
this.documentTag = documentTag;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package ru.spcex.clearing.xml.exporter.logic.data.tags.objects;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
|
|
@ -25,9 +26,13 @@ public class DF03ObjectTag extends ObjectTag<SDf03> {
|
|||
|
||||
@JacksonXmlProperty(isAttribute = true, localName = "SBANKNAM")
|
||||
private String sbanknam1;
|
||||
@JsonIgnore
|
||||
private String sbanknam2;
|
||||
@JsonIgnore
|
||||
private String sbanknam3;
|
||||
@JsonIgnore
|
||||
private String sbanknam4;
|
||||
@JsonIgnore
|
||||
private String sbanknam5;
|
||||
|
||||
@JacksonXmlProperty(isAttribute = true, localName = "C_ACC_CRED")
|
||||
|
|
@ -35,9 +40,13 @@ public class DF03ObjectTag extends ObjectTag<SDf03> {
|
|||
|
||||
@JacksonXmlProperty(isAttribute = true, localName = "RBANKNAM")
|
||||
private String rbanknam1;
|
||||
@JsonIgnore
|
||||
private String rbanknam2;
|
||||
@JsonIgnore
|
||||
private String rbanknam3;
|
||||
@JsonIgnore
|
||||
private String rbanknam4;
|
||||
@JsonIgnore
|
||||
private String rbanknam5;
|
||||
|
||||
@JacksonXmlProperty(isAttribute = true, localName = "PAY_DATE")
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ public class DF05ObjectTag extends ObjectTag<SDf05> {
|
|||
|
||||
@Override
|
||||
public void setData(SDf05 entity) {
|
||||
final DateTimeFormatter dtf = DateTimeFormatter.ofPattern("hh:mm:ss");
|
||||
final DateTimeFormatter dtf = DateTimeFormatter.ofPattern("HH:mm:ss");
|
||||
this.tp = entity.getTp();
|
||||
this.dt = entity.getDt();
|
||||
this.tm = LocalTime.parse(entity.getTm(), dtf);
|
||||
|
|
|
|||
|
|
@ -10,13 +10,13 @@ import org.springframework.format.annotation.DateTimeFormat;
|
|||
import ru.clearing.classes.statics.data.sdf.SDf51;
|
||||
|
||||
public class DF51ObjectTag extends ObjectTag<SDf51> {
|
||||
@JacksonXmlProperty(isAttribute = true, localName = "ACCOUNT")
|
||||
@JacksonXmlProperty(isAttribute = true, localName = "NUMBER")
|
||||
private String number;
|
||||
|
||||
@JacksonXmlProperty(isAttribute = true, localName = "ACCOUNT")
|
||||
@JacksonXmlProperty(isAttribute = true, localName = "UNIXTIME")
|
||||
private Long unixtime;
|
||||
|
||||
@JacksonXmlProperty(isAttribute = true, localName = "ACCOUNT")
|
||||
@JacksonXmlProperty(isAttribute = true, localName = "DATETIME")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss")
|
||||
private LocalDateTime datetime;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package ru.spcex.clearing.xml.exporter.logic.data.tags.objects;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
|
|
@ -28,9 +29,13 @@ public class DF54ObjectTag extends ObjectTag<SDf54> {
|
|||
|
||||
@JacksonXmlProperty(isAttribute = true, localName = "SBANKNAM")
|
||||
private String sbanknam1;
|
||||
@JsonIgnore
|
||||
private String sbanknam2;
|
||||
@JsonIgnore
|
||||
private String sbanknam3;
|
||||
@JsonIgnore
|
||||
private String sbanknam4;
|
||||
@JsonIgnore
|
||||
private String sbanknam5;
|
||||
|
||||
@JacksonXmlProperty(isAttribute = true, localName = "RBANKCODE")
|
||||
|
|
@ -41,9 +46,13 @@ public class DF54ObjectTag extends ObjectTag<SDf54> {
|
|||
|
||||
@JacksonXmlProperty(isAttribute = true, localName = "RBANKNAM")
|
||||
private String rbanknam1;
|
||||
@JsonIgnore
|
||||
private String rbanknam2;
|
||||
@JsonIgnore
|
||||
private String rbanknam3;
|
||||
@JsonIgnore
|
||||
private String rbanknam4;
|
||||
@JsonIgnore
|
||||
private String rbanknam5;
|
||||
|
||||
@JacksonXmlProperty(isAttribute = true, localName = "OP_TYPE")
|
||||
|
|
@ -64,8 +73,11 @@ public class DF54ObjectTag extends ObjectTag<SDf54> {
|
|||
|
||||
@JacksonXmlProperty(isAttribute = true, localName = "SCLIENTN")
|
||||
private String sclientn1;
|
||||
@JsonIgnore
|
||||
private String sclientn2;
|
||||
@JsonIgnore
|
||||
private String sclientn3;
|
||||
@JsonIgnore
|
||||
private String sclientn4;
|
||||
|
||||
@JacksonXmlProperty(isAttribute = true, localName = "INN_DEB")
|
||||
|
|
@ -79,8 +91,11 @@ public class DF54ObjectTag extends ObjectTag<SDf54> {
|
|||
|
||||
@JacksonXmlProperty(isAttribute = true, localName = "RCLIENTN")
|
||||
private String rclientn1;
|
||||
@JsonIgnore
|
||||
private String rclientn2;
|
||||
@JsonIgnore
|
||||
private String rclientn3;
|
||||
@JsonIgnore
|
||||
private String rclientn4;
|
||||
|
||||
@JacksonXmlProperty(isAttribute = true, localName = "INN_CRED")
|
||||
|
|
|
|||
|
|
@ -1,9 +1,7 @@
|
|||
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.time.LocalDate;
|
||||
import java.time.LocalTime;
|
||||
|
|
@ -22,7 +20,6 @@ import ru.spcex.clearing.platform.messaging.domain.cud.utilities.PairSdfRequest;
|
|||
import ru.spcex.clearing.platform.messaging.serialization.LogFormatter;
|
||||
import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender;
|
||||
import ru.spcex.clearing.xml.exporter.config.SFTPConfig;
|
||||
import ru.spcex.clearing.xml.exporter.config.settings.ExportXMLServiceSettings;
|
||||
import ru.spcex.clearing.xml.exporter.logic.data.ResultContainer;
|
||||
import ru.spcex.clearing.xml.exporter.logic.data.enums.StageResult;
|
||||
import ru.spcex.clearing.xml.exporter.logic.data.enums.Table;
|
||||
|
|
@ -30,39 +27,31 @@ import ru.spcex.clearing.xml.exporter.logic.data.tags.DocumentTag;
|
|||
import ru.spcex.clearing.xml.exporter.logic.data.tags.ParentDocTag;
|
||||
import ru.spcex.clearing.xml.exporter.logic.data.tags.objects.ObjectTag;
|
||||
import ru.spcex.platform.classes.base.SpcexObjectBase;
|
||||
import ru.spcex.platform.enumeration.CurrencyCode;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||
|
||||
@Component
|
||||
public class ExportFromHazelcast {
|
||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||
private final ExportXMLServiceSettings settings;
|
||||
private final ImdgProvider imdgProvider;
|
||||
private final SFTPConfig.XmlGateway gateway;
|
||||
private final XmlMapper xmlMapper;
|
||||
private final Map<Table, ObjectTag<? extends SpcexObjectBase>> objectTagMap;
|
||||
private final Supplier<KafkaSender> kafkaSender;
|
||||
|
||||
public ExportFromHazelcast(ExportXMLServiceSettings settings,
|
||||
ImdgProvider imdgProvider,
|
||||
public ExportFromHazelcast(ImdgProvider imdgProvider,
|
||||
SFTPConfig.XmlGateway gateway,
|
||||
@Qualifier("xmlMapper") XmlMapper xmlMapper,
|
||||
@Qualifier("mapOfTable") Map<Table, ObjectTag<? extends SpcexObjectBase>> objectTagMap,
|
||||
Supplier<KafkaSender> kafkaSender) {
|
||||
this.settings = settings;
|
||||
this.imdgProvider = imdgProvider;
|
||||
this.gateway = gateway;
|
||||
this.xmlMapper = xmlMapper;
|
||||
this.objectTagMap = objectTagMap;
|
||||
this.kafkaSender = kafkaSender;
|
||||
}
|
||||
|
||||
public StageResult process(ResultContainer resultContainer) {
|
||||
log.info("uuid {}. Stage: {}", resultContainer.getUuid(), this.getClass().getSimpleName());
|
||||
Objects.requireNonNull(resultContainer.getTableForExport());
|
||||
Objects.requireNonNull(resultContainer.getFileForExport());
|
||||
Table table = resultContainer.getTableForExport();
|
||||
Table table = Objects.requireNonNull(resultContainer.getTableForExport());
|
||||
File xmlFile = Objects.requireNonNull(resultContainer.getFileForExport());
|
||||
|
||||
DocumentTag documentTag = new DocumentTag();
|
||||
ParentDocTag parentDocTag = new ParentDocTag();
|
||||
|
|
@ -78,13 +67,10 @@ public class ExportFromHazelcast {
|
|||
documentTag.setParentDoc(parentDocTag);
|
||||
|
||||
Imdg<? extends SpcexObjectBase> map = imdgProvider.getImdg(table.getHazelcastMapName(), table.getEntityClass());
|
||||
File xmlFile = resultContainer.getFileForExport();
|
||||
String currency = null;
|
||||
String path = null;
|
||||
boolean writeOk = false;
|
||||
boolean emptyMap = true;
|
||||
|
||||
try {
|
||||
String path = null;
|
||||
boolean emptyMap;
|
||||
|
||||
Collection<? extends SpcexObjectBase> tableRows;
|
||||
if (resultContainer.getGroupId() != null) {
|
||||
Map<String, Long> queryParams = Map.of("generationId", resultContainer.getGroupId());
|
||||
|
|
@ -106,31 +92,11 @@ public class ExportFromHazelcast {
|
|||
}
|
||||
|
||||
documentTag.setObjects(addObjectTags(tableRows, table));
|
||||
resultContainer.setDocumentTag(documentTag);
|
||||
|
||||
//todo: rewrite currency logic
|
||||
currency = ruCurrency;
|
||||
log.info("DOCUMENT TAG = {}", documentTag);
|
||||
xmlMapper.writeValue(xmlFile, documentTag);
|
||||
|
||||
if (CurrencyCode.isRub(currency))
|
||||
path = settings.getStore().getOutPayValDir().get(ruCurrency);
|
||||
else path = settings.getStore().getOutPayValDir().get(currency);
|
||||
|
||||
log.info("settings.getStore().getOutPayValDir().get(ruCurrency): {}", settings.getStore().getOutPayValDir().get(ruCurrency));
|
||||
log.info("settings.getStore().getOutPayValDir().get(currency): {}", settings.getStore().getOutPayValDir().get(currency));
|
||||
|
||||
if (path == null)
|
||||
throw new Exception("Get unknown currency=" + currency + ", need will be adding settings like 'export-xml-service.store.out-pay-val-dir.RUB=/RUB' and restart app");
|
||||
writeOk = true;
|
||||
emptyMap = tableRows.isEmpty();
|
||||
|
||||
|
||||
} catch (Exception e) {
|
||||
log.error(String.format("uuid %s. Can't export table %s (map %s) to file %s. Table was skipped.",
|
||||
resultContainer.getUuid(), table, table.getHazelcastMapName(), xmlFile), e);
|
||||
return StageResult.ERROR;
|
||||
} finally {
|
||||
if (!writeOk || emptyMap) {
|
||||
if (emptyMap) {
|
||||
log.debug("Delete empty XML temp file \"{}\"", resultContainer.getFileForExport());
|
||||
boolean deleteOk = resultContainer.getFileForExport().delete();
|
||||
if (!deleteOk) {
|
||||
|
|
@ -143,7 +109,6 @@ public class ExportFromHazelcast {
|
|||
sendPairSdfRequest(resultContainer);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return StageResult.OK;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,7 +13,6 @@ import java.util.Objects;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.integration.sftp.session.SftpFileInfo;
|
||||
import org.springframework.stereotype.Component;
|
||||
import ru.spcex.clearing.xml.exporter.config.SFTPConfig;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,63 @@
|
|||
package ru.spcex.clearing.xml.exporter.logic.stages;
|
||||
|
||||
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.util.Objects;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.stereotype.Component;
|
||||
import ru.spcex.clearing.xml.exporter.config.settings.ExportXMLServiceSettings;
|
||||
import ru.spcex.clearing.xml.exporter.logic.data.ResultContainer;
|
||||
import ru.spcex.clearing.xml.exporter.logic.data.enums.StageResult;
|
||||
import ru.spcex.clearing.xml.exporter.logic.data.enums.Table;
|
||||
import ru.spcex.clearing.xml.exporter.logic.data.tags.DocumentTag;
|
||||
import ru.spcex.platform.enumeration.CurrencyCode;
|
||||
|
||||
@Component
|
||||
public class WriteXMLFile {
|
||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||
private final ExportXMLServiceSettings settings;
|
||||
private final XmlMapper xmlMapper;
|
||||
|
||||
public WriteXMLFile(ExportXMLServiceSettings settings,
|
||||
@Qualifier("xmlMapper") XmlMapper xmlMapper) {
|
||||
this.settings = settings;
|
||||
this.xmlMapper = xmlMapper;
|
||||
}
|
||||
|
||||
public StageResult process(ResultContainer resultContainer) {
|
||||
log.info("uuid {}. Stage: {}", resultContainer.getUuid(), this.getClass().getSimpleName());
|
||||
Table table = Objects.requireNonNull(resultContainer.getTableForExport());
|
||||
File xmlFile = Objects.requireNonNull(resultContainer.getFileForExport());
|
||||
//todo: rewrite currency logic
|
||||
String currency = ruCurrency;
|
||||
|
||||
DocumentTag documentTag = Objects.requireNonNull(resultContainer.getDocumentTag());
|
||||
|
||||
String path;
|
||||
if (CurrencyCode.isRub(currency)) {
|
||||
path = settings.getStore().getOutPayValDir().get(ruCurrency);
|
||||
} else {
|
||||
path = settings.getStore().getOutPayValDir().get(currency);
|
||||
}
|
||||
|
||||
log.info("DOCUMENT TAG = {}", documentTag);
|
||||
try {
|
||||
if (path == null) {
|
||||
throw new Exception("Get unknown currency=" + currency + ", need will be adding settings like 'export-xml-service.store.out-pay-val-dir.RUB=/RUB' and restart app");
|
||||
}
|
||||
xmlMapper.writeValue(xmlFile, documentTag);
|
||||
log.info("settings.getStore().getOutPayValDir().get(ruCurrency): {}", settings.getStore().getOutPayValDir().get(ruCurrency));
|
||||
log.info("settings.getStore().getOutPayValDir().get(currency): {}", settings.getStore().getOutPayValDir().get(currency));
|
||||
} catch (Exception e) {
|
||||
log.error(String.format("uuid %s. Can't export table %s (map %s) to file %s. Table was skipped.",
|
||||
resultContainer.getUuid(), table, table.getHazelcastMapName(), xmlFile), e);
|
||||
return StageResult.ERROR;
|
||||
}
|
||||
|
||||
return StageResult.OK;
|
||||
}
|
||||
}
|
||||
|
|
@ -20,6 +20,7 @@ import ru.spcex.clearing.xml.exporter.logic.data.enums.Table;
|
|||
import ru.spcex.clearing.xml.exporter.logic.stages.ExportFromHazelcast;
|
||||
import ru.spcex.clearing.xml.exporter.logic.stages.Journal;
|
||||
import ru.spcex.clearing.xml.exporter.logic.stages.PrepareXMLFile;
|
||||
import ru.spcex.clearing.xml.exporter.logic.stages.WriteXMLFile;
|
||||
import ru.spcex.platform.enumeration.Task;
|
||||
|
||||
@Service
|
||||
|
|
@ -28,15 +29,18 @@ public class CommandService extends QueueConsumer implements InitializingBean {
|
|||
|
||||
private final PrepareXMLFile prepareXMLFile;
|
||||
private final ExportFromHazelcast exportFromHazelcast;
|
||||
private final WriteXMLFile writeXMLFile;
|
||||
private final Journal journal;
|
||||
|
||||
public CommandService(Consumer<String, Object> kafkaQueue,
|
||||
PrepareXMLFile prepareXMLFile,
|
||||
ExportFromHazelcast exportFromHazelcast,
|
||||
WriteXMLFile writeXMLFile,
|
||||
Journal journal) {
|
||||
super(kafkaQueue);
|
||||
this.prepareXMLFile = prepareXMLFile;
|
||||
this.exportFromHazelcast = exportFromHazelcast;
|
||||
this.writeXMLFile = writeXMLFile;
|
||||
this.journal = journal;
|
||||
}
|
||||
|
||||
|
|
@ -119,6 +123,10 @@ public class CommandService extends QueueConsumer implements InitializingBean {
|
|||
result = exportFromHazelcast.process(resultContainer);
|
||||
resultContainer.setLastStageResult(result);
|
||||
}
|
||||
if (result == StageResult.OK) {
|
||||
result = writeXMLFile.process(resultContainer);
|
||||
resultContainer.setLastStageResult(result);
|
||||
}
|
||||
if (result == StageResult.OK) {
|
||||
result = journal.process(resultContainer);
|
||||
resultContainer.setLastStageResult(result);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,409 @@
|
|||
package ru.spcex.clearing.xml.exporter.logic.stages;
|
||||
|
||||
import java.io.File;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.BigInteger;
|
||||
import java.time.LocalDate;
|
||||
import java.time.ZoneId;
|
||||
import javax.annotation.PostConstruct;
|
||||
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.Test;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
import org.mockito.Captor;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.boot.test.mock.mockito.SpyBean;
|
||||
import org.springframework.test.annotation.DirtiesContext;
|
||||
import org.springframework.test.context.ActiveProfiles;
|
||||
import org.springframework.test.context.TestPropertySource;
|
||||
import ru.clearing.classes.statics.data.sdf.SDf02;
|
||||
import ru.clearing.classes.statics.data.sdf.SDf03;
|
||||
import ru.clearing.classes.statics.data.sdf.SDf05;
|
||||
import ru.clearing.classes.statics.data.sdf.SDf07;
|
||||
import ru.clearing.classes.statics.data.sdf.SDf51;
|
||||
import ru.clearing.classes.statics.data.sdf.SDf53;
|
||||
import ru.clearing.classes.statics.data.sdf.SDf54;
|
||||
import ru.clearing.classes.statics.data.sdf.SDf56;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.test.TestObjectCreator;
|
||||
import ru.spcex.clearing.test.config.ImdgTestConfig;
|
||||
import ru.spcex.clearing.test.config.KafkaTestConfig;
|
||||
import ru.spcex.clearing.xml.exporter.config.SFTPMockConfig;
|
||||
import ru.spcex.clearing.xml.exporter.config.XMLExporterConfig;
|
||||
import ru.spcex.clearing.xml.exporter.config.settings.ExportXMLServiceSettings;
|
||||
import ru.spcex.clearing.xml.exporter.logic.data.ResultContainer;
|
||||
import ru.spcex.clearing.xml.exporter.logic.data.enums.StageResult;
|
||||
import ru.spcex.clearing.xml.exporter.logic.data.enums.Table;
|
||||
import ru.spcex.clearing.xml.exporter.logic.data.tags.objects.DF02ObjectTag;
|
||||
import ru.spcex.clearing.xml.exporter.logic.data.tags.objects.DF03ObjectTag;
|
||||
import ru.spcex.clearing.xml.exporter.logic.data.tags.objects.DF05ObjectTag;
|
||||
import ru.spcex.clearing.xml.exporter.logic.data.tags.objects.DF07ObjectTag;
|
||||
import ru.spcex.clearing.xml.exporter.logic.data.tags.objects.DF51ObjectTag;
|
||||
import ru.spcex.clearing.xml.exporter.logic.data.tags.objects.DF53ObjectTag;
|
||||
import ru.spcex.clearing.xml.exporter.logic.data.tags.objects.DF54ObjectTag;
|
||||
import ru.spcex.clearing.xml.exporter.logic.data.tags.objects.DF56ObjectTag;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService;
|
||||
|
||||
@SpringBootTest(classes = {
|
||||
ExportFromHazelcast.class,
|
||||
ExportXMLServiceSettings.class,
|
||||
XMLExporterConfig.class,
|
||||
SFTPMockConfig.class,
|
||||
ImdgTestConfig.class,
|
||||
KafkaTestConfig.class,
|
||||
})
|
||||
@TestPropertySource(properties = {"spring.config.location=./src/test/resources/"})
|
||||
@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD)
|
||||
@ActiveProfiles("test")
|
||||
class ExportFromHazelcastTest {
|
||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||
|
||||
@Autowired
|
||||
@Qualifier("hazelcastServiceTest")
|
||||
private HazelcastService hazelcastService;
|
||||
|
||||
@Captor
|
||||
private ArgumentCaptor<ProducerRecord> producerRecord;
|
||||
@SpyBean
|
||||
private MockProducer<String, Object> producer;
|
||||
@Autowired
|
||||
@Qualifier("mockProducer")
|
||||
protected Producer<String, Object> mockProducer;
|
||||
|
||||
@Autowired
|
||||
private ExportFromHazelcast exportFromHazelcast;
|
||||
|
||||
@PostConstruct
|
||||
private void init() {
|
||||
hazelcastService.waitAvailable();
|
||||
|
||||
new TestObjectCreator(hazelcastService).createUserAdmin(1000L);
|
||||
}
|
||||
|
||||
@Test
|
||||
void process_shouldExportSDf02ToObjectTag() {
|
||||
SDf02 expectedSDf02 = new SDf02();
|
||||
expectedSDf02.setCurr_code("test1");
|
||||
expectedSDf02.setAccount("test2");
|
||||
expectedSDf02.setRemainder("test3");
|
||||
expectedSDf02.setDeal("test4");
|
||||
expectedSDf02.setAcc_code("test5");
|
||||
expectedSDf02.setDat("2024-03-14");
|
||||
expectedSDf02.setMarket("test6");
|
||||
expectedSDf02.setAcc_name("test7");
|
||||
expectedSDf02.setAcc_type("test8");
|
||||
expectedSDf02.setSumengage("test9");
|
||||
expectedSDf02.setSumunblock("test10");
|
||||
expectedSDf02.setFile_type("test11");
|
||||
expectedSDf02.setResult("test12");
|
||||
|
||||
Imdg<SDf02> imdg = hazelcastService.getImdg(IMDGDistributedNames.Map_SDf02, SDf02.class);
|
||||
imdg.insert(expectedSDf02);
|
||||
|
||||
ResultContainer actualResultContainer = new ResultContainer(Table.S_DF02);
|
||||
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().get(0);
|
||||
|
||||
Assertions.assertThat(stageResult).isEqualTo(StageResult.OK);
|
||||
Assertions.assertThat(actualResultContainer.getDocumentTag().getMessageType()).isEqualTo("DF02");
|
||||
Assertions.assertThat(actualObjectTag.getCurrCode()).isEqualTo(expectedSDf02.getCurr_code());
|
||||
Assertions.assertThat(actualObjectTag.getAccount()).isEqualTo(expectedSDf02.getAccount());
|
||||
Assertions.assertThat(actualObjectTag.getRemainder()).isEqualTo(expectedSDf02.getRemainder());
|
||||
Assertions.assertThat(actualObjectTag.getDeal()).isEqualTo(expectedSDf02.getDeal());
|
||||
Assertions.assertThat(actualObjectTag.getAccCode()).isEqualTo(expectedSDf02.getAcc_code());
|
||||
Assertions.assertThat(actualObjectTag.getDat()).isEqualTo(expectedSDf02.getDat());
|
||||
Assertions.assertThat(actualObjectTag.getMarket()).isEqualTo(expectedSDf02.getMarket());
|
||||
Assertions.assertThat(actualObjectTag.getAccName()).isEqualTo(expectedSDf02.getAcc_name());
|
||||
Assertions.assertThat(actualObjectTag.getAccType()).isEqualTo(expectedSDf02.getAcc_type());
|
||||
Assertions.assertThat(actualObjectTag.getSumengage()).isEqualTo(expectedSDf02.getSumengage());
|
||||
Assertions.assertThat(actualObjectTag.getSumunblock()).isEqualTo(expectedSDf02.getSumunblock());
|
||||
Assertions.assertThat(actualObjectTag.getFileType()).isEqualTo(expectedSDf02.getFile_type());
|
||||
}
|
||||
|
||||
@Test
|
||||
void process_shouldExportSDf03ToObjectTag() {
|
||||
SDf03 expectedSDf03 = new SDf03();
|
||||
expectedSDf03.setSeg_type("test1");
|
||||
expectedSDf03.setDoc_type("test2");
|
||||
expectedSDf03.setDocnm_ref("test3");
|
||||
expectedSDf03.setDocnmprev("test4");
|
||||
expectedSDf03.setC_acc_deb("test5");
|
||||
expectedSDf03.setSbanknam1("test6");
|
||||
expectedSDf03.setC_acc_cred("test7");
|
||||
expectedSDf03.setRbanknam1("test8");
|
||||
expectedSDf03.setPay_date("2024-03-14");
|
||||
expectedSDf03.setPay_val("test9");
|
||||
expectedSDf03.setSum_deb("test10");
|
||||
expectedSDf03.setSpecif_1("test11");
|
||||
expectedSDf03.setImp_result("test12");
|
||||
|
||||
Imdg<SDf03> imdg = hazelcastService.getImdg(IMDGDistributedNames.Map_SDf03, SDf03.class);
|
||||
imdg.insert(expectedSDf03);
|
||||
|
||||
ResultContainer actualResultContainer = new ResultContainer(Table.S_DF03);
|
||||
actualResultContainer.setFileForExport(new File("./src/test/resources/xml/DF-03_S_PRC1604240915_1.xml"));
|
||||
|
||||
StageResult stageResult = exportFromHazelcast.process(actualResultContainer);
|
||||
DF03ObjectTag actualObjectTag = (DF03ObjectTag) actualResultContainer.getDocumentTag().getObjects().get(0);
|
||||
|
||||
Assertions.assertThat(stageResult).isEqualTo(StageResult.OK);
|
||||
Assertions.assertThat(actualResultContainer.getDocumentTag().getMessageType()).isEqualTo("DF03");
|
||||
Assertions.assertThat(actualObjectTag.getSegType()).isEqualTo(expectedSDf03.getSeg_type());
|
||||
Assertions.assertThat(actualObjectTag.getDocType()).isEqualTo(expectedSDf03.getDoc_type());
|
||||
Assertions.assertThat(actualObjectTag.getDocnmRef()).isEqualTo(expectedSDf03.getDocnm_ref());
|
||||
Assertions.assertThat(actualObjectTag.getDocnmprev()).isEqualTo(expectedSDf03.getDocnmprev());
|
||||
Assertions.assertThat(actualObjectTag.getcAccDeb()).isEqualTo(expectedSDf03.getC_acc_deb());
|
||||
Assertions.assertThat(actualObjectTag.getSbanknam1()).isEqualTo(expectedSDf03.getSbanknam1());
|
||||
Assertions.assertThat(actualObjectTag.getcAccCred()).isEqualTo(expectedSDf03.getC_acc_cred());
|
||||
Assertions.assertThat(actualObjectTag.getRbanknam1()).isEqualTo(expectedSDf03.getRbanknam1());
|
||||
Assertions.assertThat(actualObjectTag.getPayDate()).isEqualTo(expectedSDf03.getPay_date());
|
||||
Assertions.assertThat(actualObjectTag.getPayVal()).isEqualTo(expectedSDf03.getPay_val());
|
||||
Assertions.assertThat(actualObjectTag.getSumDeb()).isEqualTo(expectedSDf03.getSum_deb());
|
||||
Assertions.assertThat(actualObjectTag.getSpecif1()).isEqualTo(expectedSDf03.getSpecif_1());
|
||||
Assertions.assertThat(actualObjectTag.getImpResult()).isEqualTo(expectedSDf03.getImp_result());
|
||||
}
|
||||
|
||||
@Test
|
||||
void process_shouldExportSDf05ToObjectTag() {
|
||||
SDf05 expectedSDf05 = new SDf05();
|
||||
expectedSDf05.setTp(BigDecimal.TEN);
|
||||
expectedSDf05.setDt(LocalDate.parse("2024-03-14"));
|
||||
expectedSDf05.setTm("09:22:12");
|
||||
expectedSDf05.setPr("test2");
|
||||
|
||||
Imdg<SDf05> imdg = hazelcastService.getImdg(IMDGDistributedNames.Map_SDf05, SDf05.class);
|
||||
imdg.insert(expectedSDf05);
|
||||
|
||||
ResultContainer actualResultContainer = new ResultContainer(Table.S_DF05);
|
||||
actualResultContainer.setFileForExport(new File("./src/test/resources/xml/DF-05_S_PRC1604240915_1.xml"));
|
||||
|
||||
StageResult stageResult = exportFromHazelcast.process(actualResultContainer);
|
||||
DF05ObjectTag actualObjectTag = (DF05ObjectTag) actualResultContainer.getDocumentTag().getObjects().get(0);
|
||||
|
||||
Assertions.assertThat(stageResult).isEqualTo(StageResult.OK);
|
||||
Assertions.assertThat(actualResultContainer.getDocumentTag().getMessageType()).isEqualTo("DF05");
|
||||
Assertions.assertThat(actualObjectTag.getTp()).isEqualTo(expectedSDf05.getTp());
|
||||
Assertions.assertThat(actualObjectTag.getDt()).isEqualTo(expectedSDf05.getDt());
|
||||
Assertions.assertThat(actualObjectTag.getTm()).isEqualTo(expectedSDf05.getTm());
|
||||
Assertions.assertThat(actualObjectTag.getPr()).isEqualTo(expectedSDf05.getPr());
|
||||
}
|
||||
|
||||
@Test
|
||||
void process_shouldExportSDf07ToObjectTag() {
|
||||
SDf07 expectedSDf07 = new SDf07();
|
||||
expectedSDf07.setAccount("test1");
|
||||
expectedSDf07.setSum(new BigDecimal(BigInteger.TEN));
|
||||
expectedSDf07.setMarket("test3");
|
||||
expectedSDf07.setType("test4");
|
||||
expectedSDf07.setDeal("test5");
|
||||
expectedSDf07.setClientN("test6");
|
||||
expectedSDf07.setInn("test7");
|
||||
expectedSDf07.setBic("test8");
|
||||
expectedSDf07.setSpec("test9");
|
||||
expectedSDf07.setNumber(new BigDecimal(BigInteger.TWO));
|
||||
expectedSDf07.setDoc_Num("test11");
|
||||
expectedSDf07.setDoc_Date("2024-03-14");
|
||||
expectedSDf07.setPay_val("test12");
|
||||
|
||||
Imdg<SDf07> imdg = hazelcastService.getImdg(IMDGDistributedNames.Map_SDf07, SDf07.class);
|
||||
imdg.insert(expectedSDf07);
|
||||
|
||||
ResultContainer actualResultContainer = new ResultContainer(Table.S_DF07);
|
||||
actualResultContainer.setFileForExport(new File("./src/test/resources/xml/DF-07_S_PRC1604240915_1.xml"));
|
||||
|
||||
StageResult stageResult = exportFromHazelcast.process(actualResultContainer);
|
||||
DF07ObjectTag actualObjectTag = (DF07ObjectTag) actualResultContainer.getDocumentTag().getObjects().get(0);
|
||||
|
||||
Assertions.assertThat(stageResult).isEqualTo(StageResult.OK);
|
||||
Assertions.assertThat(actualResultContainer.getDocumentTag().getMessageType()).isEqualTo("DF07");
|
||||
Assertions.assertThat(actualObjectTag.getAccount()).isEqualTo(expectedSDf07.getAccount());
|
||||
Assertions.assertThat(actualObjectTag.getSum()).isEqualTo(expectedSDf07.getSum());
|
||||
Assertions.assertThat(actualObjectTag.getMarket()).isEqualTo(expectedSDf07.getMarket());
|
||||
Assertions.assertThat(actualObjectTag.getType()).isEqualTo(expectedSDf07.getType());
|
||||
Assertions.assertThat(actualObjectTag.getDeal()).isEqualTo(expectedSDf07.getDeal());
|
||||
Assertions.assertThat(actualObjectTag.getClientN()).isEqualTo(expectedSDf07.getClientN());
|
||||
Assertions.assertThat(actualObjectTag.getInn()).isEqualTo(expectedSDf07.getInn());
|
||||
Assertions.assertThat(actualObjectTag.getBic()).isEqualTo(expectedSDf07.getBic());
|
||||
Assertions.assertThat(actualObjectTag.getSpec()).isEqualTo(expectedSDf07.getSpec());
|
||||
Assertions.assertThat(actualObjectTag.getNumber()).isEqualTo(expectedSDf07.getNumber());
|
||||
Assertions.assertThat(actualObjectTag.getDocNum()).isEqualTo(expectedSDf07.getDoc_Num());
|
||||
Assertions.assertThat(actualObjectTag.getDocDate()).isEqualTo(expectedSDf07.getDoc_Date());
|
||||
Assertions.assertThat(actualObjectTag.getPayVal()).isEqualTo(expectedSDf07.getPay_val());
|
||||
}
|
||||
|
||||
@Test
|
||||
void process_shouldExportSDf51ToObjectTag() {
|
||||
SDf51 expectedSDf51 = new SDf51();
|
||||
expectedSDf51.setNumber("1234");
|
||||
expectedSDf51.setDatetime("2024-03-14T09:03:11");
|
||||
|
||||
Imdg<SDf51> imdg = hazelcastService.getImdg(IMDGDistributedNames.Map_SDf51, SDf51.class);
|
||||
imdg.insert(expectedSDf51);
|
||||
|
||||
ResultContainer actualResultContainer = new ResultContainer(Table.S_DF51);
|
||||
actualResultContainer.setFileForExport(new File("./src/test/resources/xml/DF-51_S_PRC1604240915_1.xml"));
|
||||
|
||||
StageResult stageResult = exportFromHazelcast.process(actualResultContainer);
|
||||
DF51ObjectTag actualObjectTag = (DF51ObjectTag) actualResultContainer.getDocumentTag().getObjects().get(0);
|
||||
|
||||
Assertions.assertThat(stageResult).isEqualTo(StageResult.OK);
|
||||
Assertions.assertThat(actualResultContainer.getDocumentTag().getMessageType()).isEqualTo("DF51");
|
||||
Assertions.assertThat(actualObjectTag.getNumber()).isEqualTo(expectedSDf51.getNumber());
|
||||
Assertions.assertThat(actualObjectTag.getDatetime()).isEqualTo(expectedSDf51.getDatetime());
|
||||
Assertions.assertThat(actualObjectTag.getUnixtime()).isEqualTo(actualObjectTag.getDatetime()
|
||||
.atZone(ZoneId.systemDefault())
|
||||
.toEpochSecond());
|
||||
}
|
||||
|
||||
@Test
|
||||
void process_shouldExportSDf53ToObjectTag() {
|
||||
SDf53 expectedSDf53 = new SDf53();
|
||||
expectedSDf53.setAccount("test1");
|
||||
expectedSDf53.setAccName("test2");
|
||||
expectedSDf53.setDeal("test3");
|
||||
expectedSDf53.setDate("2024-03-14");
|
||||
expectedSDf53.setStatus(1L);
|
||||
expectedSDf53.setAccType("test4");
|
||||
expectedSDf53.setResult("test5");
|
||||
|
||||
Imdg<SDf53> imdg = hazelcastService.getImdg(IMDGDistributedNames.Map_SDf53, SDf53.class);
|
||||
imdg.insert(expectedSDf53);
|
||||
|
||||
ResultContainer actualResultContainer = new ResultContainer(Table.S_DF53);
|
||||
actualResultContainer.setFileForExport(new File("./src/test/resources/xml/DF-53_S_PRC1604240915_1.xml"));
|
||||
|
||||
StageResult stageResult = exportFromHazelcast.process(actualResultContainer);
|
||||
DF53ObjectTag actualObjectTag = (DF53ObjectTag) actualResultContainer.getDocumentTag().getObjects().get(0);
|
||||
|
||||
Assertions.assertThat(stageResult).isEqualTo(StageResult.OK);
|
||||
Assertions.assertThat(actualResultContainer.getDocumentTag().getMessageType()).isEqualTo("DF53");
|
||||
Assertions.assertThat(actualObjectTag.getAccount()).isEqualTo(expectedSDf53.getAccount());
|
||||
Assertions.assertThat(actualObjectTag.getAccName()).isEqualTo(expectedSDf53.getAccName());
|
||||
Assertions.assertThat(actualObjectTag.getDeal()).isEqualTo(expectedSDf53.getDeal());
|
||||
Assertions.assertThat(actualObjectTag.getDate()).isEqualTo(expectedSDf53.getDate());
|
||||
Assertions.assertThat(actualObjectTag.getStatus()).isEqualTo(expectedSDf53.getStatus());
|
||||
Assertions.assertThat(actualObjectTag.getAccType()).isEqualTo(expectedSDf53.getAccType());
|
||||
Assertions.assertThat(actualObjectTag.getResult()).isEqualTo(expectedSDf53.getResult());
|
||||
}
|
||||
|
||||
@Test
|
||||
void process_shouldExportSDf54ToObjectTag() {
|
||||
SDf54 expectedSDf54 = new SDf54();
|
||||
expectedSDf54.setSeg_type("test1");
|
||||
expectedSDf54.setDoc_type("test2");
|
||||
expectedSDf54.setDocnm_ref("test3");
|
||||
expectedSDf54.setDocnmprev("test4");
|
||||
expectedSDf54.setSbankcode("test5");
|
||||
expectedSDf54.setC_acc_deb("test6");
|
||||
expectedSDf54.setSbanknam1("test7");
|
||||
expectedSDf54.setRbankcode("test8");
|
||||
expectedSDf54.setC_acc_cred("test9");
|
||||
expectedSDf54.setRbanknam1("test10");
|
||||
expectedSDf54.setOp_type("test11");
|
||||
expectedSDf54.setOp_order("test12");
|
||||
expectedSDf54.setPay_date("2024-03-14");
|
||||
expectedSDf54.setPay_val("test13");
|
||||
expectedSDf54.setSum_deb("test14");
|
||||
expectedSDf54.setSclientn1("test15");
|
||||
expectedSDf54.setInn_deb("test16");
|
||||
expectedSDf54.setKpp_deb("test17");
|
||||
expectedSDf54.setAcc_deb("test18");
|
||||
expectedSDf54.setRclientn1("test19");
|
||||
expectedSDf54.setInn_cred("test20");
|
||||
expectedSDf54.setKpp_cred("test21");
|
||||
expectedSDf54.setAcc_kr_1("test22");
|
||||
expectedSDf54.setSpecif_1("test23");
|
||||
expectedSDf54.setSend_type("test24");
|
||||
expectedSDf54.setDoc_result("test25");
|
||||
expectedSDf54.setDoc_Num("test26");
|
||||
expectedSDf54.setDoc_Date("2024-03-15");
|
||||
expectedSDf54.setValue_date("2024-03-16");
|
||||
expectedSDf54.setSwift_ben("test27");
|
||||
expectedSDf54.setSwift_int("test28");
|
||||
|
||||
Imdg<SDf54> imdg = hazelcastService.getImdg(IMDGDistributedNames.Map_SDf54, SDf54.class);
|
||||
imdg.insert(expectedSDf54);
|
||||
|
||||
ResultContainer actualResultContainer = new ResultContainer(Table.S_DF54);
|
||||
actualResultContainer.setFileForExport(new File("./src/test/resources/xml/DF-54_S_PRC1604240915_1.xml"));
|
||||
|
||||
StageResult stageResult = exportFromHazelcast.process(actualResultContainer);
|
||||
DF54ObjectTag actualObjectTag = (DF54ObjectTag) actualResultContainer.getDocumentTag().getObjects().get(0);
|
||||
|
||||
Assertions.assertThat(stageResult).isEqualTo(StageResult.OK);
|
||||
Assertions.assertThat(actualResultContainer.getDocumentTag().getMessageType()).isEqualTo("DF54");
|
||||
Assertions.assertThat(actualObjectTag.getSegType()).isEqualTo(expectedSDf54.getSeg_type());
|
||||
Assertions.assertThat(actualObjectTag.getDocType()).isEqualTo(expectedSDf54.getDoc_type());
|
||||
Assertions.assertThat(actualObjectTag.getDocnmRef()).isEqualTo(expectedSDf54.getDocnm_ref());
|
||||
Assertions.assertThat(actualObjectTag.getDocnmprev()).isEqualTo(expectedSDf54.getDocnmprev());
|
||||
Assertions.assertThat(actualObjectTag.getSbankcode()).isEqualTo(expectedSDf54.getSbankcode());
|
||||
Assertions.assertThat(actualObjectTag.getcAccDeb()).isEqualTo(expectedSDf54.getC_acc_deb());
|
||||
Assertions.assertThat(actualObjectTag.getSbanknam1()).isEqualTo(expectedSDf54.getSbanknam1());
|
||||
Assertions.assertThat(actualObjectTag.getRbankcode()).isEqualTo(expectedSDf54.getRbankcode());
|
||||
Assertions.assertThat(actualObjectTag.getcAccCred()).isEqualTo(expectedSDf54.getC_acc_cred());
|
||||
Assertions.assertThat(actualObjectTag.getRbanknam1()).isEqualTo(expectedSDf54.getRbanknam1());
|
||||
Assertions.assertThat(actualObjectTag.getOpType()).isEqualTo(expectedSDf54.getOp_type());
|
||||
Assertions.assertThat(actualObjectTag.getOpOrder()).isEqualTo(expectedSDf54.getOp_order());
|
||||
Assertions.assertThat(actualObjectTag.getPayDate()).isEqualTo(expectedSDf54.getPay_date());
|
||||
Assertions.assertThat(actualObjectTag.getPayVal()).isEqualTo(expectedSDf54.getPay_val());
|
||||
Assertions.assertThat(actualObjectTag.getSumDeb()).isEqualTo(expectedSDf54.getSum_deb());
|
||||
Assertions.assertThat(actualObjectTag.getSclientn1()).isEqualTo(expectedSDf54.getSclientn1());
|
||||
Assertions.assertThat(actualObjectTag.getInnDeb()).isEqualTo(expectedSDf54.getInn_deb());
|
||||
Assertions.assertThat(actualObjectTag.getKppDeb()).isEqualTo(expectedSDf54.getKpp_deb());
|
||||
Assertions.assertThat(actualObjectTag.getAccDeb()).isEqualTo(expectedSDf54.getAcc_deb());
|
||||
Assertions.assertThat(actualObjectTag.getRclientn1()).isEqualTo(expectedSDf54.getRclientn1());
|
||||
Assertions.assertThat(actualObjectTag.getInnCred()).isEqualTo(expectedSDf54.getInn_cred());
|
||||
Assertions.assertThat(actualObjectTag.getKppCred()).isEqualTo(expectedSDf54.getKpp_cred());
|
||||
Assertions.assertThat(actualObjectTag.getAccKr1()).isEqualTo(expectedSDf54.getAcc_kr_1());
|
||||
Assertions.assertThat(actualObjectTag.getSpecif1()).isEqualTo(expectedSDf54.getSpecif_1());
|
||||
Assertions.assertThat(actualObjectTag.getSendType()).isEqualTo(expectedSDf54.getSend_type());
|
||||
Assertions.assertThat(actualObjectTag.getDocResult()).isEqualTo(expectedSDf54.getDoc_result());
|
||||
Assertions.assertThat(actualObjectTag.getDocNum()).isEqualTo(expectedSDf54.getDoc_Num());
|
||||
Assertions.assertThat(actualObjectTag.getDocDate()).isEqualTo(expectedSDf54.getDoc_Date());
|
||||
Assertions.assertThat(actualObjectTag.getValueDate()).isEqualTo(expectedSDf54.getValue_date());
|
||||
Assertions.assertThat(actualObjectTag.getSwiftBen()).isEqualTo(expectedSDf54.getSwift_ben());
|
||||
Assertions.assertThat(actualObjectTag.getSwiftInt()).isEqualTo(expectedSDf54.getSwift_int());
|
||||
}
|
||||
|
||||
@Test
|
||||
void process_shouldExportSDf56ToObjectTag() {
|
||||
SDf56 expectedSDf56 = new SDf56();
|
||||
expectedSDf56.setNumber("test1");
|
||||
expectedSDf56.setStart_datetime("2024-03-14T09:03:11");
|
||||
expectedSDf56.setEnd_datetime("2024-04-15T11:03:11");
|
||||
expectedSDf56.setAccount("test4");
|
||||
expectedSDf56.setDeal("test5");
|
||||
|
||||
Imdg<SDf56> imdg = hazelcastService.getImdg(IMDGDistributedNames.Map_SDf56, SDf56.class);
|
||||
imdg.insert(expectedSDf56);
|
||||
|
||||
ResultContainer actualResultContainer = new ResultContainer(Table.S_DF56);
|
||||
actualResultContainer.setFileForExport(new File("./src/test/resources/xml/DF-56_S_PRC1604240915_1.xml"));
|
||||
|
||||
StageResult stageResult = exportFromHazelcast.process(actualResultContainer);
|
||||
DF56ObjectTag actualObjectTag = (DF56ObjectTag) actualResultContainer.getDocumentTag().getObjects().get(0);
|
||||
|
||||
Assertions.assertThat(stageResult).isEqualTo(StageResult.OK);
|
||||
Assertions.assertThat(actualResultContainer.getDocumentTag().getMessageType()).isEqualTo("DF56");
|
||||
Assertions.assertThat(actualObjectTag.getNumber()).isEqualTo(expectedSDf56.getNumber());
|
||||
Assertions.assertThat(actualObjectTag.getStartDatetime()).isEqualTo(expectedSDf56.getStart_datetime());
|
||||
Assertions.assertThat(actualObjectTag.getEndDatetime()).isEqualTo(expectedSDf56.getEnd_datetime());
|
||||
Assertions.assertThat(actualObjectTag.getAccount()).isEqualTo(expectedSDf56.getAccount());
|
||||
Assertions.assertThat(actualObjectTag.getDeal()).isEqualTo(expectedSDf56.getDeal());
|
||||
Assertions.assertThat(actualObjectTag.getStartUnixtime()).isEqualTo(actualObjectTag.getStartDatetime()
|
||||
.atZone(ZoneId.systemDefault())
|
||||
.toEpochSecond());
|
||||
Assertions.assertThat(actualObjectTag.getEndUnixtime()).isEqualTo(actualObjectTag.getEndDatetime()
|
||||
.atZone(ZoneId.systemDefault())
|
||||
.toEpochSecond());
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,433 @@
|
|||
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.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalTime;
|
||||
import java.time.ZoneId;
|
||||
import java.util.List;
|
||||
import org.assertj.core.api.Assertions;
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.test.annotation.DirtiesContext;
|
||||
import org.springframework.test.context.TestPropertySource;
|
||||
import ru.spcex.clearing.test.config.ImdgTestConfig;
|
||||
import ru.spcex.clearing.xml.exporter.config.XMLExporterConfig;
|
||||
import ru.spcex.clearing.xml.exporter.config.settings.ExportXMLServiceSettings;
|
||||
import ru.spcex.clearing.xml.exporter.logic.data.ResultContainer;
|
||||
import ru.spcex.clearing.xml.exporter.logic.data.enums.StageResult;
|
||||
import ru.spcex.clearing.xml.exporter.logic.data.enums.Table;
|
||||
import ru.spcex.clearing.xml.exporter.logic.data.tags.DocumentTag;
|
||||
import ru.spcex.clearing.xml.exporter.logic.data.tags.ParentDocTag;
|
||||
import ru.spcex.clearing.xml.exporter.logic.data.tags.objects.DF02ObjectTag;
|
||||
import ru.spcex.clearing.xml.exporter.logic.data.tags.objects.DF03ObjectTag;
|
||||
import ru.spcex.clearing.xml.exporter.logic.data.tags.objects.DF05ObjectTag;
|
||||
import ru.spcex.clearing.xml.exporter.logic.data.tags.objects.DF07ObjectTag;
|
||||
import ru.spcex.clearing.xml.exporter.logic.data.tags.objects.DF51ObjectTag;
|
||||
import ru.spcex.clearing.xml.exporter.logic.data.tags.objects.DF53ObjectTag;
|
||||
import ru.spcex.clearing.xml.exporter.logic.data.tags.objects.DF54ObjectTag;
|
||||
import ru.spcex.clearing.xml.exporter.logic.data.tags.objects.DF56ObjectTag;
|
||||
|
||||
@SpringBootTest(classes = {
|
||||
WriteXMLFile.class,
|
||||
ExportXMLServiceSettings.class,
|
||||
XMLExporterConfig.class,
|
||||
ImdgTestConfig.class,
|
||||
})
|
||||
@TestPropertySource(properties = {"spring.config.location=./src/test/resources/"})
|
||||
@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD)
|
||||
class WriteXMLFileTest {
|
||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||
|
||||
@Autowired
|
||||
private WriteXMLFile writeXMLFile;
|
||||
|
||||
@AfterEach
|
||||
void tearDown() {
|
||||
try {
|
||||
Files.deleteIfExists(Path.of("./src/test/resources/xml/DF-02_S_PRC1604240915_1.xml"));
|
||||
Files.deleteIfExists(Path.of("./src/test/resources/xml/DF-03_S_PRC1604240915_1.xml"));
|
||||
Files.deleteIfExists(Path.of("./src/test/resources/xml/DF-05_S_PRC1604240915_1.xml"));
|
||||
Files.deleteIfExists(Path.of("./src/test/resources/xml/DF-07_S_PRC1604240915_1.xml"));
|
||||
Files.deleteIfExists(Path.of("./src/test/resources/xml/DF-51_S_PRC1604240915_1.xml"));
|
||||
Files.deleteIfExists(Path.of("./src/test/resources/xml/DF-53_S_PRC1604240915_1.xml"));
|
||||
Files.deleteIfExists(Path.of("./src/test/resources/xml/DF-54_S_PRC1604240915_1.xml"));
|
||||
Files.deleteIfExists(Path.of("./src/test/resources/xml/DF-56_S_PRC1604240915_1.xml"));
|
||||
} catch (IOException e) {
|
||||
fail(e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
void process_shouldWriteSDf02ToXMLFile() {
|
||||
DF02ObjectTag expectedObjectTag = new DF02ObjectTag();
|
||||
expectedObjectTag.setCurrCode("test1");
|
||||
expectedObjectTag.setAccount("test2");
|
||||
expectedObjectTag.setRemainder("test3");
|
||||
expectedObjectTag.setDeal("test4");
|
||||
expectedObjectTag.setAccCode("test5");
|
||||
expectedObjectTag.setDat(LocalDate.parse("2024-03-14"));
|
||||
expectedObjectTag.setMarket("test6");
|
||||
expectedObjectTag.setAccName("test7");
|
||||
expectedObjectTag.setAccType("test8");
|
||||
expectedObjectTag.setSumengage("test9");
|
||||
expectedObjectTag.setSumunblock("test10");
|
||||
expectedObjectTag.setFileType("test11");
|
||||
|
||||
ParentDocTag expectedParentDocTag = new ParentDocTag();
|
||||
expectedParentDocTag.setParentId("");
|
||||
|
||||
DocumentTag expectedDocumentTag = new DocumentTag();
|
||||
expectedDocumentTag.setMessageId("");
|
||||
expectedDocumentTag.setMessageType("DF02");
|
||||
expectedDocumentTag.setMessageName("");
|
||||
expectedDocumentTag.setMessageDate(LocalDate.parse("2024-03-14"));
|
||||
expectedDocumentTag.setMessageTime(LocalTime.parse("09:15:31"));
|
||||
expectedDocumentTag.setSender("");
|
||||
expectedDocumentTag.setReceiver("");
|
||||
expectedDocumentTag.setParentDoc(expectedParentDocTag);
|
||||
expectedDocumentTag.setObjects(List.of(expectedObjectTag));
|
||||
|
||||
ResultContainer actualResultContainer = new ResultContainer(Table.S_DF02);
|
||||
actualResultContainer.setFileForExport(new File("./src/test/resources/xml/DF-02_S_PRC1604240915_1.xml"));
|
||||
actualResultContainer.setDocumentTag(expectedDocumentTag);
|
||||
|
||||
StageResult stageResult = writeXMLFile.process(actualResultContainer);
|
||||
Assertions.assertThat(stageResult).isEqualTo(StageResult.OK);
|
||||
|
||||
try {
|
||||
Assertions.assertThat(Files.mismatch(actualResultContainer.getFileForExport().toPath(),
|
||||
Path.of("./src/test/resources/xml-original/DF-02_S_PRC1604240915_1.xml")))
|
||||
.isEqualTo(-1L);
|
||||
} catch (IOException e) {
|
||||
fail("File comparison failed!");
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
void process_shouldWriteSDf03ToXMLFile() {
|
||||
DF03ObjectTag expectedObjectTag = new DF03ObjectTag();
|
||||
expectedObjectTag.setSegType("test1");
|
||||
expectedObjectTag.setDocType("test2");
|
||||
expectedObjectTag.setDocnmRef("test3");
|
||||
expectedObjectTag.setDocnmprev("test4");
|
||||
expectedObjectTag.setcAccDeb("test5");
|
||||
expectedObjectTag.setSbanknam1("test6");
|
||||
expectedObjectTag.setcAccCred("test7");
|
||||
expectedObjectTag.setRbanknam1("test8");
|
||||
expectedObjectTag.setPayDate(LocalDate.parse("2024-03-14"));
|
||||
expectedObjectTag.setPayVal("test9");
|
||||
expectedObjectTag.setSumDeb("test10");
|
||||
expectedObjectTag.setSpecif1("test11");
|
||||
expectedObjectTag.setImpResult("test12");
|
||||
|
||||
ParentDocTag expectedParentDocTag = new ParentDocTag();
|
||||
expectedParentDocTag.setParentId("");
|
||||
|
||||
DocumentTag expectedDocumentTag = new DocumentTag();
|
||||
expectedDocumentTag.setMessageId("");
|
||||
expectedDocumentTag.setMessageType("DF03");
|
||||
expectedDocumentTag.setMessageName("");
|
||||
expectedDocumentTag.setMessageDate(LocalDate.parse("2024-03-14"));
|
||||
expectedDocumentTag.setMessageTime(LocalTime.parse("09:15:31"));
|
||||
expectedDocumentTag.setSender("");
|
||||
expectedDocumentTag.setReceiver("");
|
||||
expectedDocumentTag.setParentDoc(expectedParentDocTag);
|
||||
expectedDocumentTag.setObjects(List.of(expectedObjectTag));
|
||||
|
||||
ResultContainer actualResultContainer = new ResultContainer(Table.S_DF03);
|
||||
actualResultContainer.setFileForExport(new File("./src/test/resources/xml/DF-03_S_PRC1604240915_1.xml"));
|
||||
actualResultContainer.setDocumentTag(expectedDocumentTag);
|
||||
|
||||
StageResult stageResult = writeXMLFile.process(actualResultContainer);
|
||||
Assertions.assertThat(stageResult).isEqualTo(StageResult.OK);
|
||||
|
||||
try {
|
||||
Assertions.assertThat(Files.mismatch(actualResultContainer.getFileForExport().toPath(),
|
||||
Path.of("./src/test/resources/xml-original/DF-03_S_PRC1604240915_1.xml")))
|
||||
.isEqualTo(-1L);
|
||||
} catch (IOException e) {
|
||||
fail("File comparison failed!");
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
void process_shouldWriteSDf05ToXMLFile() {
|
||||
DF05ObjectTag expectedObjectTag = new DF05ObjectTag();
|
||||
expectedObjectTag.setTp(BigDecimal.TEN);
|
||||
expectedObjectTag.setDt(LocalDate.parse("2024-03-14"));
|
||||
expectedObjectTag.setTm(LocalTime.parse("09:22:12"));
|
||||
expectedObjectTag.setPr("test2");
|
||||
|
||||
ParentDocTag expectedParentDocTag = new ParentDocTag();
|
||||
expectedParentDocTag.setParentId("");
|
||||
|
||||
DocumentTag expectedDocumentTag = new DocumentTag();
|
||||
expectedDocumentTag.setMessageId("");
|
||||
expectedDocumentTag.setMessageType("DF05");
|
||||
expectedDocumentTag.setMessageName("");
|
||||
expectedDocumentTag.setMessageDate(LocalDate.parse("2024-03-14"));
|
||||
expectedDocumentTag.setMessageTime(LocalTime.parse("09:15:31"));
|
||||
expectedDocumentTag.setSender("");
|
||||
expectedDocumentTag.setReceiver("");
|
||||
expectedDocumentTag.setParentDoc(expectedParentDocTag);
|
||||
expectedDocumentTag.setObjects(List.of(expectedObjectTag));
|
||||
|
||||
ResultContainer actualResultContainer = new ResultContainer(Table.S_DF05);
|
||||
actualResultContainer.setFileForExport(new File("./src/test/resources/xml/DF-05_S_PRC1604240915_1.xml"));
|
||||
actualResultContainer.setDocumentTag(expectedDocumentTag);
|
||||
|
||||
StageResult stageResult = writeXMLFile.process(actualResultContainer);
|
||||
Assertions.assertThat(stageResult).isEqualTo(StageResult.OK);
|
||||
|
||||
try {
|
||||
Assertions.assertThat(Files.mismatch(actualResultContainer.getFileForExport().toPath(),
|
||||
Path.of("./src/test/resources/xml-original/DF-05_S_PRC1604240915_1.xml")))
|
||||
.isEqualTo(-1L);
|
||||
} catch (IOException e) {
|
||||
fail("File comparison failed!");
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
void process_shouldWriteSDf07ToXMLFile() {
|
||||
DF07ObjectTag expectedObjectTag = new DF07ObjectTag();
|
||||
expectedObjectTag.setAccount("test1");
|
||||
expectedObjectTag.setSum(new BigDecimal(BigInteger.TEN));
|
||||
expectedObjectTag.setMarket("test3");
|
||||
expectedObjectTag.setType("test4");
|
||||
expectedObjectTag.setDeal("test5");
|
||||
expectedObjectTag.setClientN("test6");
|
||||
expectedObjectTag.setInn("test7");
|
||||
expectedObjectTag.setBic("test8");
|
||||
expectedObjectTag.setSpec("test9");
|
||||
expectedObjectTag.setNumber(new BigDecimal(BigInteger.TWO));
|
||||
expectedObjectTag.setDocNum("test11");
|
||||
expectedObjectTag.setDocDate(LocalDate.parse("2024-03-14"));
|
||||
expectedObjectTag.setPayVal("test12");
|
||||
|
||||
ParentDocTag expectedParentDocTag = new ParentDocTag();
|
||||
expectedParentDocTag.setParentId("");
|
||||
|
||||
DocumentTag expectedDocumentTag = new DocumentTag();
|
||||
expectedDocumentTag.setMessageId("");
|
||||
expectedDocumentTag.setMessageType("DF07");
|
||||
expectedDocumentTag.setMessageName("");
|
||||
expectedDocumentTag.setMessageDate(LocalDate.parse("2024-03-14"));
|
||||
expectedDocumentTag.setMessageTime(LocalTime.parse("09:15:31"));
|
||||
expectedDocumentTag.setSender("");
|
||||
expectedDocumentTag.setReceiver("");
|
||||
expectedDocumentTag.setParentDoc(expectedParentDocTag);
|
||||
expectedDocumentTag.setObjects(List.of(expectedObjectTag));
|
||||
|
||||
ResultContainer actualResultContainer = new ResultContainer(Table.S_DF07);
|
||||
actualResultContainer.setFileForExport(new File("./src/test/resources/xml/DF-07_S_PRC1604240915_1.xml"));
|
||||
actualResultContainer.setDocumentTag(expectedDocumentTag);
|
||||
|
||||
StageResult stageResult = writeXMLFile.process(actualResultContainer);
|
||||
Assertions.assertThat(stageResult).isEqualTo(StageResult.OK);
|
||||
|
||||
try {
|
||||
Assertions.assertThat(Files.mismatch(actualResultContainer.getFileForExport().toPath(),
|
||||
Path.of("./src/test/resources/xml-original/DF-07_S_PRC1604240915_1.xml")))
|
||||
.isEqualTo(-1L);
|
||||
} catch (IOException e) {
|
||||
fail("File comparison failed!");
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
void process_shouldWriteSDf51ToXMLFile() {
|
||||
DF51ObjectTag expectedObjectTag = new DF51ObjectTag();
|
||||
expectedObjectTag.setNumber("1234");
|
||||
expectedObjectTag.setDatetime(LocalDateTime.parse("2024-03-14T09:03:11"));
|
||||
expectedObjectTag.setUnixtime(expectedObjectTag.getDatetime().atZone(ZoneId.systemDefault()).toEpochSecond());
|
||||
|
||||
ParentDocTag expectedParentDocTag = new ParentDocTag();
|
||||
expectedParentDocTag.setParentId("");
|
||||
|
||||
DocumentTag expectedDocumentTag = new DocumentTag();
|
||||
expectedDocumentTag.setMessageId("");
|
||||
expectedDocumentTag.setMessageType("DF51");
|
||||
expectedDocumentTag.setMessageName("");
|
||||
expectedDocumentTag.setMessageDate(LocalDate.parse("2024-03-14"));
|
||||
expectedDocumentTag.setMessageTime(LocalTime.parse("09:15:31"));
|
||||
expectedDocumentTag.setSender("");
|
||||
expectedDocumentTag.setReceiver("");
|
||||
expectedDocumentTag.setParentDoc(expectedParentDocTag);
|
||||
expectedDocumentTag.setObjects(List.of(expectedObjectTag));
|
||||
|
||||
ResultContainer actualResultContainer = new ResultContainer(Table.S_DF51);
|
||||
actualResultContainer.setFileForExport(new File("./src/test/resources/xml/DF-51_S_PRC1604240915_1.xml"));
|
||||
actualResultContainer.setDocumentTag(expectedDocumentTag);
|
||||
|
||||
StageResult stageResult = writeXMLFile.process(actualResultContainer);
|
||||
Assertions.assertThat(stageResult).isEqualTo(StageResult.OK);
|
||||
|
||||
try {
|
||||
Assertions.assertThat(Files.mismatch(actualResultContainer.getFileForExport().toPath(),
|
||||
Path.of("./src/test/resources/xml-original/DF-51_S_PRC1604240915_1.xml")))
|
||||
.isEqualTo(-1L);
|
||||
} catch (IOException e) {
|
||||
fail("File comparison failed!");
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
void process_shouldWriteSDf53ToXMLFile() {
|
||||
DF53ObjectTag expectedObjectTag = new DF53ObjectTag();
|
||||
expectedObjectTag.setAccount("test1");
|
||||
expectedObjectTag.setAccName("test2");
|
||||
expectedObjectTag.setDeal("test3");
|
||||
expectedObjectTag.setDate(LocalDate.parse("2024-03-14"));
|
||||
expectedObjectTag.setStatus(1L);
|
||||
expectedObjectTag.setAccType("test4");
|
||||
expectedObjectTag.setResult("test5");
|
||||
|
||||
ParentDocTag expectedParentDocTag = new ParentDocTag();
|
||||
expectedParentDocTag.setParentId("");
|
||||
|
||||
DocumentTag expectedDocumentTag = new DocumentTag();
|
||||
expectedDocumentTag.setMessageId("");
|
||||
expectedDocumentTag.setMessageType("DF53");
|
||||
expectedDocumentTag.setMessageName("");
|
||||
expectedDocumentTag.setMessageDate(LocalDate.parse("2024-03-14"));
|
||||
expectedDocumentTag.setMessageTime(LocalTime.parse("09:15:31"));
|
||||
expectedDocumentTag.setSender("");
|
||||
expectedDocumentTag.setReceiver("");
|
||||
expectedDocumentTag.setParentDoc(expectedParentDocTag);
|
||||
expectedDocumentTag.setObjects(List.of(expectedObjectTag));
|
||||
|
||||
ResultContainer actualResultContainer = new ResultContainer(Table.S_DF53);
|
||||
actualResultContainer.setFileForExport(new File("./src/test/resources/xml/DF-53_S_PRC1604240915_1.xml"));
|
||||
actualResultContainer.setDocumentTag(expectedDocumentTag);
|
||||
|
||||
StageResult stageResult = writeXMLFile.process(actualResultContainer);
|
||||
Assertions.assertThat(stageResult).isEqualTo(StageResult.OK);
|
||||
|
||||
try {
|
||||
Assertions.assertThat(Files.mismatch(actualResultContainer.getFileForExport().toPath(),
|
||||
Path.of("./src/test/resources/xml-original/DF-53_S_PRC1604240915_1.xml")))
|
||||
.isEqualTo(-1L);
|
||||
} catch (IOException e) {
|
||||
fail("File comparison failed!");
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
void process_shouldWriteSDf54ToXMLFile() {
|
||||
DF54ObjectTag expectedObjectTag = new DF54ObjectTag();
|
||||
expectedObjectTag.setSegType("test1");
|
||||
expectedObjectTag.setDocType("test2");
|
||||
expectedObjectTag.setDocnmRef("test3");
|
||||
expectedObjectTag.setDocnmprev("test4");
|
||||
expectedObjectTag.setSbankcode("test5");
|
||||
expectedObjectTag.setcAccDeb("test6");
|
||||
expectedObjectTag.setSbanknam1("test7");
|
||||
expectedObjectTag.setRbankcode("test8");
|
||||
expectedObjectTag.setcAccCred("test9");
|
||||
expectedObjectTag.setRbanknam1("test10");
|
||||
expectedObjectTag.setOpType("test11");
|
||||
expectedObjectTag.setOpOrder("test12");
|
||||
expectedObjectTag.setPayDate(LocalDate.parse("2024-03-14"));
|
||||
expectedObjectTag.setPayVal("test13");
|
||||
expectedObjectTag.setSumDeb("test14");
|
||||
expectedObjectTag.setSclientn1("test15");
|
||||
expectedObjectTag.setInnDeb("test16");
|
||||
expectedObjectTag.setKppDeb("test17");
|
||||
expectedObjectTag.setAccDeb("test18");
|
||||
expectedObjectTag.setRclientn1("test19");
|
||||
expectedObjectTag.setInnCred("test20");
|
||||
expectedObjectTag.setKppCred("test21");
|
||||
expectedObjectTag.setAccKr1("test22");
|
||||
expectedObjectTag.setSpecif1("test23");
|
||||
expectedObjectTag.setSendType("test24");
|
||||
expectedObjectTag.setDocResult("test25");
|
||||
expectedObjectTag.setDocNum("test26");
|
||||
expectedObjectTag.setDocDate(LocalDate.parse("2024-03-15"));
|
||||
expectedObjectTag.setValueDate(LocalDate.parse("2024-03-16"));
|
||||
expectedObjectTag.setSwiftBen("test27");
|
||||
expectedObjectTag.setSwiftInt("test28");
|
||||
|
||||
ParentDocTag expectedParentDocTag = new ParentDocTag();
|
||||
expectedParentDocTag.setParentId("");
|
||||
|
||||
DocumentTag expectedDocumentTag = new DocumentTag();
|
||||
expectedDocumentTag.setMessageId("");
|
||||
expectedDocumentTag.setMessageType("DF54");
|
||||
expectedDocumentTag.setMessageName("");
|
||||
expectedDocumentTag.setMessageDate(LocalDate.parse("2024-03-14"));
|
||||
expectedDocumentTag.setMessageTime(LocalTime.parse("09:15:31"));
|
||||
expectedDocumentTag.setSender("");
|
||||
expectedDocumentTag.setReceiver("");
|
||||
expectedDocumentTag.setParentDoc(expectedParentDocTag);
|
||||
expectedDocumentTag.setObjects(List.of(expectedObjectTag));
|
||||
|
||||
ResultContainer actualResultContainer = new ResultContainer(Table.S_DF54);
|
||||
actualResultContainer.setFileForExport(new File("./src/test/resources/xml/DF-54_S_PRC1604240915_1.xml"));
|
||||
actualResultContainer.setDocumentTag(expectedDocumentTag);
|
||||
|
||||
StageResult stageResult = writeXMLFile.process(actualResultContainer);
|
||||
Assertions.assertThat(stageResult).isEqualTo(StageResult.OK);
|
||||
|
||||
try {
|
||||
Assertions.assertThat(Files.mismatch(actualResultContainer.getFileForExport().toPath(),
|
||||
Path.of("./src/test/resources/xml-original/DF-54_S_PRC1604240915_1.xml")))
|
||||
.isEqualTo(-1L);
|
||||
} catch (IOException e) {
|
||||
fail("File comparison failed!");
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
void process_shouldWriteSDf56ToXMLFile() {
|
||||
DF56ObjectTag expectedObjectTag = new DF56ObjectTag();
|
||||
expectedObjectTag.setNumber("test1");
|
||||
expectedObjectTag.setStartDatetime(LocalDateTime.parse("2024-03-14T09:03:11"));
|
||||
expectedObjectTag.setEndDatetime(LocalDateTime.parse("2024-04-15T11:03:11"));
|
||||
expectedObjectTag.setAccount("test4");
|
||||
expectedObjectTag.setDeal("test5");
|
||||
expectedObjectTag.setStartUnixtime(expectedObjectTag.getStartDatetime().atZone(ZoneId.systemDefault()).toEpochSecond());
|
||||
expectedObjectTag.setEndUnixtime(expectedObjectTag.getEndDatetime().atZone(ZoneId.systemDefault()).toEpochSecond());
|
||||
|
||||
ParentDocTag expectedParentDocTag = new ParentDocTag();
|
||||
expectedParentDocTag.setParentId("");
|
||||
|
||||
DocumentTag expectedDocumentTag = new DocumentTag();
|
||||
expectedDocumentTag.setMessageId("");
|
||||
expectedDocumentTag.setMessageType("DF56");
|
||||
expectedDocumentTag.setMessageName("");
|
||||
expectedDocumentTag.setMessageDate(LocalDate.parse("2024-03-14"));
|
||||
expectedDocumentTag.setMessageTime(LocalTime.parse("09:15:31"));
|
||||
expectedDocumentTag.setSender("");
|
||||
expectedDocumentTag.setReceiver("");
|
||||
expectedDocumentTag.setParentDoc(expectedParentDocTag);
|
||||
expectedDocumentTag.setObjects(List.of(expectedObjectTag));
|
||||
|
||||
ResultContainer actualResultContainer = new ResultContainer(Table.S_DF56);
|
||||
actualResultContainer.setFileForExport(new File("./src/test/resources/xml/DF-56_S_PRC1604240915_1.xml"));
|
||||
actualResultContainer.setDocumentTag(expectedDocumentTag);
|
||||
|
||||
StageResult stageResult = writeXMLFile.process(actualResultContainer);
|
||||
Assertions.assertThat(stageResult).isEqualTo(StageResult.OK);
|
||||
|
||||
try {
|
||||
Assertions.assertThat(Files.mismatch(actualResultContainer.getFileForExport().toPath(),
|
||||
Path.of("./src/test/resources/xml-original/DF-56_S_PRC1604240915_1.xml")))
|
||||
.isEqualTo(-1L);
|
||||
} catch (IOException e) {
|
||||
fail("File comparison failed!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
spring.main.web-application-type=none
|
||||
|
||||
export-xml-service.hazelcast.cluster-members=127.0.0.1:5701
|
||||
export-xml-service.hazelcast.login=dev
|
||||
export-xml-service.hazelcast.password=dev-pass
|
||||
|
||||
export-xml-service.common.encoding=cp866
|
||||
export-xml-service.common.threads-count=10
|
||||
|
||||
export-xml-service.store.local-temp-dir=D:\\docs and T3\\clearing\\xml\\
|
||||
# код валюты должен быть в верхнем регистре, например для рублей - "RUB" (*.RUB=export/rub/).RUB=export/rub/
|
||||
export-xml-service.store.out-pay-val-dir.RUB=export/rub/
|
||||
export-xml-service.store.out-pay-val-dir.EUR=export/eur/
|
||||
export-xml-service.store.user:tester
|
||||
export-xml-service.store.password=password
|
||||
export-xml-service.store.server-ip=localhost
|
||||
export-xml-service.store.server-port=2222
|
||||
|
||||
export-xml-service.kafka-consumer.bootstrap-servers=localhost:9092
|
||||
export-xml-service.kafka-consumer.group-id=dev-group-balance-service
|
||||
export-xml-service.kafka-consumer.enable-auto-commit=false
|
||||
export-xml-service.kafka-consumer.session-timeout-ms=30000
|
||||
export-xml-service.kafka-consumer.auto-offset-reset=latest
|
||||
export-xml-service.kafka-consumer.linger-ms=1
|
||||
export-xml-service.kafka-consumer.buffer-memory=33554432
|
||||
|
||||
export-xml-service.kafka-producer.bootstrap-servers=localhost:9092
|
||||
export-xml-service.kafka-producer.acks=all
|
||||
export-xml-service.kafka-producer.retries=0
|
||||
export-xml-service.kafka-producer.batch-size=16384
|
||||
export-xml-service.kafka-producer.linger-ms=1
|
||||
export-xml-service.kafka-producer.buffer-memory=33554432
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<DOCUMENT MESSAGEID="" MESSAGETYPE="DF02" MESSAGENAME="" MESSAGEDATE="2024-03-14" MESSAGETIME="09:15:31" SENDER="" RECEIVER="">
|
||||
<PARENTDOC PARENTID=""/>
|
||||
<OBJECTS>
|
||||
<OBJECT CURR_CODE="test1" ACCOUNT="test2" REMAINDER="test3" DEAL="test4" ACC_CODE="test5" DAT="2024-03-14" MARKET="test6" ACC_NAME="test7" ACC_TYPE="test8" SUMENGAGE="test9" SUMUNBLOK="test10" FILE_TYPE="test11"/>
|
||||
</OBJECTS>
|
||||
</DOCUMENT>
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<DOCUMENT MESSAGEID="" MESSAGETYPE="DF03" MESSAGENAME="" MESSAGEDATE="2024-03-14" MESSAGETIME="09:15:31" SENDER="" RECEIVER="">
|
||||
<PARENTDOC PARENTID=""/>
|
||||
<OBJECTS>
|
||||
<OBJECT SEG_TYPE="test1" DOC_TYPE="test2" DOCNM_REF="test3" DOCNMPREV="test4" C_ACC_DEB="test5" SBANKNAM="test6" C_ACC_CRED="test7" RBANKNAM="test8" PAY_DATE="2024-03-14" PAY_VAL="test9" SUM_DEB="test10" SPECIF_1="test11" IMP_RESULT="test12"/>
|
||||
</OBJECTS>
|
||||
</DOCUMENT>
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<DOCUMENT MESSAGEID="" MESSAGETYPE="DF05" MESSAGENAME="" MESSAGEDATE="2024-03-14" MESSAGETIME="09:15:31" SENDER="" RECEIVER="">
|
||||
<PARENTDOC PARENTID=""/>
|
||||
<OBJECTS>
|
||||
<OBJECT TP="10" DT="2024-03-14" TM="09:22:12" PR="test2"/>
|
||||
</OBJECTS>
|
||||
</DOCUMENT>
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<DOCUMENT MESSAGEID="" MESSAGETYPE="DF07" MESSAGENAME="" MESSAGEDATE="2024-03-14" MESSAGETIME="09:15:31" SENDER="" RECEIVER="">
|
||||
<PARENTDOC PARENTID=""/>
|
||||
<OBJECTS>
|
||||
<OBJECT ACCOUNT="test1" SUM="10" MARKET="test3" TYPE="test4" DEAL="test5" CLIENTN="test6" INN="test7" BIC="test8" SPEC="test9" NUMBER="2" DOC_NUM="test11" DOC_DATE="2024-03-14" PAY_VAL="test12"/>
|
||||
</OBJECTS>
|
||||
</DOCUMENT>
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<DOCUMENT MESSAGEID="" MESSAGETYPE="DF51" MESSAGENAME="" MESSAGEDATE="2024-03-14" MESSAGETIME="09:15:31" SENDER="" RECEIVER="">
|
||||
<PARENTDOC PARENTID=""/>
|
||||
<OBJECTS>
|
||||
<OBJECT NUMBER="1234" UNIXTIME="1710396191" DATETIME="2024-03-14T09:03:11"/>
|
||||
</OBJECTS>
|
||||
</DOCUMENT>
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<DOCUMENT MESSAGEID="" MESSAGETYPE="DF53" MESSAGENAME="" MESSAGEDATE="2024-03-14" MESSAGETIME="09:15:31" SENDER="" RECEIVER="">
|
||||
<PARENTDOC PARENTID=""/>
|
||||
<OBJECTS>
|
||||
<OBJECT ACCOUNT="test1" ACC_NAME="test2" DEAL="test3" DATE="2024-03-14" STATUS="1" ACC_TYPE="test4" RESULT="test5"/>
|
||||
</OBJECTS>
|
||||
</DOCUMENT>
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<DOCUMENT MESSAGEID="" MESSAGETYPE="DF54" MESSAGENAME="" MESSAGEDATE="2024-03-14" MESSAGETIME="09:15:31" SENDER="" RECEIVER="">
|
||||
<PARENTDOC PARENTID=""/>
|
||||
<OBJECTS>
|
||||
<OBJECT SEG_TYPE="test1" DOC_TYPE="test2" DOCNM_REF="test3" DOCNMPREV="test4" SBANKCODE="test5" C_ACC_DEB="test6" SBANKNAM="test7" RBANKCODE="test8" C_ACC_CRED="test9" RBANKNAM="test10" OP_TYPE="test11" OP_ORDER="test12" PAY_DATE="2024-03-14" PAY_VAL="test13" SUM_DEB="test14" SCLIENTN="test15" INN_DEB="test16" KPP_DEB="test17" ACC_DEB="test18" RCLIENTN="test19" INN_CRED="test20" KPP_CRED="test21" ACC_KR_1="test22" SPECIF_1="test23" SEND_TYPE="test24" DOC_RESULT="test25" DOC_NUM="test26" DOC_DATE="2024-03-15" VALUE_DATE="2024-03-16" SWIFT_BEN="test27" SWIFT_INT="test28"/>
|
||||
</OBJECTS>
|
||||
</DOCUMENT>
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<DOCUMENT MESSAGEID="" MESSAGETYPE="DF56" MESSAGENAME="" MESSAGEDATE="2024-03-14" MESSAGETIME="09:15:31" SENDER="" RECEIVER="">
|
||||
<PARENTDOC PARENTID=""/>
|
||||
<OBJECTS>
|
||||
<OBJECT NUMBER="test1" SUNIXTIME="1710396191" SDATETIME="2024-03-14T09:03:11" EUNIXTIME="1713168191" EDATETIME="2024-04-15T11:03:11" ACCOUNT="test4" DEAL="test5"/>
|
||||
</OBJECTS>
|
||||
</DOCUMENT>
|
||||
Loading…
Add table
Reference in a new issue