---
ExecutionRegisterServiceTest fix up related to new technical requirement
This commit is contained in:
aalehin 2023-10-12 13:19:35 +03:00
parent 846a364164
commit e4c362db00
2 changed files with 83 additions and 83 deletions

View file

@ -15,7 +15,6 @@ import ru.clearing.classes.statics.data.execution.ExecutionFond;
import ru.clearing.classes.statics.data.register.ExecutionRegister;
import ru.clearing.classes.statics.data.registry.TradingClearingRegistry;
import ru.spcex.clearing.platform.messaging.domain.BaseRequest;
import ru.spcex.clearing.platform.messaging.domain.cud.registry.ExecutionRegisterOnSaveRequest;
import ru.spcex.clearing.platform.messaging.domain.cud.schedule.LauncherCommandRequest;
import ru.spcex.clearing.platform.messaging.service.QueueConsumer;
import ru.spcex.clearing.registry.util.PreClearMap;
@ -249,79 +248,79 @@ public class ExecutionRegisterService extends QueueConsumer implements Initializ
// TODO возможно deprecated
public void executionRegisterOnSavingOfTrade(BaseRequest<ExecutionRegisterOnSaveRequest> userRequest) {
ExecutionRegisterOnSaveRequest request = userRequest.getRequestPayload();
ExecutionCommon common = setUpExecutionCommon(request);
boolean isFond = request.isExecutionFond();
Optional<ExecutionRegister> optionalDuplicate = isDuplicateInMap(common);
if (optionalDuplicate.isEmpty()) {
insertExecutionRegister(isFond, common);
} else {
updateExecutionRegister(isFond, common, optionalDuplicate.get());
}
}
//public void executionRegisterOnSavingOfTrade(BaseRequest<ExecutionRegisterOnSaveRequest> userRequest) {
// ExecutionRegisterOnSaveRequest request = userRequest.getRequestPayload();
// ExecutionCommon common = setUpExecutionCommon(request);
// boolean isFond = request.isExecutionFond();
// Optional<ExecutionRegister> optionalDuplicate = isDuplicateInMap(common);
// if (optionalDuplicate.isEmpty()) {
// insertExecutionRegister(isFond, common);
// } else {
// updateExecutionRegister(isFond, common, optionalDuplicate.get());
// }
//}
// TODO возможно deprecated
private void updateExecutionRegister(boolean isFond, ExecutionCommon common, ExecutionRegister registerToUpdate) {
log.trace("Started updating ExecutionRegister entity...");
registerToUpdate.setSecurityId(common.getSecurityId());
registerToUpdate.setExchangeExecutionTime(common.getExchangeExecutionTime());
registerToUpdate.setAmount(isFond ? ((ExecutionFond) common).getSettlementAmount() : ((ExecutionDeposit) common).getFirstLegAmount());
registerToUpdate.setQuantity(isFond ? common.getQuantity() : null);
registerToUpdate.setUpdated(Instant.now());
executionRegisterMap.update(registerToUpdate);
log.debug("Updated successfully ExecutionRegister entity with id: {}", registerToUpdate.getId());
}
//private void updateExecutionRegister(boolean isFond, ExecutionCommon common, ExecutionRegister registerToUpdate) {
// log.trace("Started updating ExecutionRegister entity...");
// registerToUpdate.setSecurityId(common.getSecurityId());
// registerToUpdate.setExchangeExecutionTime(common.getExchangeExecutionTime());
// registerToUpdate.setAmount(isFond ? ((ExecutionFond) common).getSettlementAmount() : ((ExecutionDeposit) common).getFirstLegAmount());
// registerToUpdate.setQuantity(isFond ? common.getQuantity() : null);
// registerToUpdate.setUpdated(Instant.now());
// executionRegisterMap.update(registerToUpdate);
// log.debug("Updated successfully ExecutionRegister entity with id: {}", registerToUpdate.getId());
//}
// todo возможно deprecated
private ExecutionCommon setUpExecutionCommon(ExecutionRegisterOnSaveRequest request) {
ExecutionFond fond = null;
ExecutionDeposit deposit = null;
if (request.isExecutionFond()) {
fond = new ExecutionFond();
fond.setExchangeOrderId(request.getExchangeOrderId());
fond.setSettlementAmount(request.getSettlementAmount());
fond.setComment(request.getComment());
fond.setClientCodeId(request.getClientCodeId());
fond.setSettlementCode(request.getSettlementCode());
fond.setSettlementDate(request.getSettlementDate());
fond.setExchangeExecutionMicroseconds(request.getExchangeExecutionMicroseconds());
} else {
deposit = new ExecutionDeposit();
deposit.setFirstLegAmount(request.getFirstLegAmount());
deposit.setSecondLegAmount(request.getSecondLegAmount());
deposit.setFirstLegSettlementDate(request.getFirstLegSettlementDate());
deposit.setSecondLegSettlementDate(request.getSecondLegSettlementDate());
deposit.setFirstLegSettlementCode(request.getFirstLegSettlementCode());
deposit.setSecondLegSettlementCode(request.getSecondLegSettlementCode());
deposit.setContract(request.getContract());
deposit.setSecurityCode(request.getSecurityCode());
}
boolean isFond = fond != null;
ExecutionCommon common = isFond ? fond : deposit;
common.setExchangeExecutionId(request.getExchangeExecutionId());
common.setExchangeExecutionTime(request.getExchangeExecutionTime());
common.setTradingDate(request.getTradingDate());
common.setTradingClearingRegistryId(request.getTradingClearingRegistryId());
common.setMarket(request.getMarket());
common.setPrice(request.getPrice());
common.setLots(request.getLots());
common.setQuantity(request.getQuantity());
common.setInterestAmount(request.getInterestAmount());
common.setSide(request.getSide());
common.setSettlementCurrency(request.getSettlementCurrency());
common.setCompanyId(request.getCompanyId());
common.setDuration(request.getDuration());
common.setSecurityFullName(request.getSecurityFullName());
common.setSecuritySymbol(request.getSecuritySymbol());
common.setSecurityId(request.getSecurityId());
common.setCounterPartyId(request.getCounterPartyId());
common.setCoverageStatus(request.getCoverageStatus());
common.setSessionId(request.getSessionId());
common.setClearingDate(request.getClearingDate());
return common;
}
//private ExecutionCommon setUpExecutionCommon(ExecutionRegisterOnSaveRequest request) {
// ExecutionFond fond = null;
// ExecutionDeposit deposit = null;
// if (request.isExecutionFond()) {
// fond = new ExecutionFond();
// fond.setExchangeOrderId(request.getExchangeOrderId());
// fond.setSettlementAmount(request.getSettlementAmount());
// fond.setComment(request.getComment());
// fond.setClientCodeId(request.getClientCodeId());
// fond.setSettlementCode(request.getSettlementCode());
// fond.setSettlementDate(request.getSettlementDate());
// fond.setExchangeExecutionMicroseconds(request.getExchangeExecutionMicroseconds());
// } else {
// deposit = new ExecutionDeposit();
// deposit.setFirstLegAmount(request.getFirstLegAmount());
// deposit.setSecondLegAmount(request.getSecondLegAmount());
// deposit.setFirstLegSettlementDate(request.getFirstLegSettlementDate());
// deposit.setSecondLegSettlementDate(request.getSecondLegSettlementDate());
// deposit.setFirstLegSettlementCode(request.getFirstLegSettlementCode());
// deposit.setSecondLegSettlementCode(request.getSecondLegSettlementCode());
// deposit.setContract(request.getContract());
// deposit.setSecurityCode(request.getSecurityCode());
// }
// boolean isFond = fond != null;
// ExecutionCommon common = isFond ? fond : deposit;
// common.setExchangeExecutionId(request.getExchangeExecutionId());
// common.setExchangeExecutionTime(request.getExchangeExecutionTime());
// common.setTradingDate(request.getTradingDate());
// common.setTradingClearingRegistryId(request.getTradingClearingRegistryId());
// common.setMarket(request.getMarket());
// common.setPrice(request.getPrice());
// common.setLots(request.getLots());
// common.setQuantity(request.getQuantity());
// common.setInterestAmount(request.getInterestAmount());
// common.setSide(request.getSide());
// common.setSettlementCurrency(request.getSettlementCurrency());
// common.setCompanyId(request.getCompanyId());
// common.setDuration(request.getDuration());
// common.setSecurityFullName(request.getSecurityFullName());
// common.setSecuritySymbol(request.getSecuritySymbol());
// common.setSecurityId(request.getSecurityId());
// common.setCounterPartyId(request.getCounterPartyId());
// common.setCoverageStatus(request.getCoverageStatus());
// common.setSessionId(request.getSessionId());
// common.setClearingDate(request.getClearingDate());
// return common;
//}
@Deprecated
@Override

View file

@ -24,6 +24,7 @@ import ru.spcex.clearing.test.TestUtils;
import ru.spcex.clearing.test.config.ImdgTestConfig;
import ru.spcex.clearing.test.config.KafkaTestConfig;
import ru.spcex.platform.enumeration.CompanySymbol;
import ru.spcex.platform.enumeration.MoneyFlowSide;
import ru.spcex.platform.enumeration.Side;
import ru.spcex.platform.enumeration.Task;
import ru.spcex.platform.imdg.api.Imdg;
@ -147,7 +148,7 @@ class ExecutionRegisterServiceTest {
}
@Test
@Order(1)
@Order(2)
void executionRegisterNewForClearingDate() {
ExecutionFond executionFond = new ExecutionFond();
@ -162,7 +163,7 @@ class ExecutionRegisterServiceTest {
executionFond.setTradingClearingRegistryId(TKR_FOR_TKR_ID);
executionFond.setCompanyId(COMPANY_ID);
executionFond.setCounterPartyId(COUNTER_PARTY_ID);
executionFond.setSide(Side.BUY.getKey());
executionFond.setSide(Side.SELL.getKey());
executionFond.setCounterPartyTradingClearingRegistry(COUNTER_PARTY_TKR);
executionFond.setPartyTradingClearingRegistry(PARTY_TKR);
executionFondImdg.insert(executionFond);
@ -185,16 +186,16 @@ class ExecutionRegisterServiceTest {
assertEquals(executionRegister.getExchangeExecutionId(), EXCHANGE_EXECUTION_ID);
assertEquals(executionRegister.getExchangeExecutionTime(), EXCHANGE_EXECUTION_TIME);
assertEquals(executionRegister.getSecurityId(), SECURITY_ID);
assertEquals(executionRegister.getSellerId(), COUNTER_PARTY_ID);
assertEquals(executionRegister.getSellerClearingCode(), COMPANY_SYMBOL_VALUE_FOR_COUNTER_PARTY_ID);
assertEquals(executionRegister.getSellerTradingClearingRegister(), COUNTER_PARTY_TKR);
assertEquals(executionRegister.getSellerMoneyAccount(), MONEY_ACCOUNT_FOR_COUNTER_PARTY_TKR);
assertEquals(executionRegister.getSellerDepoAccount(), DEPO_ACCOUNT_FOR_COUNTER_PARTY_TKR);
assertEquals(executionRegister.getBuyerId(), COMPANY_ID);
assertEquals(executionRegister.getBuyerClearingCode(), COMPANY_SYMBOL_VALUE_FOR_COMPANY_ID);
assertEquals(executionRegister.getBuyerTradingClearingRegister(), PARTY_TKR);
assertEquals(executionRegister.getBuyerMoneyAccount(), MONEY_ACCOUNT_FOR_TKR);
assertEquals(executionRegister.getBuyerDepoAccount(), DEPO_ACCOUNT_FOR_TKR);
assertEquals(executionRegister.getSellerId(), COMPANY_ID);
assertEquals(executionRegister.getSellerClearingCode(), COMPANY_SYMBOL_VALUE_FOR_COMPANY_ID);
assertEquals(executionRegister.getSellerTradingClearingRegister(), PARTY_TKR);
assertEquals(executionRegister.getSellerMoneyAccount(), MONEY_ACCOUNT_FOR_TKR);
assertEquals(executionRegister.getSellerDepoAccount(), DEPO_ACCOUNT_FOR_TKR);
assertEquals(executionRegister.getBuyerId(), COUNTER_PARTY_ID);
assertEquals(executionRegister.getBuyerClearingCode(), COMPANY_SYMBOL_VALUE_FOR_COUNTER_PARTY_ID);
assertEquals(executionRegister.getBuyerTradingClearingRegister(), COUNTER_PARTY_TKR);
assertEquals(executionRegister.getBuyerMoneyAccount(), MONEY_ACCOUNT_FOR_COUNTER_PARTY_TKR);
assertEquals(executionRegister.getBuyerDepoAccount(), DEPO_ACCOUNT_FOR_COUNTER_PARTY_TKR);
assertEquals(executionRegister.getAmount(), SETTLEMENT_AMOUNT);
assertEquals(executionRegister.getQuantity(), QUANTITY);
assertEquals(executionRegister.getClearingDate(), LocalDate.now());
@ -203,7 +204,7 @@ class ExecutionRegisterServiceTest {
}
@Test
@Order(2)
@Order(1)
void executionRegisterNewFromRequest() {
ExecutionDeposit executionDeposit = new ExecutionDeposit();
executionDeposit.setClearingDate(LocalDate.now());
@ -217,7 +218,7 @@ class ExecutionRegisterServiceTest {
executionDeposit.setTradingClearingRegistryId(TKR_FOR_TKR_ID);
executionDeposit.setCompanyId(COMPANY_ID);
executionDeposit.setCounterPartyId(COUNTER_PARTY_ID);
executionDeposit.setSide(Side.SELL.getKey());
executionDeposit.setSide(MoneyFlowSide.SELL.getKey());
executionDeposit.setCounterPartyTradingClearingRegistry(COUNTER_PARTY_TKR);
executionDeposit.setPartyTradingClearingRegistry(PARTY_TKR);
executionDepositImdg.insert(executionDeposit);