Поправил вывод ДФ-11.
This commit is contained in:
psemenkov 2023-08-16 15:26:17 +03:00
parent 818fda3058
commit cef5460726
6 changed files with 133 additions and 8 deletions

View file

@ -2,6 +2,7 @@ package ru.spcex.clearing.swt.exporter.services.exportimpl;
import com.hazelcast.aws.utility.StringUtil;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import ru.clearing.classes.statics.data.sdf.SDf11;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.platform.messaging.domain.cud.importexport.SwtExporterRequest;
@ -68,8 +69,10 @@ public class DF11Exporter extends AbstractExporterService<SDf11> {
swtHeaderData.setType(typeForHeader());
swtHeaderData.setDateTime(LocalDateTime.now());
swtHeaderData.setValFor20Tag(java.util.UUID.randomUUID().toString());
if (record != null) {
if (record != null && StringUtils.hasText(record.getInDocument())) {
swtHeaderData.setValFor21Tag(record.getInDocument());
} else {
swtHeaderData.setValFor21Tag("NONREF");
}
return swtHeaderData;
}

View file

@ -4,43 +4,58 @@ import org.apache.kafka.clients.producer.Producer;
import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit.jupiter.SpringExtension;
import ru.clearing.classes.statics.data.registry.Registry;
import ru.clearing.classes.statics.data.registry.TradingClearingRegistry;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender;
import ru.spcex.clearing.swt.exporter.config.ExportSWTServiceSettingsTest;
import ru.spcex.clearing.swt.exporter.config.SFTPTestConfig;
import ru.spcex.clearing.swt.exporter.services.FileStorage;
import ru.spcex.clearing.swt.exporter.services.LauncherCommandReceiver;
import ru.spcex.clearing.swt.exporter.services.exportimpl.DF09Exporter;
import ru.spcex.clearing.swt.exporter.services.exportimpl.DF11Exporter;
import ru.spcex.clearing.test.config.ImdgTestConfig;
import ru.spcex.clearing.test.config.KafkaTestConfig;
import ru.spcex.platform.imdg.api.Imdg;
import ru.spcex.platform.imdg.api.ImdgProvider;
import java.time.LocalDate;
import static ru.spcex.clearing.test.config.ImdgTestConfig.currentID;
import static ru.spcex.clearing.test.config.ImdgTestConfig.waitAvailableImdgProviderAndAddAdminWithDefaultId;
@ExtendWith(SpringExtension.class)
@ContextConfiguration(classes = {
SFTPTestConfig.class,
ExportSWTServiceSettingsTest.class,
LauncherCommandReceiver.class,
FileStorage.class,
DF09Exporter.class,
DF11Exporter.class,
ImdgTestConfig.class,
KafkaTestConfig.class})
public abstract class AbstractServiceTest {
protected static final long id = currentID.getAndIncrement();
protected Imdg<Registry> registryImdg;
protected Imdg<TradingClearingRegistry> tradingClearingRegistryImdg;
protected LocalDate currentDate = LocalDate.now();
protected String tcrA = "1324A234";
protected String tcrD = "124324A234";
protected Long securityIdFirst = 12L;
protected Long generationId = 340290054L;
protected Long securityIdSecond = 23L;
@Autowired
@Qualifier("mockProducer")
protected Producer<String, Object> mockProducer;
@Autowired
@Qualifier("kafkaTestTemplate")
protected KafkaTemplate<String, Object> kafkaTemplate;
@Autowired
protected KafkaSender kafkaSender;
@Autowired
protected LauncherCommandReceiver commandReceiver;
@Autowired
@Qualifier("hazelcastServiceTest")
protected ImdgProvider imdgProvider;

View file

@ -0,0 +1,16 @@
package ru.spcex.clearing.swt.exporter.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import ru.spcex.clearing.swt.exporter.config.settings.ExportSwtServiceSettings;
@Configuration
public class ExportSWTServiceSettingsTest {
@Bean
public ExportSwtServiceSettings settings(){
ExportSwtServiceSettings settings = new ExportSwtServiceSettings();
settings.setDocOut("D:\\docs and T3\\clearing\\swt");
return settings;
}
}

View file

@ -0,0 +1,31 @@
package ru.spcex.clearing.swt.exporter.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.integration.sftp.session.SftpFileInfo;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
@Configuration
public class SFTPTestConfig {
@Bean
public SFTPConfig.SftpGateway sftpGateway(){
return new SftpGateway();
}
public static class SftpGateway implements SFTPConfig.SftpGateway{
@Override
public void sendToSftp(File file) {
}
@Override
public List<SftpFileInfo> listFiles(String dir) {
return new ArrayList<>();
}
}
}

View file

@ -11,7 +11,7 @@ import java.time.temporal.ChronoUnit;
import static org.junit.jupiter.api.Assertions.assertEquals;
class AbstractExporterServiceTest extends AbstractServiceTest {
public class AbstractExporterServiceTest extends AbstractServiceTest {
@PostConstruct
public void init() {
super.init();

View file

@ -0,0 +1,60 @@
package ru.spcex.clearing.swt.exporter.services.exportimpl;
import org.apache.kafka.clients.consumer.MockConsumer;
import org.apache.kafka.clients.producer.ProducerRecord;
import org.mockito.ArgumentCaptor;
import ru.clearing.classes.statics.data.sdf.SDf11;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.platform.messaging.domain.BaseRequest;
import ru.spcex.clearing.platform.messaging.domain.Consts;
import ru.spcex.clearing.platform.messaging.domain.cud.importexport.SwtExporterRequest;
import ru.spcex.clearing.platform.messaging.domain.cud.system.JournalSdf;
import ru.spcex.clearing.swt.exporter.services.AbstractExporterServiceTest;
import ru.spcex.platform.enumeration.SwtTable;
import ru.spcex.platform.imdg.api.Imdg;
import java.time.Instant;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.Mockito.timeout;
import static org.mockito.Mockito.verify;
import static ru.spcex.clearing.test.TestUtils.addRecordToKafka;
import static ru.spcex.clearing.test.TestUtils.getJsonStringForNew;
import static ru.spcex.clearing.test.config.KafkaTestConfig.getCaptor;
class DF11ExporterTest extends AbstractExporterServiceTest {
/**
* Тест проверяет создание строк документа DF-11 .<br>
*/
// @Test
void cdeateSdf() {
SwtTable type = SwtTable.SDF_11;
Imdg<SDf11> map = imdgProvider.getImdg(IMDGDistributedNames.Map_SDf11, SDf11.class);
SDf11 sDf11 = new SDf11();
sDf11.setOutDocument("outDocumentTest");
sDf11.setInDocument("inDocumentTest");
sDf11.setDepoCode("depoCodeTest");
sDf11.setQuantity("1212");
sDf11.setSecurityCode("securityCodeTest");
sDf11.setClientName("clientNameTest");
sDf11.setResult("resultTest");
sDf11.setGenerationTime(Instant.now());
sDf11.setGenerationId(generationId);
map.insert(sDf11);
SwtExporterRequest swtExporterRequest = new SwtExporterRequest();
swtExporterRequest.setGroupId(generationId);
swtExporterRequest.setType(type.getKey());
String request = getJsonStringForNew(swtExporterRequest, generationId);
addRecordToKafka((MockConsumer) commandReceiver.getConsumer(), Consts.SWT_EXPORTER, 0, 0, request);
//waiting for kafka send message (finale event)
ArgumentCaptor<ProducerRecord> captor = getCaptor(kafkaTemplate);
verify(kafkaTemplate, timeout(30_000L).times(1))
.send(captor.capture());
BaseRequest<Object> baseRequestResult = (BaseRequest<Object>) captor.getValue().value();
JournalSdf journalSdf = (JournalSdf) baseRequestResult.getRequestPayload();
assertEquals(generationId, journalSdf.getRegistrationNumber());
}
}