Creating tests for registry-service.
This commit is contained in:
parent
e0b53a15d1
commit
18959e3beb
14 changed files with 891 additions and 0 deletions
|
|
@ -0,0 +1,113 @@
|
|||
package ru.spcex.clearing.registry.service;
|
||||
|
||||
import org.apache.kafka.clients.consumer.MockConsumer;
|
||||
import org.apache.kafka.clients.producer.MockProducer;
|
||||
import org.apache.kafka.clients.producer.ProducerRecord;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
import org.mockito.Captor;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.boot.test.mock.mockito.SpyBean;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||
import ru.clearing.classes.statics.data.misc.BalanceRegister;
|
||||
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.registry.BalanceRegisterNewRequest;
|
||||
import ru.spcex.clearing.registry.config.HazelcastServiceTestConfiguration;
|
||||
import ru.spcex.clearing.registry.config.KafkaConfigTest;
|
||||
import ru.spcex.clearing.registry.utils.MatcherFactory;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.Instant;
|
||||
|
||||
import static ru.spcex.clearing.registry.config.HazelcastServiceTestConfiguration.currentID;
|
||||
import static ru.spcex.clearing.registry.utils.MatcherFactory.usingIgnoringFieldsComparator;
|
||||
import static ru.spcex.clearing.registry.utils.TestUtils.*;
|
||||
|
||||
@ExtendWith(SpringExtension.class)
|
||||
@ContextConfiguration(classes = {
|
||||
BalanceRegisterService.class,
|
||||
KafkaConfigTest.class,
|
||||
HazelcastServiceTestConfiguration.class})
|
||||
class BalanceRegisterServiceTest {
|
||||
public static final MatcherFactory.Matcher<BalanceRegister> ADMITTED_DEAL_REGISTER_MATCHER = usingIgnoringFieldsComparator();
|
||||
private static final int PARTITION = 0;
|
||||
private static final String TOPIC_REGISTRY_BALANCE_REGISTER_NEW = Consts.REGISTRY_BALANCE_REGISTER_NEW;
|
||||
private static final Long ID = currentID.getAndIncrement();
|
||||
@Autowired
|
||||
BalanceRegisterService balanceRegisterService;
|
||||
@Autowired
|
||||
@Qualifier("hazelcastServiceTest")
|
||||
private HazelcastService hazelcastServiceTest;
|
||||
private Imdg<BalanceRegister> balanceRegisterMap;
|
||||
|
||||
@Captor
|
||||
private ArgumentCaptor<ProducerRecord> producerRecord;
|
||||
@SpyBean
|
||||
private MockProducer<String, Object> mockProducer;
|
||||
|
||||
@PostConstruct
|
||||
private void init() {
|
||||
hazelcastServiceTest.waitAvailable();
|
||||
this.balanceRegisterMap = hazelcastServiceTest.getImdg(IMDGDistributedNames.Map_BalanceRegister, BalanceRegister.class);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@link BalanceRegisterService#balanceRegisterNew(BaseRequest)} <br>
|
||||
* Тест проверяет создание сущности {@link BalanceRegister} в Hazelcast при передаче из Apache Kafka.<br>
|
||||
* Входной запрос {@link BalanceRegisterNewRequest}:<br>
|
||||
*/
|
||||
@Test
|
||||
void balanceRegisterNew() {
|
||||
//ARRANGE
|
||||
Long companyId = 1234L;
|
||||
BalanceRegisterNewRequest balanceRegisterNewRequest = new BalanceRegisterNewRequest();
|
||||
balanceRegisterNewRequest.setsDf01Date(Instant.now());
|
||||
balanceRegisterNewRequest.setCurrencyCode("currencyCode");
|
||||
balanceRegisterNewRequest.setSetHouseName("houseName");
|
||||
balanceRegisterNewRequest.setAccount("121546854");
|
||||
balanceRegisterNewRequest.setInfoAccount("account");
|
||||
balanceRegisterNewRequest.setRemainderSum(new BigDecimal(76));
|
||||
balanceRegisterNewRequest.setBlockedSum(new BigDecimal(16));
|
||||
balanceRegisterNewRequest.setUnblockedSum(new BigDecimal(46));
|
||||
balanceRegisterNewRequest.setInn("inn");
|
||||
balanceRegisterNewRequest.setMarket(12L);
|
||||
balanceRegisterNewRequest.setFullName("fullName");
|
||||
balanceRegisterNewRequest.setTypeRemains("typeRemains");
|
||||
balanceRegisterNewRequest.setDocNumber("docNumber");
|
||||
balanceRegisterNewRequest.setCompanyId(companyId);
|
||||
|
||||
BalanceRegister predictableBalanceRegister = new BalanceRegister();
|
||||
predictableBalanceRegister.setsDf01Date(balanceRegisterNewRequest.getsDf01Date());
|
||||
predictableBalanceRegister.setCurrencyCode(balanceRegisterNewRequest.getCurrencyCode());
|
||||
predictableBalanceRegister.setSetHouseName(balanceRegisterNewRequest.getSetHouseName());
|
||||
predictableBalanceRegister.setAccount(balanceRegisterNewRequest.getAccount());
|
||||
predictableBalanceRegister.setInfoAccount(balanceRegisterNewRequest.getInfoAccount());
|
||||
predictableBalanceRegister.setRemainderSum(balanceRegisterNewRequest.getRemainderSum());
|
||||
predictableBalanceRegister.setBlockedSum(balanceRegisterNewRequest.getBlockedSum());
|
||||
predictableBalanceRegister.setUnblockedSum(balanceRegisterNewRequest.getUnblockedSum());
|
||||
predictableBalanceRegister.setInn(balanceRegisterNewRequest.getInn());
|
||||
predictableBalanceRegister.setMarket(balanceRegisterNewRequest.getMarket());
|
||||
predictableBalanceRegister.setFullName(balanceRegisterNewRequest.getFullName());
|
||||
predictableBalanceRegister.setTypeRemains(balanceRegisterNewRequest.getTypeRemains());
|
||||
predictableBalanceRegister.setDocNumber(balanceRegisterNewRequest.getDocNumber());
|
||||
predictableBalanceRegister.setCompanyId(balanceRegisterNewRequest.getCompanyId());
|
||||
//ACT
|
||||
String jsonString = getJsonStringForNew(balanceRegisterNewRequest, ID);
|
||||
|
||||
addRecordToKafka((MockConsumer) balanceRegisterService.getConsumer(), TOPIC_REGISTRY_BALANCE_REGISTER_NEW, PARTITION, 0, jsonString);
|
||||
|
||||
//ASSERT
|
||||
waitingWhenAddedRecordAndCheckIt(ID, mockProducer, producerRecord);
|
||||
BalanceRegister resultNew = balanceRegisterMap.getSingleObjectBySQL(String.format("companyId = %d", companyId));
|
||||
predictableBalanceRegister.setId(resultNew.getId());
|
||||
ADMITTED_DEAL_REGISTER_MATCHER.assertMatch(resultNew, predictableBalanceRegister);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,90 @@
|
|||
package ru.spcex.clearing.registry.service;
|
||||
|
||||
import org.apache.kafka.clients.consumer.MockConsumer;
|
||||
import org.apache.kafka.clients.producer.MockProducer;
|
||||
import org.apache.kafka.clients.producer.ProducerRecord;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
import org.mockito.Captor;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.boot.test.mock.mockito.SpyBean;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||
import ru.clearing.classes.statics.data.register.ClearMemberRegisterChange;
|
||||
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.registry.ClearMemberRegisterChangeNewRequest;
|
||||
import ru.spcex.clearing.registry.config.HazelcastServiceTestConfiguration;
|
||||
import ru.spcex.clearing.registry.config.KafkaConfigTest;
|
||||
import ru.spcex.clearing.registry.utils.MatcherFactory;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import java.time.Instant;
|
||||
|
||||
import static ru.spcex.clearing.registry.config.HazelcastServiceTestConfiguration.currentID;
|
||||
import static ru.spcex.clearing.registry.utils.MatcherFactory.usingIgnoringFieldsComparator;
|
||||
import static ru.spcex.clearing.registry.utils.TestUtils.*;
|
||||
|
||||
@ExtendWith(SpringExtension.class)
|
||||
@ContextConfiguration(classes = {
|
||||
ClearMemberRegisterChangeService.class,
|
||||
KafkaConfigTest.class,
|
||||
HazelcastServiceTestConfiguration.class})
|
||||
class ClearMemberRegisterChangeServiceTest {
|
||||
public static final MatcherFactory.Matcher<ClearMemberRegisterChange> CLEAR_MEMBER_REGISTER_CHANGE_MATCHER = usingIgnoringFieldsComparator();
|
||||
private static final int PARTITION = 0;
|
||||
private static final String TOPIC_REGISTRY_CLEAR_MEMBER_REGISTER_CHANGE_NEW = Consts.REGISTRY_CLEAR_MEMBER_REGISTER_CHANGE_NEW;
|
||||
private static final Long ID = currentID.getAndIncrement();
|
||||
@Autowired
|
||||
ClearMemberRegisterChangeService clearMemberRegisterChangeService;
|
||||
@Autowired
|
||||
@Qualifier("hazelcastServiceTest")
|
||||
private HazelcastService hazelcastServiceTest;
|
||||
private Imdg<ClearMemberRegisterChange> clearMemberRegisterChangeMap;
|
||||
|
||||
@Captor
|
||||
private ArgumentCaptor<ProducerRecord> producerRecord;
|
||||
@SpyBean
|
||||
private MockProducer<String, Object> mockProducer;
|
||||
|
||||
@PostConstruct
|
||||
private void init() {
|
||||
hazelcastServiceTest.waitAvailable();
|
||||
this.clearMemberRegisterChangeMap = hazelcastServiceTest.getImdg(IMDGDistributedNames.Map_ClearMemberRegisterChange, ClearMemberRegisterChange.class);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@link ClearMemberRegisterChangeService#clearMemberRegisterChangeNew(BaseRequest)} <br>
|
||||
* Тест проверяет создание сущности {@link ClearMemberRegisterChange} в Hazelcast при передаче из Apache Kafka.<br>
|
||||
* Входной запрос {@link ClearMemberRegisterChangeNewRequest}:<br>
|
||||
*/
|
||||
@Test
|
||||
void clearMemberRegisterChangeNew() {
|
||||
//ARRANGE
|
||||
String comment = "comment";
|
||||
ClearMemberRegisterChangeNewRequest clearMemberRegisterChangeNewRequest = new ClearMemberRegisterChangeNewRequest();
|
||||
clearMemberRegisterChangeNewRequest.setDate(Instant.now());
|
||||
clearMemberRegisterChangeNewRequest.setComment("comment");
|
||||
clearMemberRegisterChangeNewRequest.setClearingCode("clearingCode");
|
||||
|
||||
ClearMemberRegisterChange predictableClearMemberRegisterChange = new ClearMemberRegisterChange();
|
||||
predictableClearMemberRegisterChange.setDate(clearMemberRegisterChangeNewRequest.getDate());
|
||||
predictableClearMemberRegisterChange.setComment(clearMemberRegisterChangeNewRequest.getComment());
|
||||
predictableClearMemberRegisterChange.setClearingCode(clearMemberRegisterChangeNewRequest.getClearingCode());
|
||||
//ACT
|
||||
String jsonString = getJsonStringForNew(clearMemberRegisterChangeNewRequest, ID);
|
||||
|
||||
addRecordToKafka((MockConsumer) clearMemberRegisterChangeService.getConsumer(), TOPIC_REGISTRY_CLEAR_MEMBER_REGISTER_CHANGE_NEW, PARTITION, 0, jsonString);
|
||||
|
||||
//ASSERT
|
||||
waitingWhenAddedRecordAndCheckIt(ID, mockProducer, producerRecord);
|
||||
ClearMemberRegisterChange resultNew = clearMemberRegisterChangeMap.getSingleObjectBySQL(String.format("comment = %s", comment));
|
||||
predictableClearMemberRegisterChange.setId(resultNew.getId());
|
||||
CLEAR_MEMBER_REGISTER_CHANGE_MATCHER.assertMatch(resultNew, predictableClearMemberRegisterChange);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,135 @@
|
|||
package ru.spcex.clearing.registry.service;
|
||||
|
||||
import org.apache.kafka.clients.consumer.MockConsumer;
|
||||
import org.apache.kafka.clients.producer.MockProducer;
|
||||
import org.apache.kafka.clients.producer.ProducerRecord;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
import org.mockito.Captor;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.boot.test.mock.mockito.SpyBean;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||
import ru.clearing.classes.statics.data.misc.ClearMemberRegister;
|
||||
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.registry.ClearMemberRegisterNewRequest;
|
||||
import ru.spcex.clearing.registry.config.HazelcastServiceTestConfiguration;
|
||||
import ru.spcex.clearing.registry.config.KafkaConfigTest;
|
||||
import ru.spcex.clearing.registry.utils.MatcherFactory;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDate;
|
||||
|
||||
import static ru.spcex.clearing.registry.config.HazelcastServiceTestConfiguration.currentID;
|
||||
import static ru.spcex.clearing.registry.utils.MatcherFactory.usingIgnoringFieldsComparator;
|
||||
import static ru.spcex.clearing.registry.utils.TestUtils.*;
|
||||
|
||||
@ExtendWith(SpringExtension.class)
|
||||
@ContextConfiguration(classes = {
|
||||
ClearMemberRegisterService.class,
|
||||
KafkaConfigTest.class,
|
||||
HazelcastServiceTestConfiguration.class})
|
||||
class ClearMemberRegisterServiceTest {
|
||||
public static final MatcherFactory.Matcher<ClearMemberRegister> CLEAR_MEMBER_REGISTER_MATCHER = usingIgnoringFieldsComparator();
|
||||
private static final int PARTITION = 0;
|
||||
private static final String TOPIC_REGISTRY_CLEAR_MEMBER_REGISTER_NEW = Consts.REGISTRY_CLEAR_MEMBER_REGISTER_NEW;
|
||||
private static final Long ID = currentID.getAndIncrement();
|
||||
@Autowired
|
||||
ClearMemberRegisterService clearMemberRegisterService;
|
||||
@Autowired
|
||||
@Qualifier("hazelcastServiceTest")
|
||||
private HazelcastService hazelcastServiceTest;
|
||||
private Imdg<ClearMemberRegister> clearMemberRegisterMap;
|
||||
|
||||
@Captor
|
||||
private ArgumentCaptor<ProducerRecord> producerRecord;
|
||||
@SpyBean
|
||||
private MockProducer<String, Object> mockProducer;
|
||||
|
||||
@PostConstruct
|
||||
private void init() {
|
||||
hazelcastServiceTest.waitAvailable();
|
||||
this.clearMemberRegisterMap = hazelcastServiceTest.getImdg(IMDGDistributedNames.Map_ClearMemberRegister, ClearMemberRegister.class);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@link ClearMemberRegisterService#clearMemberRegisterNew(BaseRequest)} <br>
|
||||
* Тест проверяет создание сущности {@link ClearMemberRegister} в Hazelcast при передаче из Apache Kafka.<br>
|
||||
* Входной запрос {@link ClearMemberRegisterNewRequest}:<br>
|
||||
*/
|
||||
@Test
|
||||
void clearMemberRegisterNew() {
|
||||
//ARRANGE
|
||||
Long bank = 1234L;
|
||||
ClearMemberRegisterNewRequest clearMemberRegisterNewRequest = new ClearMemberRegisterNewRequest();
|
||||
clearMemberRegisterNewRequest.setTradingCode("tradingCode");
|
||||
clearMemberRegisterNewRequest.setClearingCode("clearingCode");
|
||||
clearMemberRegisterNewRequest.setFullName("fullName");
|
||||
clearMemberRegisterNewRequest.setShortName("shortName");
|
||||
clearMemberRegisterNewRequest.setCategoryList("categoryList");
|
||||
clearMemberRegisterNewRequest.setCorporationSole("corporationSole");
|
||||
clearMemberRegisterNewRequest.setAccount("1246984698");
|
||||
clearMemberRegisterNewRequest.setBank(bank);
|
||||
clearMemberRegisterNewRequest.setBankName("bankName");
|
||||
clearMemberRegisterNewRequest.setInn("inn");
|
||||
clearMemberRegisterNewRequest.setBic("bic");
|
||||
clearMemberRegisterNewRequest.setOgrn("ogrn");
|
||||
clearMemberRegisterNewRequest.setCpp("cpp");
|
||||
clearMemberRegisterNewRequest.setOcpo("ocpo");
|
||||
clearMemberRegisterNewRequest.setContractNumber("contractNumber");
|
||||
clearMemberRegisterNewRequest.setContractDate(LocalDate.now());
|
||||
clearMemberRegisterNewRequest.setRegistrationDate(LocalDate.now());
|
||||
clearMemberRegisterNewRequest.setSystemDate(LocalDate.now());
|
||||
clearMemberRegisterNewRequest.setAccessDate(Instant.now());
|
||||
clearMemberRegisterNewRequest.setSuspentionDate(Instant.now());
|
||||
clearMemberRegisterNewRequest.setReopeningDate(Instant.now());
|
||||
clearMemberRegisterNewRequest.setCloseDate(Instant.now());
|
||||
clearMemberRegisterNewRequest.setExclusionDate(Instant.now());
|
||||
clearMemberRegisterNewRequest.setAddress("address");
|
||||
clearMemberRegisterNewRequest.setEmail("email");
|
||||
|
||||
ClearMemberRegister predictableClearMemberRegister = new ClearMemberRegister();
|
||||
predictableClearMemberRegister.setTradingCode(clearMemberRegisterNewRequest.getTradingCode());
|
||||
predictableClearMemberRegister.setClearingCode(clearMemberRegisterNewRequest.getClearingCode());
|
||||
predictableClearMemberRegister.setFullName(clearMemberRegisterNewRequest.getFullName());
|
||||
predictableClearMemberRegister.setShortName(clearMemberRegisterNewRequest.getShortName());
|
||||
predictableClearMemberRegister.setCategoryList(clearMemberRegisterNewRequest.getCategoryList());
|
||||
predictableClearMemberRegister.setCorporationSole(clearMemberRegisterNewRequest.getCorporationSole());
|
||||
predictableClearMemberRegister.setAccount(clearMemberRegisterNewRequest.getAccount());
|
||||
predictableClearMemberRegister.setBank(clearMemberRegisterNewRequest.getBank());
|
||||
predictableClearMemberRegister.setBankName(clearMemberRegisterNewRequest.getBankName());
|
||||
predictableClearMemberRegister.setInn(clearMemberRegisterNewRequest.getInn());
|
||||
predictableClearMemberRegister.setBic(clearMemberRegisterNewRequest.getBic());
|
||||
predictableClearMemberRegister.setOgrn(clearMemberRegisterNewRequest.getOgrn());
|
||||
predictableClearMemberRegister.setCpp(clearMemberRegisterNewRequest.getCpp());
|
||||
predictableClearMemberRegister.setOcpo(clearMemberRegisterNewRequest.getOcpo());
|
||||
predictableClearMemberRegister.setContractNumber(clearMemberRegisterNewRequest.getContractNumber());
|
||||
predictableClearMemberRegister.setContractDate(clearMemberRegisterNewRequest.getContractDate());
|
||||
predictableClearMemberRegister.setRegistrationDate(clearMemberRegisterNewRequest.getRegistrationDate());
|
||||
predictableClearMemberRegister.setSystemDate(clearMemberRegisterNewRequest.getSystemDate());
|
||||
predictableClearMemberRegister.setAccessDate(clearMemberRegisterNewRequest.getAccessDate());
|
||||
predictableClearMemberRegister.setSuspentionDate(clearMemberRegisterNewRequest.getSuspentionDate());
|
||||
predictableClearMemberRegister.setReopeningDate(clearMemberRegisterNewRequest.getReopeningDate());
|
||||
predictableClearMemberRegister.setCloseDate(clearMemberRegisterNewRequest.getCloseDate());
|
||||
predictableClearMemberRegister.setExclusionDate(clearMemberRegisterNewRequest.getExclusionDate());
|
||||
predictableClearMemberRegister.setAddress(clearMemberRegisterNewRequest.getAddress());
|
||||
predictableClearMemberRegister.setEmail(clearMemberRegisterNewRequest.getEmail());
|
||||
//ACT
|
||||
String jsonString = getJsonStringForNew(clearMemberRegisterNewRequest, ID);
|
||||
|
||||
addRecordToKafka((MockConsumer) clearMemberRegisterService.getConsumer(), TOPIC_REGISTRY_CLEAR_MEMBER_REGISTER_NEW, PARTITION, 0, jsonString);
|
||||
|
||||
//ASSERT
|
||||
waitingWhenAddedRecordAndCheckIt(ID, mockProducer, producerRecord);
|
||||
ClearMemberRegister resultNew = clearMemberRegisterMap.getSingleObjectBySQL(String.format("bank = %d", bank));
|
||||
predictableClearMemberRegister.setId(resultNew.getId());
|
||||
CLEAR_MEMBER_REGISTER_MATCHER.assertMatch(resultNew, predictableClearMemberRegister);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,112 @@
|
|||
package ru.spcex.clearing.registry.service;
|
||||
|
||||
import org.apache.kafka.clients.consumer.MockConsumer;
|
||||
import org.apache.kafka.clients.producer.MockProducer;
|
||||
import org.apache.kafka.clients.producer.ProducerRecord;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
import org.mockito.Captor;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.boot.test.mock.mockito.SpyBean;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||
import ru.clearing.classes.statics.data.register.ContractRegister;
|
||||
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.registry.ContractRegisterNewRequest;
|
||||
import ru.spcex.clearing.registry.config.HazelcastServiceTestConfiguration;
|
||||
import ru.spcex.clearing.registry.config.KafkaConfigTest;
|
||||
import ru.spcex.clearing.registry.utils.MatcherFactory;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import java.time.LocalDate;
|
||||
|
||||
import static ru.spcex.clearing.registry.config.HazelcastServiceTestConfiguration.currentID;
|
||||
import static ru.spcex.clearing.registry.utils.MatcherFactory.usingIgnoringFieldsComparator;
|
||||
import static ru.spcex.clearing.registry.utils.TestUtils.*;
|
||||
|
||||
@ExtendWith(SpringExtension.class)
|
||||
@ContextConfiguration(classes = {
|
||||
ContractRegisterService.class,
|
||||
KafkaConfigTest.class,
|
||||
HazelcastServiceTestConfiguration.class})
|
||||
class ContractRegisterServiceTest {
|
||||
public static final MatcherFactory.Matcher<ContractRegister> CLEAR_MEMBER_REGISTER_MATCHER = usingIgnoringFieldsComparator();
|
||||
private static final int PARTITION = 0;
|
||||
private static final String TOPIC_REGISTRY_CONTRACT_REGISTER_NEW = Consts.REGISTRY_CONTRACT_REGISTER_NEW;
|
||||
private static final Long ID = currentID.getAndIncrement();
|
||||
@Autowired
|
||||
ContractRegisterService contractRegisterService;
|
||||
@Autowired
|
||||
@Qualifier("hazelcastServiceTest")
|
||||
private HazelcastService hazelcastServiceTest;
|
||||
private Imdg<ContractRegister> contractRegisterMap;
|
||||
|
||||
@Captor
|
||||
private ArgumentCaptor<ProducerRecord> producerRecord;
|
||||
@SpyBean
|
||||
private MockProducer<String, Object> mockProducer;
|
||||
|
||||
@PostConstruct
|
||||
private void init() {
|
||||
hazelcastServiceTest.waitAvailable();
|
||||
this.contractRegisterMap = hazelcastServiceTest.getImdg(IMDGDistributedNames.Map_ContractRegister, ContractRegister.class);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@link ContractRegisterService#contractRegisterNew(BaseRequest)} <br>
|
||||
* Тест проверяет создание сущности {@link ContractRegister} в Hazelcast при передаче из Apache Kafka.<br>
|
||||
* Входной запрос {@link ContractRegisterNewRequest}:<br>
|
||||
*/
|
||||
@Test
|
||||
void contractRegisterNew() {
|
||||
//ARRANGE
|
||||
Long companyId = 1234L;
|
||||
ContractRegisterNewRequest contractRegisterNewRequest = new ContractRegisterNewRequest();
|
||||
contractRegisterNewRequest.setName("name");
|
||||
contractRegisterNewRequest.setNumber("number");
|
||||
contractRegisterNewRequest.setIssueDate(LocalDate.now());
|
||||
contractRegisterNewRequest.setCompanyFullName(1651656L);
|
||||
contractRegisterNewRequest.setCompanyId(companyId);
|
||||
contractRegisterNewRequest.setDocumentType("documentType");
|
||||
contractRegisterNewRequest.setIssuePlace("issuePlace");
|
||||
contractRegisterNewRequest.setIssuer("issuer");
|
||||
contractRegisterNewRequest.setIssuerCode("issuerCode");
|
||||
contractRegisterNewRequest.setPlace("place");
|
||||
contractRegisterNewRequest.setValidFromDate(LocalDate.now());
|
||||
contractRegisterNewRequest.setValidToDate(LocalDate.now());
|
||||
contractRegisterNewRequest.setCloseDate(LocalDate.now());
|
||||
contractRegisterNewRequest.setComment("comment");
|
||||
|
||||
ContractRegister predictableContractRegister = new ContractRegister();
|
||||
predictableContractRegister.setName(contractRegisterNewRequest.getName());
|
||||
predictableContractRegister.setNumber(contractRegisterNewRequest.getNumber());
|
||||
predictableContractRegister.setIssueDate(contractRegisterNewRequest.getIssueDate());
|
||||
predictableContractRegister.setCompanyFullName(contractRegisterNewRequest.getCompanyFullName());
|
||||
predictableContractRegister.setCompanyId(contractRegisterNewRequest.getCompanyId());
|
||||
predictableContractRegister.setDocumentType(contractRegisterNewRequest.getDocumentType());
|
||||
predictableContractRegister.setIssuePlace(contractRegisterNewRequest.getIssuePlace());
|
||||
predictableContractRegister.setIssuer(contractRegisterNewRequest.getIssuer());
|
||||
predictableContractRegister.setIssuerCode(contractRegisterNewRequest.getIssuerCode());
|
||||
predictableContractRegister.setPlace(contractRegisterNewRequest.getPlace());
|
||||
predictableContractRegister.setValidFromDate(contractRegisterNewRequest.getValidFromDate());
|
||||
predictableContractRegister.setValidToDate(contractRegisterNewRequest.getValidToDate());
|
||||
predictableContractRegister.setCloseDate(contractRegisterNewRequest.getCloseDate());
|
||||
predictableContractRegister.setComment(contractRegisterNewRequest.getComment());
|
||||
//ACT
|
||||
String jsonString = getJsonStringForNew(contractRegisterNewRequest, ID);
|
||||
|
||||
addRecordToKafka((MockConsumer) contractRegisterService.getConsumer(), TOPIC_REGISTRY_CONTRACT_REGISTER_NEW, PARTITION, 0, jsonString);
|
||||
|
||||
//ASSERT
|
||||
waitingWhenAddedRecordAndCheckIt(ID, mockProducer, producerRecord);
|
||||
ContractRegister resultNew = contractRegisterMap.getSingleObjectBySQL(String.format("companyId = %d", companyId));
|
||||
predictableContractRegister.setId(resultNew.getId());
|
||||
CLEAR_MEMBER_REGISTER_MATCHER.assertMatch(resultNew, predictableContractRegister);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,116 @@
|
|||
package ru.spcex.clearing.registry.service;
|
||||
|
||||
import org.apache.kafka.clients.consumer.MockConsumer;
|
||||
import org.apache.kafka.clients.producer.MockProducer;
|
||||
import org.apache.kafka.clients.producer.ProducerRecord;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
import org.mockito.Captor;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.boot.test.mock.mockito.SpyBean;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||
import ru.clearing.classes.statics.data.register.CoveredDealRegister;
|
||||
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.registry.CoveredDealRegisterNewRequest;
|
||||
import ru.spcex.clearing.registry.config.HazelcastServiceTestConfiguration;
|
||||
import ru.spcex.clearing.registry.config.KafkaConfigTest;
|
||||
import ru.spcex.clearing.registry.utils.MatcherFactory;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDate;
|
||||
|
||||
import static ru.spcex.clearing.registry.config.HazelcastServiceTestConfiguration.currentID;
|
||||
import static ru.spcex.clearing.registry.utils.MatcherFactory.usingIgnoringFieldsComparator;
|
||||
import static ru.spcex.clearing.registry.utils.TestUtils.*;
|
||||
|
||||
@ExtendWith(SpringExtension.class)
|
||||
@ContextConfiguration(classes = {
|
||||
CoveredDealRegisterService.class,
|
||||
KafkaConfigTest.class,
|
||||
HazelcastServiceTestConfiguration.class})
|
||||
class CoveredDealRegisterServiceTest {
|
||||
public static final MatcherFactory.Matcher<CoveredDealRegister> COVERED_DEAL_REGISTER_MATCHER = usingIgnoringFieldsComparator();
|
||||
private static final int PARTITION = 0;
|
||||
private static final String TOPIC_REGISTRY_COVERED_DEAL_REGISTER_NEW = Consts.REGISTRY_COVERED_DEAL_REGISTER_NEW;
|
||||
private static final Long ID = currentID.getAndIncrement();
|
||||
@Autowired
|
||||
CoveredDealRegisterService coveredDealRegisterService;
|
||||
@Autowired
|
||||
@Qualifier("hazelcastServiceTest")
|
||||
private HazelcastService hazelcastServiceTest;
|
||||
private Imdg<CoveredDealRegister> coveredDealRegisterMap;
|
||||
|
||||
@Captor
|
||||
private ArgumentCaptor<ProducerRecord> producerRecord;
|
||||
@SpyBean
|
||||
private MockProducer<String, Object> mockProducer;
|
||||
|
||||
@PostConstruct
|
||||
private void init() {
|
||||
hazelcastServiceTest.waitAvailable();
|
||||
this.coveredDealRegisterMap = hazelcastServiceTest.getImdg(IMDGDistributedNames.Map_CoveredDealRegister, CoveredDealRegister.class);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@link CoveredDealRegisterService#coveredDealRegisterNew(BaseRequest)} <br>
|
||||
* Тест проверяет создание сущности {@link CoveredDealRegister} в Hazelcast при передаче из Apache Kafka.<br>
|
||||
* Входной запрос {@link CoveredDealRegisterNewRequest}:<br>
|
||||
*/
|
||||
@Test
|
||||
void coveredDealRegisterNew() {
|
||||
//ARRANGE
|
||||
Long executionId = 1234L;
|
||||
CoveredDealRegisterNewRequest coveredDealRegisterNewRequest = new CoveredDealRegisterNewRequest();
|
||||
coveredDealRegisterNewRequest.setExecutionId(executionId);
|
||||
coveredDealRegisterNewRequest.setCompanyFullName("companyFullName");
|
||||
coveredDealRegisterNewRequest.setTradingDate(LocalDate.now());
|
||||
coveredDealRegisterNewRequest.setExchangeExecutionId(1212L);
|
||||
coveredDealRegisterNewRequest.setExchangeExecutionTime(Instant.now());
|
||||
coveredDealRegisterNewRequest.setSecuritySymbol("securitySymbol");
|
||||
coveredDealRegisterNewRequest.setSecurityFullName("fullName");
|
||||
coveredDealRegisterNewRequest.setSellerFullName("sellerFullName");
|
||||
coveredDealRegisterNewRequest.setSellerClearingCode("sellerClearingCode");
|
||||
coveredDealRegisterNewRequest.setSellerAccount("sellerAccount");
|
||||
coveredDealRegisterNewRequest.setBuyerFullName("buyerFullName");
|
||||
coveredDealRegisterNewRequest.setBuyerClearingCode("buyerClearingCode");
|
||||
coveredDealRegisterNewRequest.setBuyerAccount("buyerAccount");
|
||||
coveredDealRegisterNewRequest.setAmount(new BigDecimal(412));
|
||||
coveredDealRegisterNewRequest.setClearingDate(LocalDate.now());
|
||||
|
||||
CoveredDealRegister predictableCoveredDealRegister = new CoveredDealRegister();
|
||||
predictableCoveredDealRegister.setExecutionId(coveredDealRegisterNewRequest.getExecutionId());
|
||||
predictableCoveredDealRegister.setCompanyFullName(coveredDealRegisterNewRequest.getCompanyFullName());
|
||||
predictableCoveredDealRegister.setTradingDate(coveredDealRegisterNewRequest.getTradingDate());
|
||||
predictableCoveredDealRegister.setExchangeExecutionId(coveredDealRegisterNewRequest.getExchangeExecutionId());
|
||||
predictableCoveredDealRegister.setExchangeExecutionTime(coveredDealRegisterNewRequest.getExchangeExecutionTime());
|
||||
predictableCoveredDealRegister.setSecuritySymbol(coveredDealRegisterNewRequest.getSecuritySymbol());
|
||||
predictableCoveredDealRegister.setSecurityFullName(coveredDealRegisterNewRequest.getSecurityFullName());
|
||||
predictableCoveredDealRegister.setSellerFullName(coveredDealRegisterNewRequest.getSellerFullName());
|
||||
predictableCoveredDealRegister.setSellerClearingCode(coveredDealRegisterNewRequest.getSellerClearingCode());
|
||||
predictableCoveredDealRegister.setSellerAccount(coveredDealRegisterNewRequest.getSellerAccount());
|
||||
predictableCoveredDealRegister.setBuyerFullName(coveredDealRegisterNewRequest.getBuyerFullName());
|
||||
predictableCoveredDealRegister.setBuyerClearingCode(coveredDealRegisterNewRequest.getBuyerClearingCode());
|
||||
predictableCoveredDealRegister.setBuyerAccount(coveredDealRegisterNewRequest.getBuyerAccount());
|
||||
predictableCoveredDealRegister.setAmount(coveredDealRegisterNewRequest.getAmount());
|
||||
predictableCoveredDealRegister.setClearingDate(coveredDealRegisterNewRequest.getClearingDate());
|
||||
//ACT
|
||||
String jsonString = getJsonStringForNew(coveredDealRegisterNewRequest, ID);
|
||||
|
||||
addRecordToKafka((MockConsumer) coveredDealRegisterService.getConsumer(), TOPIC_REGISTRY_COVERED_DEAL_REGISTER_NEW, PARTITION, 0, jsonString);
|
||||
|
||||
//ASSERT
|
||||
waitingWhenAddedRecordAndCheckIt(ID, mockProducer, producerRecord);
|
||||
CoveredDealRegister resultNew = coveredDealRegisterMap.getSingleObjectBySQL(String.format("executionId = %d", executionId));
|
||||
predictableCoveredDealRegister.setId(resultNew.getId());
|
||||
COVERED_DEAL_REGISTER_MATCHER.assertMatch(resultNew, predictableCoveredDealRegister);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,105 @@
|
|||
package ru.spcex.clearing.registry.service;
|
||||
|
||||
import org.apache.kafka.clients.consumer.MockConsumer;
|
||||
import org.apache.kafka.clients.producer.MockProducer;
|
||||
import org.apache.kafka.clients.producer.ProducerRecord;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
import org.mockito.Captor;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.boot.test.mock.mockito.SpyBean;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||
import ru.clearing.classes.statics.data.register.OrderRegister;
|
||||
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.registry.OrderRegisterNewRequest;
|
||||
import ru.spcex.clearing.registry.config.HazelcastServiceTestConfiguration;
|
||||
import ru.spcex.clearing.registry.config.KafkaConfigTest;
|
||||
import ru.spcex.clearing.registry.utils.MatcherFactory;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
|
||||
import static ru.spcex.clearing.registry.config.HazelcastServiceTestConfiguration.currentID;
|
||||
import static ru.spcex.clearing.registry.utils.MatcherFactory.usingIgnoringFieldsComparator;
|
||||
import static ru.spcex.clearing.registry.utils.TestUtils.*;
|
||||
|
||||
@ExtendWith(SpringExtension.class)
|
||||
@ContextConfiguration(classes = {
|
||||
OrderRegisterService.class,
|
||||
KafkaConfigTest.class,
|
||||
HazelcastServiceTestConfiguration.class})
|
||||
class OrderRegisterServiceTest {
|
||||
public static final MatcherFactory.Matcher<OrderRegister> ORDER_REGISTER_MATCHER = usingIgnoringFieldsComparator();
|
||||
private static final int PARTITION = 0;
|
||||
private static final String TOPIC_REGISTRY_ORDER_REGISTER_NEW = Consts.REGISTRY_ORDER_REGISTER_NEW;
|
||||
private static final Long ID = currentID.getAndIncrement();
|
||||
@Autowired
|
||||
OrderRegisterService orderRegisterService;
|
||||
@Autowired
|
||||
@Qualifier("hazelcastServiceTest")
|
||||
private HazelcastService hazelcastServiceTest;
|
||||
private Imdg<OrderRegister> orderRegisterMap;
|
||||
|
||||
@Captor
|
||||
private ArgumentCaptor<ProducerRecord> producerRecord;
|
||||
@SpyBean
|
||||
private MockProducer<String, Object> mockProducer;
|
||||
|
||||
@PostConstruct
|
||||
private void init() {
|
||||
hazelcastServiceTest.waitAvailable();
|
||||
this.orderRegisterMap = hazelcastServiceTest.getImdg(IMDGDistributedNames.Map_OrderRegister, OrderRegister.class);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@link OrderRegisterService#orderRegisterNew(BaseRequest)} <br>
|
||||
* Тест проверяет создание сущности {@link OrderRegister} в Hazelcast при передаче из Apache Kafka.<br>
|
||||
* Входной запрос {@link OrderRegisterNewRequest}:<br>
|
||||
*/
|
||||
@Test
|
||||
void orderRegisterNew() {
|
||||
//ARRANGE
|
||||
Long creditLegDirection = 1234L;
|
||||
OrderRegisterNewRequest req = new OrderRegisterNewRequest();
|
||||
req.setCreditLegAccount("creditLegAccount");
|
||||
req.setCreditLegAmount(new BigDecimal(0));
|
||||
req.setCreditLegCurrencyCode("creditLegCurrencyCode");
|
||||
req.setCreditLegDirection(creditLegDirection);
|
||||
req.setDebitLegAccount(req.getDebitLegAccount());
|
||||
req.setSender(req.getSender());
|
||||
req.setAddressee(req.getAddressee());
|
||||
req.setDocumentNumber(req.getDocumentNumber());
|
||||
req.setClearingDate(req.getClearingDate());
|
||||
req.setClearingDate(LocalDate.now());
|
||||
|
||||
OrderRegister predictableOrderRegister = new OrderRegister();
|
||||
predictableOrderRegister.setCreditLegAccount(req.getCreditLegAccount());
|
||||
predictableOrderRegister.setCreditLegAmount(req.getCreditLegAmount());
|
||||
predictableOrderRegister.setCreditLegCurrencyCode(req.getCreditLegCurrencyCode());
|
||||
predictableOrderRegister.setCreditLegDirection(req.getCreditLegDirection());
|
||||
predictableOrderRegister.setDebitLegAccount(req.getDebitLegAccount());
|
||||
predictableOrderRegister.setSender(req.getSender());
|
||||
predictableOrderRegister.setAddressee(req.getAddressee());
|
||||
predictableOrderRegister.setDocumentNumber(req.getDocumentNumber());
|
||||
predictableOrderRegister.setClearingDate(req.getClearingDate());
|
||||
predictableOrderRegister.setClearingDate(req.getClearingDate());
|
||||
//ACT
|
||||
String jsonString = getJsonStringForNew(req, ID);
|
||||
|
||||
addRecordToKafka((MockConsumer) orderRegisterService.getConsumer(), TOPIC_REGISTRY_ORDER_REGISTER_NEW, PARTITION, 0, jsonString);
|
||||
|
||||
//ASSERT
|
||||
waitingWhenAddedRecordAndCheckIt(ID, mockProducer, producerRecord);
|
||||
OrderRegister resultNew = orderRegisterMap.getSingleObjectBySQL(String.format("creditLegDirection = %d", creditLegDirection));
|
||||
predictableOrderRegister.setId(resultNew.getId());
|
||||
ORDER_REGISTER_MATCHER.assertMatch(resultNew, predictableOrderRegister);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,118 @@
|
|||
package ru.spcex.clearing.registry.service;
|
||||
|
||||
import org.apache.kafka.clients.consumer.MockConsumer;
|
||||
import org.apache.kafka.clients.producer.MockProducer;
|
||||
import org.apache.kafka.clients.producer.ProducerRecord;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
import org.mockito.Captor;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.boot.test.mock.mockito.SpyBean;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||
import ru.clearing.classes.statics.data.register.UncoveredDealRegister;
|
||||
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.registry.UncoveredDealRegisterNewRequest;
|
||||
import ru.spcex.clearing.registry.config.HazelcastServiceTestConfiguration;
|
||||
import ru.spcex.clearing.registry.config.KafkaConfigTest;
|
||||
import ru.spcex.clearing.registry.utils.MatcherFactory;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDate;
|
||||
|
||||
import static ru.spcex.clearing.registry.config.HazelcastServiceTestConfiguration.currentID;
|
||||
import static ru.spcex.clearing.registry.utils.MatcherFactory.usingIgnoringFieldsComparator;
|
||||
import static ru.spcex.clearing.registry.utils.TestUtils.*;
|
||||
|
||||
@ExtendWith(SpringExtension.class)
|
||||
@ContextConfiguration(classes = {
|
||||
UncoveredDealRegisterService.class,
|
||||
KafkaConfigTest.class,
|
||||
HazelcastServiceTestConfiguration.class})
|
||||
class UncoveredDealRegisterServiceTest {
|
||||
public static final MatcherFactory.Matcher<UncoveredDealRegister> UNCOVERED_DEAL_REGISTER_MATCHER = usingIgnoringFieldsComparator();
|
||||
private static final int PARTITION = 0;
|
||||
private static final String TOPIC_REGISTRY_UNCOVERED_DEAL_REGISTER_NEW = Consts.REGISTRY_UNCOVERED_DEAL_REGISTER_NEW;
|
||||
private static final Long ID = currentID.getAndIncrement();
|
||||
@Autowired
|
||||
UncoveredDealRegisterService uncoveredDealRegisterService;
|
||||
@Autowired
|
||||
@Qualifier("hazelcastServiceTest")
|
||||
private HazelcastService hazelcastServiceTest;
|
||||
private Imdg<UncoveredDealRegister> uncoveredDealRegisterMap;
|
||||
|
||||
@Captor
|
||||
private ArgumentCaptor<ProducerRecord> producerRecord;
|
||||
@SpyBean
|
||||
private MockProducer<String, Object> mockProducer;
|
||||
|
||||
@PostConstruct
|
||||
private void init() {
|
||||
hazelcastServiceTest.waitAvailable();
|
||||
this.uncoveredDealRegisterMap = hazelcastServiceTest.getImdg(IMDGDistributedNames.Map_UncoveredDealRegister, UncoveredDealRegister.class);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@link UncoveredDealRegisterService#uncoveredDealRegisterNew(BaseRequest)} <br>
|
||||
* Тест проверяет создание сущности {@link UncoveredDealRegister} в Hazelcast при передаче из Apache Kafka.<br>
|
||||
* Входной запрос {@link UncoveredDealRegisterNewRequest}:<br>
|
||||
*/
|
||||
@Test
|
||||
void uncoveredDealRegisterNew() {
|
||||
//ARRANGE
|
||||
Long executionId = 1234L;
|
||||
UncoveredDealRegisterNewRequest req = new UncoveredDealRegisterNewRequest();
|
||||
req.setExecutionId(executionId);
|
||||
req.setCompanyFullName("companyFullName");
|
||||
req.setTradingDate(LocalDate.now());
|
||||
req.setExchangeExecutionId(121L);
|
||||
req.setExchangeExecutionTime(Instant.now());
|
||||
req.setSecuritySymbol("securitySymbol");
|
||||
req.setSecurityFullName("fullName");
|
||||
req.setSellerFullName("sellerFullName");
|
||||
req.setSellerClearingCode("sellerClearingCode");
|
||||
req.setSellerAccount("sellerAccount");
|
||||
req.setBuyerFullName("buyerFullName");
|
||||
req.setBuyerClearingCode("clearingCode");
|
||||
req.setBuyerAccount("buyerAccount");
|
||||
req.setAmount(new BigDecimal(21));
|
||||
req.setResultStatus("resultStatus");
|
||||
req.setClearingDate(LocalDate.now());
|
||||
|
||||
UncoveredDealRegister predictableUncoveredDealRegister = new UncoveredDealRegister();
|
||||
predictableUncoveredDealRegister.setExecutionId(req.getExecutionId());
|
||||
predictableUncoveredDealRegister.setCompanyFullName(req.getCompanyFullName());
|
||||
predictableUncoveredDealRegister.setTradingDate(req.getTradingDate());
|
||||
predictableUncoveredDealRegister.setExchangeExecutionId(req.getExchangeExecutionId());
|
||||
predictableUncoveredDealRegister.setExchangeExecutionTime(req.getExchangeExecutionTime());
|
||||
predictableUncoveredDealRegister.setSecuritySymbol(req.getSecuritySymbol());
|
||||
predictableUncoveredDealRegister.setSecurityFullName(req.getSecurityFullName());
|
||||
predictableUncoveredDealRegister.setSellerFullName(req.getSellerFullName());
|
||||
predictableUncoveredDealRegister.setSellerClearingCode(req.getSellerClearingCode());
|
||||
predictableUncoveredDealRegister.setSellerAccount(req.getSellerAccount());
|
||||
predictableUncoveredDealRegister.setBuyerFullName(req.getBuyerFullName());
|
||||
predictableUncoveredDealRegister.setBuyerClearingCode(req.getBuyerClearingCode());
|
||||
predictableUncoveredDealRegister.setBuyerAccount(req.getBuyerAccount());
|
||||
predictableUncoveredDealRegister.setAmount(req.getAmount());
|
||||
predictableUncoveredDealRegister.setResultStatus(req.getResultStatus());
|
||||
predictableUncoveredDealRegister.setClearingDate(req.getClearingDate());
|
||||
//ACT
|
||||
String jsonString = getJsonStringForNew(req, ID);
|
||||
|
||||
addRecordToKafka((MockConsumer) uncoveredDealRegisterService.getConsumer(), TOPIC_REGISTRY_UNCOVERED_DEAL_REGISTER_NEW, PARTITION, 0, jsonString);
|
||||
|
||||
//ASSERT
|
||||
waitingWhenAddedRecordAndCheckIt(ID, mockProducer, producerRecord);
|
||||
UncoveredDealRegister resultNew = uncoveredDealRegisterMap.getSingleObjectBySQL(String.format("executionId = %d", executionId));
|
||||
predictableUncoveredDealRegister.setId(resultNew.getId());
|
||||
UNCOVERED_DEAL_REGISTER_MATCHER.assertMatch(resultNew, predictableUncoveredDealRegister);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,12 +1,18 @@
|
|||
package ru.spcex.clearing.platform.messaging.domain.cud.registry;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import ru.spcex.clearing.platform.messaging.domain.json.deserialize.InstantDateTimeDeserializer;
|
||||
import ru.spcex.clearing.platform.messaging.domain.json.serialize.InstantDateTimeSerializer;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.Instant;
|
||||
|
||||
public class BalanceRegisterNewRequest {
|
||||
|
||||
@JsonSerialize(using = InstantDateTimeSerializer.class)
|
||||
@JsonDeserialize(using = InstantDateTimeDeserializer.class)
|
||||
@JsonProperty
|
||||
private Instant sDf01Date;
|
||||
|
||||
|
|
@ -55,6 +61,8 @@ public class BalanceRegisterNewRequest {
|
|||
@JsonProperty
|
||||
private Instant createdAt;
|
||||
|
||||
@JsonSerialize(using = InstantDateTimeSerializer.class)
|
||||
@JsonDeserialize(using = InstantDateTimeDeserializer.class)
|
||||
@JsonProperty
|
||||
private Instant updatedAt;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,10 +1,16 @@
|
|||
package ru.spcex.clearing.platform.messaging.domain.cud.registry;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import ru.spcex.clearing.platform.messaging.domain.json.deserialize.InstantDateTimeDeserializer;
|
||||
import ru.spcex.clearing.platform.messaging.domain.json.serialize.InstantDateTimeSerializer;
|
||||
|
||||
import java.time.Instant;
|
||||
|
||||
public class ClearMemberRegisterChangeNewRequest {
|
||||
@JsonSerialize(using = InstantDateTimeSerializer.class)
|
||||
@JsonDeserialize(using = InstantDateTimeDeserializer.class)
|
||||
@JsonProperty
|
||||
private Instant date;
|
||||
@JsonProperty
|
||||
|
|
|
|||
|
|
@ -1,6 +1,12 @@
|
|||
package ru.spcex.clearing.platform.messaging.domain.cud.registry;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import ru.spcex.clearing.platform.messaging.domain.json.deserialize.InstantDateTimeDeserializer;
|
||||
import ru.spcex.clearing.platform.messaging.domain.json.deserialize.LocalDateDeserializer;
|
||||
import ru.spcex.clearing.platform.messaging.domain.json.serialize.InstantDateTimeSerializer;
|
||||
import ru.spcex.clearing.platform.messaging.domain.json.serialize.LocalDateSerializer;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDate;
|
||||
|
|
@ -52,27 +58,43 @@ public class ClearMemberRegisterNewRequest {
|
|||
@JsonProperty
|
||||
private String contractNumber;
|
||||
|
||||
@JsonSerialize(using = LocalDateSerializer.class)
|
||||
@JsonDeserialize(using = LocalDateDeserializer.class)
|
||||
@JsonProperty
|
||||
private LocalDate contractDate;
|
||||
|
||||
@JsonSerialize(using = LocalDateSerializer.class)
|
||||
@JsonDeserialize(using = LocalDateDeserializer.class)
|
||||
@JsonProperty
|
||||
private LocalDate registrationDate;
|
||||
|
||||
@JsonSerialize(using = LocalDateSerializer.class)
|
||||
@JsonDeserialize(using = LocalDateDeserializer.class)
|
||||
@JsonProperty
|
||||
private LocalDate systemDate;
|
||||
|
||||
@JsonSerialize(using = InstantDateTimeSerializer.class)
|
||||
@JsonDeserialize(using = InstantDateTimeDeserializer.class)
|
||||
@JsonProperty
|
||||
private Instant accessDate;
|
||||
|
||||
@JsonSerialize(using = InstantDateTimeSerializer.class)
|
||||
@JsonDeserialize(using = InstantDateTimeDeserializer.class)
|
||||
@JsonProperty
|
||||
private Instant suspentionDate;
|
||||
|
||||
@JsonSerialize(using = InstantDateTimeSerializer.class)
|
||||
@JsonDeserialize(using = InstantDateTimeDeserializer.class)
|
||||
@JsonProperty
|
||||
private Instant reopeningDate;
|
||||
|
||||
@JsonSerialize(using = InstantDateTimeSerializer.class)
|
||||
@JsonDeserialize(using = InstantDateTimeDeserializer.class)
|
||||
@JsonProperty
|
||||
private Instant closeDate;
|
||||
|
||||
@JsonSerialize(using = InstantDateTimeSerializer.class)
|
||||
@JsonDeserialize(using = InstantDateTimeDeserializer.class)
|
||||
@JsonProperty
|
||||
private Instant exclusionDate;
|
||||
|
||||
|
|
@ -85,9 +107,13 @@ public class ClearMemberRegisterNewRequest {
|
|||
@JsonProperty
|
||||
private Long id;
|
||||
|
||||
@JsonSerialize(using = InstantDateTimeSerializer.class)
|
||||
@JsonDeserialize(using = InstantDateTimeDeserializer.class)
|
||||
@JsonProperty
|
||||
private Instant createdAt;
|
||||
|
||||
@JsonSerialize(using = InstantDateTimeSerializer.class)
|
||||
@JsonDeserialize(using = InstantDateTimeDeserializer.class)
|
||||
@JsonProperty
|
||||
private Instant updatedAt;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,12 @@
|
|||
package ru.spcex.clearing.platform.messaging.domain.cud.registry;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import ru.spcex.clearing.platform.messaging.domain.json.deserialize.InstantDateTimeDeserializer;
|
||||
import ru.spcex.clearing.platform.messaging.domain.json.deserialize.LocalDateDeserializer;
|
||||
import ru.spcex.clearing.platform.messaging.domain.json.serialize.InstantDateTimeSerializer;
|
||||
import ru.spcex.clearing.platform.messaging.domain.json.serialize.LocalDateSerializer;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDate;
|
||||
|
|
@ -13,6 +19,8 @@ public class ContractRegisterNewRequest {
|
|||
@JsonProperty
|
||||
private String number;
|
||||
|
||||
@JsonSerialize(using = LocalDateSerializer.class)
|
||||
@JsonDeserialize(using = LocalDateDeserializer.class)
|
||||
@JsonProperty
|
||||
private LocalDate issueDate;
|
||||
|
||||
|
|
@ -37,12 +45,18 @@ public class ContractRegisterNewRequest {
|
|||
@JsonProperty
|
||||
private String place;
|
||||
|
||||
@JsonSerialize(using = LocalDateSerializer.class)
|
||||
@JsonDeserialize(using = LocalDateDeserializer.class)
|
||||
@JsonProperty
|
||||
private LocalDate validFromDate;
|
||||
|
||||
@JsonSerialize(using = LocalDateSerializer.class)
|
||||
@JsonDeserialize(using = LocalDateDeserializer.class)
|
||||
@JsonProperty
|
||||
private LocalDate validToDate;
|
||||
|
||||
@JsonSerialize(using = LocalDateSerializer.class)
|
||||
@JsonDeserialize(using = LocalDateDeserializer.class)
|
||||
@JsonProperty
|
||||
private LocalDate closeDate;
|
||||
|
||||
|
|
@ -52,9 +66,13 @@ public class ContractRegisterNewRequest {
|
|||
@JsonProperty
|
||||
private Long id;
|
||||
|
||||
@JsonSerialize(using = InstantDateTimeSerializer.class)
|
||||
@JsonDeserialize(using = InstantDateTimeDeserializer.class)
|
||||
@JsonProperty
|
||||
private Instant createdAt;
|
||||
|
||||
@JsonSerialize(using = InstantDateTimeSerializer.class)
|
||||
@JsonDeserialize(using = InstantDateTimeDeserializer.class)
|
||||
@JsonProperty
|
||||
private Instant updatedAt;
|
||||
|
||||
|
|
|
|||
|
|
@ -2,6 +2,12 @@ package ru.spcex.clearing.platform.messaging.domain.cud.registry;
|
|||
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import ru.spcex.clearing.platform.messaging.domain.json.deserialize.InstantDateTimeDeserializer;
|
||||
import ru.spcex.clearing.platform.messaging.domain.json.deserialize.LocalDateDeserializer;
|
||||
import ru.spcex.clearing.platform.messaging.domain.json.serialize.InstantDateTimeSerializer;
|
||||
import ru.spcex.clearing.platform.messaging.domain.json.serialize.LocalDateSerializer;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.Instant;
|
||||
|
|
@ -15,12 +21,16 @@ public class CoveredDealRegisterNewRequest {
|
|||
@JsonProperty
|
||||
public String companyFullName;
|
||||
|
||||
@JsonSerialize(using = LocalDateSerializer.class)
|
||||
@JsonDeserialize(using = LocalDateDeserializer.class)
|
||||
@JsonProperty
|
||||
public LocalDate tradingDate;
|
||||
|
||||
@JsonProperty
|
||||
public Long exchangeExecutionId;
|
||||
|
||||
@JsonSerialize(using = InstantDateTimeSerializer.class)
|
||||
@JsonDeserialize(using = InstantDateTimeDeserializer.class)
|
||||
@JsonProperty
|
||||
public Instant exchangeExecutionTime; //todo clarify is timestamp suitable for this request or not
|
||||
|
||||
|
|
@ -54,12 +64,18 @@ public class CoveredDealRegisterNewRequest {
|
|||
@JsonProperty
|
||||
public Long id;
|
||||
|
||||
@JsonSerialize(using = InstantDateTimeSerializer.class)
|
||||
@JsonDeserialize(using = InstantDateTimeDeserializer.class)
|
||||
@JsonProperty
|
||||
public Instant createdAt;
|
||||
|
||||
@JsonSerialize(using = InstantDateTimeSerializer.class)
|
||||
@JsonDeserialize(using = InstantDateTimeDeserializer.class)
|
||||
@JsonProperty
|
||||
public Instant updatedAt;
|
||||
|
||||
@JsonSerialize(using = LocalDateSerializer.class)
|
||||
@JsonDeserialize(using = LocalDateDeserializer.class)
|
||||
@JsonProperty
|
||||
public LocalDate clearingDate;
|
||||
|
||||
|
|
|
|||
|
|
@ -2,6 +2,12 @@ package ru.spcex.clearing.platform.messaging.domain.cud.registry;
|
|||
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import ru.spcex.clearing.platform.messaging.domain.json.deserialize.InstantDateTimeDeserializer;
|
||||
import ru.spcex.clearing.platform.messaging.domain.json.deserialize.LocalDateDeserializer;
|
||||
import ru.spcex.clearing.platform.messaging.domain.json.serialize.InstantDateTimeSerializer;
|
||||
import ru.spcex.clearing.platform.messaging.domain.json.serialize.LocalDateSerializer;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.Instant;
|
||||
|
|
@ -36,12 +42,18 @@ public class OrderRegisterNewRequest {
|
|||
@JsonProperty
|
||||
private Long id;
|
||||
|
||||
@JsonSerialize(using = InstantDateTimeSerializer.class)
|
||||
@JsonDeserialize(using = InstantDateTimeDeserializer.class)
|
||||
@JsonProperty
|
||||
private Instant createdAt;
|
||||
|
||||
@JsonSerialize(using = InstantDateTimeSerializer.class)
|
||||
@JsonDeserialize(using = InstantDateTimeDeserializer.class)
|
||||
@JsonProperty
|
||||
private Instant updatedAt;
|
||||
|
||||
@JsonSerialize(using = LocalDateSerializer.class)
|
||||
@JsonDeserialize(using = LocalDateDeserializer.class)
|
||||
@JsonProperty
|
||||
private LocalDate clearingDate;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,12 @@
|
|||
package ru.spcex.clearing.platform.messaging.domain.cud.registry;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import ru.spcex.clearing.platform.messaging.domain.json.deserialize.InstantDateTimeDeserializer;
|
||||
import ru.spcex.clearing.platform.messaging.domain.json.deserialize.LocalDateDeserializer;
|
||||
import ru.spcex.clearing.platform.messaging.domain.json.serialize.InstantDateTimeSerializer;
|
||||
import ru.spcex.clearing.platform.messaging.domain.json.serialize.LocalDateSerializer;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.Instant;
|
||||
|
|
@ -14,12 +20,16 @@ public class UncoveredDealRegisterNewRequest {
|
|||
@JsonProperty
|
||||
private String companyFullName;
|
||||
|
||||
@JsonSerialize(using = LocalDateSerializer.class)
|
||||
@JsonDeserialize(using = LocalDateDeserializer.class)
|
||||
@JsonProperty
|
||||
private LocalDate tradingDate;
|
||||
|
||||
@JsonProperty
|
||||
private Long exchangeExecutionId;
|
||||
|
||||
@JsonSerialize(using = InstantDateTimeSerializer.class)
|
||||
@JsonDeserialize(using = InstantDateTimeDeserializer.class)
|
||||
@JsonProperty
|
||||
private Instant exchangeExecutionTime;
|
||||
|
||||
|
|
@ -56,12 +66,18 @@ public class UncoveredDealRegisterNewRequest {
|
|||
@JsonProperty
|
||||
private Long id;
|
||||
|
||||
@JsonSerialize(using = InstantDateTimeSerializer.class)
|
||||
@JsonDeserialize(using = InstantDateTimeDeserializer.class)
|
||||
@JsonProperty
|
||||
private Instant createdAt;
|
||||
|
||||
@JsonSerialize(using = InstantDateTimeSerializer.class)
|
||||
@JsonDeserialize(using = InstantDateTimeDeserializer.class)
|
||||
@JsonProperty
|
||||
private Instant updatedAt;
|
||||
|
||||
@JsonSerialize(using = LocalDateSerializer.class)
|
||||
@JsonDeserialize(using = LocalDateDeserializer.class)
|
||||
@JsonProperty
|
||||
private LocalDate clearingDate;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue