parent
818fda3058
commit
cef5460726
6 changed files with 133 additions and 8 deletions
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
@ -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<>();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue