Добавил проверку записей в справочниках, исправил ошибки, исправил тесты.
This commit is contained in:
parent
2f01256a66
commit
dec7f44e48
16 changed files with 569 additions and 143 deletions
|
|
@ -77,6 +77,23 @@
|
|||
<finalName>${project.artifactId}</finalName>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
<version>2.21.0</version>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.junit.platform</groupId>
|
||||
<artifactId>junit-platform-surefire-provider</artifactId>
|
||||
<version>1.2.0-M1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.junit.jupiter</groupId>
|
||||
<artifactId>junit-jupiter-engine</artifactId>
|
||||
<version>5.2.0-M1</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</plugin>
|
||||
</plugins>
|
||||
|
||||
</build>
|
||||
|
|
|
|||
|
|
@ -13,12 +13,13 @@ import ru.spcex.platform.enumeration.Status;
|
|||
import java.math.BigDecimal;
|
||||
|
||||
public class ListingBuilder {
|
||||
private final String market = Market.mkrs.getKey();
|
||||
public Listing byNewMms(MoneyMarketSecurity mms, MoneyMarketSecurityNewRequest mmsReq) {
|
||||
Listing listing = new Listing();
|
||||
listing.setCreated(mms.getCreated());
|
||||
listing.setSecurityId(mms.getId());
|
||||
listing.setLotSize(BigDecimal.valueOf(mmsReq.getLotSize()));
|
||||
listing.setMarket(Market.mkrs.getKey());
|
||||
listing.setMarket(market);
|
||||
listing.setSymbolCode(mms.getSecuritySymbol());
|
||||
listing.setSymbolName(mms.getFullName());
|
||||
listing.setTradingCurrency(mms.getNominalCurrency());
|
||||
|
|
@ -41,7 +42,7 @@ public class ListingBuilder {
|
|||
listing.setCreated(equitySecurity.getCreated());
|
||||
listing.setSecurityId(equitySecurity.getId());
|
||||
listing.setLotSize(BigDecimal.valueOf(request.getLotSize()));
|
||||
listing.setMarket(Market.mkrs.getKey());
|
||||
listing.setMarket(market);
|
||||
listing.setSymbolCode(equitySecurity.getSecuritySymbol());
|
||||
listing.setSymbolName(equitySecurity.getFullName());
|
||||
// listing.setTradingCurrency(equitySecurity.getNominalCurrency());
|
||||
|
|
@ -54,6 +55,7 @@ public class ListingBuilder {
|
|||
listing.setSymbolCode(equitySecurity.getSecuritySymbol());
|
||||
listing.setSymbolName(equitySecurity.getFullName());
|
||||
listing.setWorkflowStatus(equitySecurity.getWorkflowStatus());
|
||||
listing.setMarket(market);
|
||||
listing.setLotSize(equitySecurity.getLotSize());
|
||||
listing.setUpdated(equitySecurity.getUpdated());
|
||||
return listing;
|
||||
|
|
@ -64,11 +66,22 @@ public class ListingBuilder {
|
|||
listing.setCreated(instant.getCreated());
|
||||
listing.setSecurityId(instant.getId());
|
||||
listing.setLotSize(BigDecimal.valueOf(request.getLotSize()));
|
||||
listing.setMarket(Market.mkrs.getKey());
|
||||
listing.setMarket(market);
|
||||
listing.setSymbolCode(instant.getSecuritySymbol());
|
||||
listing.setSymbolName(instant.getFullName());
|
||||
listing.setTradingCurrency(instant.getNominalCurrency());
|
||||
listing.setWorkflowStatus(Status.Active.getKey());
|
||||
return listing;
|
||||
}
|
||||
|
||||
public Listing byFixedIncomeEquity(FixedIncomeSecurity fixedIncomeSecurity, Listing listing) {
|
||||
listing.setSecurityId(fixedIncomeSecurity.getId());
|
||||
listing.setSymbolCode(fixedIncomeSecurity.getSecuritySymbol());
|
||||
listing.setSymbolName(fixedIncomeSecurity.getFullName());
|
||||
listing.setTradingCurrency(fixedIncomeSecurity.getNominalCurrency());
|
||||
listing.setWorkflowStatus(fixedIncomeSecurity.getWorkflowStatus());
|
||||
listing.setLotSize(fixedIncomeSecurity.getLotSize());
|
||||
listing.setUpdated(fixedIncomeSecurity.getUpdated());
|
||||
return listing;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -89,7 +89,7 @@ public class EquitySecurityService extends QueueConsumer implements Initializing
|
|||
equity.setIssuerId(req.getIssuerId());
|
||||
equity.setShortNameEng(req.getShortNameEng());
|
||||
equity.setFullNameEng(req.getFullNameEng());
|
||||
equity.setWorkflowStatus(ru.spcex.platform.enumeration.Status.Active.getKey());
|
||||
equity.setWorkflowStatus(req.workflowStatus);
|
||||
equity.setInstrumentType(req.getInstrumentType());
|
||||
equity.setSecurityId(equity.getId());
|
||||
equity.setCreated(Instant.now());
|
||||
|
|
@ -132,7 +132,7 @@ public class EquitySecurityService extends QueueConsumer implements Initializing
|
|||
equity.setIssuerId(req.getIssuerId());
|
||||
equity.setShortNameEng(req.getShortNameEng());
|
||||
equity.setFullNameEng(req.getFullNameEng());
|
||||
equity.setWorkflowStatus(ru.spcex.platform.enumeration.Status.Active.getKey());
|
||||
equity.setWorkflowStatus(req.workflowStatus);
|
||||
equity.setInstrumentType(req.getInstrumentType());
|
||||
|
||||
equitySecurityImdg.update(equity);
|
||||
|
|
|
|||
|
|
@ -94,7 +94,7 @@ public class FixedIncomeSecurityService extends QueueConsumer implements Initial
|
|||
fixedIncome.setIssuerId(req.getIssuerId());
|
||||
fixedIncome.setShortNameEng(req.getShortNameEng());
|
||||
fixedIncome.setFullNameEng(req.getFullNameEng());
|
||||
fixedIncome.setWorkflowStatus(ru.spcex.platform.enumeration.Status.Active.getKey());
|
||||
fixedIncome.setWorkflowStatus(req.getWorkflowStatus());
|
||||
fixedIncome.setInstrumentType(req.getInstrumentType());
|
||||
fixedIncome.setSecurityId(fixedIncome.getId());
|
||||
fixedIncome.setCreated(Instant.now());
|
||||
|
|
@ -142,7 +142,7 @@ public class FixedIncomeSecurityService extends QueueConsumer implements Initial
|
|||
fixedIncome.setIssuerId(req.getIssuerId());
|
||||
fixedIncome.setShortNameEng(req.getShortNameEng());
|
||||
fixedIncome.setFullNameEng(req.getFullNameEng());
|
||||
fixedIncome.setWorkflowStatus(ru.spcex.platform.enumeration.Status.Active.getKey());
|
||||
fixedIncome.setWorkflowStatus(req.getWorkflowStatus());
|
||||
fixedIncome.setInstrumentType(req.getInstrumentType());
|
||||
fixedIncome.setSecurityId(fixedIncome.getId());
|
||||
|
||||
|
|
@ -152,13 +152,7 @@ public class FixedIncomeSecurityService extends QueueConsumer implements Initial
|
|||
log.error("MoneyMarketSecurityUpdateRequest id {} couldn't find listing with securityId {}", req.getId(), fixedIncome.getId());
|
||||
return null;
|
||||
}
|
||||
listing.setSecurityId(fixedIncome.getId());
|
||||
listing.setSymbolCode(fixedIncome.getSecuritySymbol());
|
||||
listing.setSymbolName(fixedIncome.getFullName());
|
||||
listing.setTradingCurrency(fixedIncome.getNominalCurrency());
|
||||
listing.setWorkflowStatus(fixedIncome.getWorkflowStatus());
|
||||
listing.setLotSize(fixedIncome.getLotSize());
|
||||
listing.setUpdated(updateTime);
|
||||
listing = listingBuilder.byFixedIncomeEquity(fixedIncome, listing);
|
||||
listingImdg.update(listing);
|
||||
return null;
|
||||
}
|
||||
|
|
@ -167,7 +161,7 @@ public class FixedIncomeSecurityService extends QueueConsumer implements Initial
|
|||
CommonDeleteRequest req = userRequest.getRequestPayload();
|
||||
log.debug("CommonDeleteRequest received id = {}", req.getId());
|
||||
|
||||
RequestInfoUpdate requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, validation.equityDeleteValidator());
|
||||
RequestInfoUpdate requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, validation.fixedIncomeDeleteValidator());
|
||||
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||
|
||||
Instant updateTime = Instant.now();
|
||||
|
|
|
|||
|
|
@ -118,10 +118,11 @@ public class MoneyMarketSecurityService extends QueueConsumer implements Initial
|
|||
mms.setSecuritySymbol(req.getSecuritySymbol());
|
||||
mms.setTermType(req.getTermType());
|
||||
mms.setIsin(req.getIsin());
|
||||
mms.setIssuerId(req.getIssuerId());
|
||||
mms.setSecurityId(mms.getId());
|
||||
mms.setDescription(req.getDescription());
|
||||
mms.setCreated(Instant.now());
|
||||
mms.setWorkflowStatus(ru.spcex.platform.enumeration.Status.Active.getKey());
|
||||
mms.setWorkflowStatus(req.getWorkflowStatus());
|
||||
try {
|
||||
transaction.beginTransaction();
|
||||
Imdg<MoneyMarketSecurity> moneyMarketSecurityMap = transaction.getImdg(IMDGDistributedNames.Map_MoneyMarketSecurity, MoneyMarketSecurity.class);
|
||||
|
|
@ -171,8 +172,10 @@ public class MoneyMarketSecurityService extends QueueConsumer implements Initial
|
|||
mms.setSecuritySymbol(req.getSecuritySymbol());
|
||||
mms.setTermType(req.getTermType());
|
||||
mms.setIsin(req.getIsin());
|
||||
mms.setIssuerId(req.getIssuerId());
|
||||
mms.setSecurityId(mms.getId());
|
||||
mms.setDescription(mms.getDescription());
|
||||
mms.setDescription(req.getDescription());
|
||||
mms.setWorkflowStatus(req.getWorkflowStatus());
|
||||
|
||||
moneyMarketSecurityMap.update(mms);
|
||||
Listing listing = listingImdg.getSingleObjectByFieldValues(Map.of("securityId", mms.getId()));
|
||||
|
|
|
|||
|
|
@ -0,0 +1,172 @@
|
|||
package ru.spcex.clearing.securities.service.cud;
|
||||
|
||||
import org.apache.kafka.clients.consumer.Consumer;
|
||||
import org.apache.kafka.clients.producer.Producer;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import ru.clearing.classes.statics.data.instrument.issue.EquitySecurity;
|
||||
import ru.clearing.classes.statics.data.misc.Listing;
|
||||
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.common.CommonDeleteRequest;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.securitites.EquitySecurityNewRequest;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.securitites.EquitySecurityUpdateRequest;
|
||||
import ru.spcex.clearing.platform.messaging.service.QueueConsumer;
|
||||
import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate;
|
||||
import ru.spcex.clearing.securities.component.ListingBuilder;
|
||||
import ru.spcex.clearing.securities.validation.ValidationProvider;
|
||||
import ru.spcex.clearing.validation.common.ValidationHelper;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.api.ImdgId;
|
||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||
import ru.spcex.platform.imdg.api.ImdgTransaction;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.Instant;
|
||||
import java.util.Map;
|
||||
|
||||
@Service
|
||||
public class СurrencyService extends QueueConsumer implements InitializingBean {
|
||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||
private final Imdg<EquitySecurity> equitySecurityImdg;
|
||||
private final Imdg<Listing> listingImdg;
|
||||
private final ImdgProvider imdgProvider;
|
||||
private final ImdgId idGenerator;
|
||||
private final ValidationProvider validation;
|
||||
private final ValidationHelper validationHelper;
|
||||
private final ListingBuilder listingBuilder = new ListingBuilder();
|
||||
|
||||
@Autowired
|
||||
public СurrencyService(Consumer<String, Object> kafkaQueue,
|
||||
Producer<String, Object> kafkaProducer,
|
||||
ImdgProvider imdgProvider,
|
||||
ValidationProvider validation,
|
||||
ValidationHelper validationHelper) {
|
||||
super(kafkaQueue, kafkaProducer);
|
||||
this.validation = validation;
|
||||
this.equitySecurityImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_EquitySecurity, EquitySecurity.class);
|
||||
this.listingImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Listing, Listing.class);
|
||||
this.imdgProvider = imdgProvider;
|
||||
this.idGenerator = imdgProvider.getImdgIdGenerator();
|
||||
this.validationHelper = validationHelper;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterPropertiesSet() {
|
||||
callback(EquitySecurityNewRequest.class)
|
||||
.setFunction(this::newEquity)
|
||||
.forDestination(Consts.DESTINATION_СURRENCY_NEW, callbacks::put);
|
||||
callback(EquitySecurityUpdateRequest.class)
|
||||
.setFunction(this::updateEquity)
|
||||
.forDestination(Consts.DESTINATION_СURRENCY_UPDATE, callbacks::put);
|
||||
callback(CommonDeleteRequest.class)
|
||||
.setFunction(this::deleteEquity)
|
||||
.forDestination(Consts.DESTINATION_СURRENCY_DELETE, callbacks::put);
|
||||
imdgProvider.waitAvailable();
|
||||
init();
|
||||
}
|
||||
|
||||
private RequestInfoUpdate newEquity(BaseRequest<EquitySecurityNewRequest> userRequest) {
|
||||
ImdgTransaction transaction = imdgProvider.newTransaction();
|
||||
EquitySecurityNewRequest req = userRequest.getRequestPayload();
|
||||
|
||||
RequestInfoUpdate requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, validation.equityNewValidator());
|
||||
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||
|
||||
log.debug("EquitySecurityNewRequest received");
|
||||
EquitySecurity equity = new EquitySecurity();
|
||||
equity.setId(idGenerator.nextId());
|
||||
equity.setSecuritySymbol(req.getSecuritySymbol());
|
||||
equity.setShortName(req.getShortName());
|
||||
equity.setFullName(req.getFullName());
|
||||
equity.setIsin(req.getIsin());
|
||||
equity.setShareType(req.getShareType());
|
||||
equity.setLotSize(req.getLotSize() != null ? BigDecimal.valueOf(req.getLotSize()) : null);
|
||||
equity.setIssuerId(req.getIssuerId());
|
||||
equity.setShortNameEng(req.getShortNameEng());
|
||||
equity.setFullNameEng(req.getFullNameEng());
|
||||
equity.setWorkflowStatus(ru.spcex.platform.enumeration.Status.Active.getKey());
|
||||
equity.setInstrumentType(req.getInstrumentType());
|
||||
equity.setSecurityId(equity.getId());
|
||||
equity.setCreated(Instant.now());
|
||||
try {
|
||||
transaction.beginTransaction();
|
||||
Imdg<EquitySecurity> equityImdg = transaction.getImdg(IMDGDistributedNames.Map_EquitySecurity, EquitySecurity.class);
|
||||
Imdg<Listing> listingMap = transaction.getImdg(IMDGDistributedNames.Map_Listing, Listing.class);
|
||||
//одним скопом выполняем реквест
|
||||
equityImdg.insert(equity);
|
||||
Listing listing = listingBuilder.byNewEquity(equity, req);
|
||||
listingMap.insert(listing);
|
||||
//и сохраняем обновленный
|
||||
// reqInfoMap.insert(reqInfo);
|
||||
transaction.commitTransaction();
|
||||
} catch (Throwable e) {
|
||||
transaction.rollbackTransaction();
|
||||
// RequestInfo.update(reqInfo, Status.Error, ExceptionUtils.getStackTrace(e));
|
||||
// requestInfoImdg.insert(reqInfo);
|
||||
}
|
||||
log.debug("successfully processed, request id {}, new object id {}", userRequest.getId(), equity.getId());
|
||||
return null; // default success
|
||||
}
|
||||
|
||||
private RequestInfoUpdate updateEquity(BaseRequest<EquitySecurityUpdateRequest> userRequest) {
|
||||
EquitySecurityUpdateRequest req = userRequest.getRequestPayload();
|
||||
log.debug("MoneyMarketSecurityUpdateRequest received id = {}", req.getId());
|
||||
|
||||
RequestInfoUpdate requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, validation.equityUpdateValidator());
|
||||
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||
|
||||
EquitySecurity equity = equitySecurityImdg.getSingleObjectByID(req.getId());
|
||||
Instant updateTime = Instant.now();
|
||||
equity.setUpdated(updateTime);
|
||||
equity.setSecuritySymbol(req.getSecuritySymbol());
|
||||
equity.setShortName(req.getShortName());
|
||||
equity.setFullName(req.getFullName());
|
||||
equity.setIsin(req.getIsin());
|
||||
equity.setShareType(req.getShareType());
|
||||
equity.setLotSize(req.getLotSize() != null ? BigDecimal.valueOf(req.getLotSize()) : null);
|
||||
equity.setIssuerId(req.getIssuerId());
|
||||
equity.setShortNameEng(req.getShortNameEng());
|
||||
equity.setFullNameEng(req.getFullNameEng());
|
||||
equity.setWorkflowStatus(ru.spcex.platform.enumeration.Status.Active.getKey());
|
||||
equity.setInstrumentType(req.getInstrumentType());
|
||||
|
||||
equitySecurityImdg.update(equity);
|
||||
Listing listing = listingImdg.getSingleObjectByFieldValues(Map.of("securityId", equity.getId()));
|
||||
if (listing == null) {
|
||||
log.error("MoneyMarketSecurityUpdateRequest id {} couldn't find listing with securityId {}", req.getId(), equity.getId());
|
||||
return null;
|
||||
}
|
||||
listing = listingBuilder.byUpdateEquity(equity, listing);
|
||||
listingImdg.update(listing);
|
||||
return null;
|
||||
}
|
||||
|
||||
private RequestInfoUpdate deleteEquity(BaseRequest<CommonDeleteRequest> userRequest) {
|
||||
CommonDeleteRequest req = userRequest.getRequestPayload();
|
||||
log.debug("CommonDeleteRequest received id = {}", req.getId());
|
||||
|
||||
RequestInfoUpdate requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, validation.equityDeleteValidator());
|
||||
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||
|
||||
Instant updateTime = Instant.now();
|
||||
EquitySecurity equity = equitySecurityImdg.getSingleObjectByID(req.getId());
|
||||
equity.setWorkflowStatus(ru.spcex.platform.enumeration.Status.Blocked.getKey());
|
||||
equity.setUpdated(updateTime);
|
||||
equitySecurityImdg.update(equity);
|
||||
|
||||
Listing listing = listingImdg.getSingleObjectByFieldValues(Map.of("securityId", equity.getId()));
|
||||
if (listing == null) {
|
||||
log.error("CommonDeleteRequest id {} couldn't find listing with securityId {}", req.getId(), equity.getId());
|
||||
return null;
|
||||
}
|
||||
listing.setWorkflowStatus(ru.spcex.platform.enumeration.Status.Blocked.getKey());
|
||||
listing.setUpdated(updateTime);
|
||||
listingImdg.update(listing);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
@ -21,12 +21,26 @@ public class ValidationProvider {
|
|||
private final Imdg<SpcexObjectBase> mmsMap;
|
||||
private final Imdg<SpcexObjectBase> equityMap;
|
||||
private final Imdg<SpcexObjectBase> fixedIncomeMap;
|
||||
private final Imdg<SpcexObjectBase> instrumentTypeDictionaryImdg;
|
||||
private final Imdg<SpcexObjectBase> workflowStatusDictionaryImdg;
|
||||
private final Imdg<SpcexObjectBase> termTypeDictionaryImdg;
|
||||
private final Imdg<SpcexObjectBase> currencyCodeDictionaryImdg;
|
||||
private final Imdg<SpcexObjectBase> shareTypeDictionaryImdg;
|
||||
private final Imdg<SpcexObjectBase> bondTypeDictionaryImdg;
|
||||
private final Imdg<SpcexObjectBase> companyImdg;
|
||||
|
||||
|
||||
public ValidationProvider(ImdgProvider imdgProvider) {
|
||||
this.mmsMap = imdgProvider.getImdg(IMDGDistributedNames.Map_MoneyMarketSecurity, SpcexObjectBase.class);
|
||||
this.equityMap = imdgProvider.getImdg(IMDGDistributedNames.Map_EquitySecurity, SpcexObjectBase.class);
|
||||
this.fixedIncomeMap = imdgProvider.getImdg(IMDGDistributedNames.Map_FixedIncomeSecurity, SpcexObjectBase.class);
|
||||
this.instrumentTypeDictionaryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_InstrumentTypeDictionary, SpcexObjectBase.class);
|
||||
this.workflowStatusDictionaryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_WorkflowStatusDictionary, SpcexObjectBase.class);
|
||||
this.termTypeDictionaryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_TermTypeDictionary, SpcexObjectBase.class);
|
||||
this.currencyCodeDictionaryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_CurrencyCodeDictionary, SpcexObjectBase.class);
|
||||
this.shareTypeDictionaryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ShareTypeDictionary, SpcexObjectBase.class);
|
||||
this.bondTypeDictionaryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_BondTypeDictionary, SpcexObjectBase.class);
|
||||
this.companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, SpcexObjectBase.class);
|
||||
}
|
||||
|
||||
public Function<MoneyMarketSecurityNewRequest, IValidator> mmsNewValidator() {
|
||||
|
|
@ -34,11 +48,21 @@ public class ValidationProvider {
|
|||
ImdgValidationContext<MoneyMarketSecurityNewRequest> context = new ImdgValidationContext<>();
|
||||
context.setValidatedObject(mmsRequest);
|
||||
context.addImdg(IMDGDistributedNames.Map_MoneyMarketSecurity, mmsMap);
|
||||
context.addImdg(IMDGDistributedNames.Map_Company, companyImdg);
|
||||
context.addImdg(IMDGDistributedNames.Map_InstrumentTypeDictionary, instrumentTypeDictionaryImdg);
|
||||
context.addImdg(IMDGDistributedNames.Map_WorkflowStatusDictionary, workflowStatusDictionaryImdg);
|
||||
context.addImdg(IMDGDistributedNames.Map_TermTypeDictionary, termTypeDictionaryImdg);
|
||||
context.addImdg(IMDGDistributedNames.Map_CurrencyCodeDictionary, currencyCodeDictionaryImdg);
|
||||
return new ValidatorImpl<>(context,
|
||||
EndDtAfterStartDt.instance(MoneyMarketSecurityNewRequest.class),
|
||||
new NotPresentBySecuritySymbolAndWorkflowStatusActv(IMDGDistributedNames.Map_MoneyMarketSecurity, SecuritiesError.InstrumentAlreadyExists, MoneyMarketSecurityNewRequest.class),
|
||||
new IsValidInstrumentTypeFromRequest(SecuritiesError.RequiredFieldIsEmpty, "RATE"),
|
||||
MmsNewValidationRule.RequiredFieldIsNotEmpty
|
||||
MmsNewValidationRule.RequiredFieldIsNotEmpty,
|
||||
new HaveValidCompanyId<>(MoneyMarketSecurityNewRequest::getIssuerId, "issuerId"),
|
||||
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_InstrumentTypeDictionary, MoneyMarketSecurityNewRequest::getInstrumentType, "instrumentType"),
|
||||
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_WorkflowStatusDictionary, MoneyMarketSecurityNewRequest::getWorkflowStatus, "workflowStatus"),
|
||||
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_TermTypeDictionary, MoneyMarketSecurityNewRequest::getTermType, "termType"),
|
||||
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_CurrencyCodeDictionary, MoneyMarketSecurityNewRequest::getNominalCurrency, "nominalCurrency")
|
||||
);
|
||||
};
|
||||
}
|
||||
|
|
@ -48,11 +72,21 @@ public class ValidationProvider {
|
|||
ImdgValidationContext<MoneyMarketSecurityUpdateRequest> context = new ImdgValidationContext<>();
|
||||
context.setValidatedObject(mmsRequest);
|
||||
context.addImdg(IMDGDistributedNames.Map_MoneyMarketSecurity, mmsMap);
|
||||
context.addImdg(IMDGDistributedNames.Map_Company, companyImdg);
|
||||
context.addImdg(IMDGDistributedNames.Map_InstrumentTypeDictionary, instrumentTypeDictionaryImdg);
|
||||
context.addImdg(IMDGDistributedNames.Map_WorkflowStatusDictionary, workflowStatusDictionaryImdg);
|
||||
context.addImdg(IMDGDistributedNames.Map_TermTypeDictionary, termTypeDictionaryImdg);
|
||||
context.addImdg(IMDGDistributedNames.Map_CurrencyCodeDictionary, currencyCodeDictionaryImdg);
|
||||
return new ValidatorImpl<>(context,
|
||||
EndDtAfterStartDt.instance(MoneyMarketSecurityUpdateRequest.class),
|
||||
new PresentById(IMDGDistributedNames.Map_MoneyMarketSecurity, SecuritiesError.InstrumentNotFound, true),
|
||||
new IsValidInstrumentTypeById(SecuritiesError.InstrumentNotFound, "RATE"),
|
||||
new WorkflowStatusActv()
|
||||
new WorkflowStatusActv(),
|
||||
new HaveValidCompanyId<>(MoneyMarketSecurityUpdateRequest::getIssuerId, "issuerId"),
|
||||
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_InstrumentTypeDictionary, MoneyMarketSecurityUpdateRequest::getInstrumentType, "instrumentType"),
|
||||
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_WorkflowStatusDictionary, MoneyMarketSecurityUpdateRequest::getWorkflowStatus, "workflowStatus"),
|
||||
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_TermTypeDictionary, MoneyMarketSecurityUpdateRequest::getTermType, "termType"),
|
||||
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_CurrencyCodeDictionary, MoneyMarketSecurityUpdateRequest::getNominalCurrency, "nominalCurrency")
|
||||
);
|
||||
};
|
||||
}
|
||||
|
|
@ -74,12 +108,19 @@ public class ValidationProvider {
|
|||
return equityRequest -> {
|
||||
ImdgValidationContext<EquitySecurityNewRequest> context = new ImdgValidationContext<>();
|
||||
context.setValidatedObject(equityRequest);
|
||||
context.addImdg(IMDGDistributedNames.Map_Company, companyImdg);
|
||||
context.addImdg(IMDGDistributedNames.Map_EquitySecurity, equityMap);
|
||||
context.addImdg(IMDGDistributedNames.Map_InstrumentTypeDictionary, instrumentTypeDictionaryImdg);
|
||||
context.addImdg(IMDGDistributedNames.Map_WorkflowStatusDictionary, workflowStatusDictionaryImdg);
|
||||
context.addImdg(IMDGDistributedNames.Map_ShareTypeDictionary, shareTypeDictionaryImdg);
|
||||
return new ValidatorImpl<>(context,
|
||||
new NotPresentBySecuritySymbolAndWorkflowStatusActv(IMDGDistributedNames.Map_EquitySecurity, SecuritiesError.InstrumentAlreadyExists, EquitySecurityNewRequest.class),
|
||||
new IsValidInstrumentTypeFromRequest(SecuritiesError.RequiredFieldIsEmpty, "EQTY"),
|
||||
EquityNewValidationRule.RequiredFieldIsNotEmpty
|
||||
);
|
||||
EquityNewValidationRule.RequiredFieldIsNotEmpty,
|
||||
new HaveValidCompanyId<>(EquitySecurityNewRequest::getIssuerId, "issuerId"),
|
||||
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_InstrumentTypeDictionary, EquitySecurityNewRequest::getInstrumentType, "instrumentType"),
|
||||
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_WorkflowStatusDictionary, EquitySecurityNewRequest::getWorkflowStatus, "workflowStatus"),
|
||||
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_ShareTypeDictionary, EquitySecurityNewRequest::getShareType, "shareType"));
|
||||
};
|
||||
}
|
||||
|
||||
|
|
@ -88,11 +129,18 @@ public class ValidationProvider {
|
|||
ImdgValidationContext<EquitySecurityUpdateRequest> context = new ImdgValidationContext<>();
|
||||
context.setValidatedObject(equityRequest);
|
||||
context.addImdg(IMDGDistributedNames.Map_EquitySecurity, equityMap);
|
||||
context.addImdg(IMDGDistributedNames.Map_Company, companyImdg);
|
||||
context.addImdg(IMDGDistributedNames.Map_InstrumentTypeDictionary, instrumentTypeDictionaryImdg);
|
||||
context.addImdg(IMDGDistributedNames.Map_WorkflowStatusDictionary, workflowStatusDictionaryImdg);
|
||||
context.addImdg(IMDGDistributedNames.Map_ShareTypeDictionary, shareTypeDictionaryImdg);
|
||||
return new ValidatorImpl<>(context,
|
||||
new PresentById(IMDGDistributedNames.Map_EquitySecurity, SecuritiesError.InstrumentNotFound, true),
|
||||
new IsValidInstrumentTypeById(SecuritiesError.InstrumentNotFound, "EQTY"),
|
||||
new WorkflowStatusActv()
|
||||
);
|
||||
new WorkflowStatusActv(),
|
||||
new HaveValidCompanyId<>(EquitySecurityUpdateRequest::getIssuerId, "issuerId"),
|
||||
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_InstrumentTypeDictionary, EquitySecurityUpdateRequest::getInstrumentType, "instrumentType"),
|
||||
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_WorkflowStatusDictionary, EquitySecurityUpdateRequest::getWorkflowStatus, "workflowStatus"),
|
||||
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_ShareTypeDictionary, EquitySecurityUpdateRequest::getShareType, "shareType"));
|
||||
};
|
||||
}
|
||||
|
||||
|
|
@ -113,12 +161,22 @@ public class ValidationProvider {
|
|||
return equityRequest -> {
|
||||
ImdgValidationContext<FixedIncomeSecurityNewRequest> context = new ImdgValidationContext<>();
|
||||
context.setValidatedObject(equityRequest);
|
||||
context.addImdg(IMDGDistributedNames.Map_FixedIncomeSecurity, equityMap);
|
||||
context.addImdg(IMDGDistributedNames.Map_FixedIncomeSecurity, fixedIncomeMap);
|
||||
context.addImdg(IMDGDistributedNames.Map_Company, companyImdg);
|
||||
context.addImdg(IMDGDistributedNames.Map_InstrumentTypeDictionary, instrumentTypeDictionaryImdg);
|
||||
context.addImdg(IMDGDistributedNames.Map_WorkflowStatusDictionary, workflowStatusDictionaryImdg);
|
||||
context.addImdg(IMDGDistributedNames.Map_BondTypeDictionary, bondTypeDictionaryImdg);
|
||||
context.addImdg(IMDGDistributedNames.Map_CurrencyCodeDictionary, currencyCodeDictionaryImdg);
|
||||
return new ValidatorImpl<>(context,
|
||||
new NotPresentBySecuritySymbolAndWorkflowStatusActv(IMDGDistributedNames.Map_FixedIncomeSecurity, SecuritiesError.InstrumentAlreadyExists, FixedIncomeSecurityNewRequest.class),
|
||||
new IsValidInstrumentTypeFromRequest(SecuritiesError.RequiredFieldIsEmpty, "BOND"),
|
||||
FixedIncomeNewValidationRule.RequiredFieldIsNotEmpty
|
||||
);
|
||||
FixedIncomeNewValidationRule.RequiredFieldIsNotEmpty,
|
||||
new HaveValidCompanyId<>(FixedIncomeSecurityNewRequest::getIssuerId, "issuerId"),
|
||||
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_InstrumentTypeDictionary, FixedIncomeSecurityNewRequest::getInstrumentType, "instrumentType"),
|
||||
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_WorkflowStatusDictionary, FixedIncomeSecurityNewRequest::getWorkflowStatus, "workflowStatus"),
|
||||
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_BondTypeDictionary, FixedIncomeSecurityNewRequest::getBondType, "bondType"),
|
||||
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_CurrencyCodeDictionary, FixedIncomeSecurityNewRequest::getNominalCurrency, "nominalCurrency")
|
||||
);
|
||||
};
|
||||
}
|
||||
|
||||
|
|
@ -126,11 +184,22 @@ public class ValidationProvider {
|
|||
return equityRequest -> {
|
||||
ImdgValidationContext<FixedIncomeSecurityUpdateRequest> context = new ImdgValidationContext<>();
|
||||
context.setValidatedObject(equityRequest);
|
||||
context.addImdg(IMDGDistributedNames.Map_FixedIncomeSecurity, equityMap);
|
||||
context.addImdg(IMDGDistributedNames.Map_FixedIncomeSecurity, fixedIncomeMap);
|
||||
context.addImdg(IMDGDistributedNames.Map_Company, companyImdg);
|
||||
context.addImdg(IMDGDistributedNames.Map_FixedIncomeSecurity, fixedIncomeMap);
|
||||
context.addImdg(IMDGDistributedNames.Map_InstrumentTypeDictionary, instrumentTypeDictionaryImdg);
|
||||
context.addImdg(IMDGDistributedNames.Map_WorkflowStatusDictionary, workflowStatusDictionaryImdg);
|
||||
context.addImdg(IMDGDistributedNames.Map_BondTypeDictionary, bondTypeDictionaryImdg);
|
||||
context.addImdg(IMDGDistributedNames.Map_CurrencyCodeDictionary, currencyCodeDictionaryImdg);
|
||||
return new ValidatorImpl<>(context,
|
||||
new PresentById(IMDGDistributedNames.Map_FixedIncomeSecurity, SecuritiesError.InstrumentNotFound, true),
|
||||
new IsValidInstrumentTypeById(SecuritiesError.InstrumentNotFound, "BOND"),
|
||||
new WorkflowStatusActv()
|
||||
new WorkflowStatusActv(),
|
||||
new HaveValidCompanyId<>(FixedIncomeSecurityUpdateRequest::getIssuerId, "issuerId"),
|
||||
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_InstrumentTypeDictionary, FixedIncomeSecurityUpdateRequest::getInstrumentType, "instrumentType"),
|
||||
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_WorkflowStatusDictionary, FixedIncomeSecurityUpdateRequest::getWorkflowStatus, "workflowStatus"),
|
||||
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_BondTypeDictionary, FixedIncomeSecurityUpdateRequest::getBondType, "bondType"),
|
||||
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_CurrencyCodeDictionary, FixedIncomeSecurityUpdateRequest::getNominalCurrency, "nominalCurrency")
|
||||
);
|
||||
};
|
||||
}
|
||||
|
|
@ -139,7 +208,8 @@ public class ValidationProvider {
|
|||
return equityRequest -> {
|
||||
ImdgValidationContext<CommonDeleteRequest> context = new ImdgValidationContext<>();
|
||||
context.setValidatedObject(equityRequest);
|
||||
context.addImdg(IMDGDistributedNames.Map_FixedIncomeSecurity, equityMap);
|
||||
context.addImdg(IMDGDistributedNames.Map_FixedIncomeSecurity, fixedIncomeMap);
|
||||
context.addImdg(IMDGDistributedNames.Map_FixedIncomeSecurity, fixedIncomeMap);
|
||||
return new ValidatorImpl<>(context,
|
||||
new PresentById(IMDGDistributedNames.Map_FixedIncomeSecurity, SecuritiesError.InstrumentNotFound, true),
|
||||
new IsValidInstrumentTypeById(SecuritiesError.InstrumentNotFound, "BOND"),
|
||||
|
|
|
|||
|
|
@ -0,0 +1,39 @@
|
|||
package ru.spcex.clearing.securities.validation.rule;
|
||||
|
||||
import org.springframework.util.StringUtils;
|
||||
import ru.spcex.clearing.securities.errors.SecuritiesError;
|
||||
import ru.spcex.platform.classes.base.SpcexObjectBase;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.validation.ImdgValidationContext;
|
||||
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
||||
import ru.spcex.platform.utils.validation.IValidationRule;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.function.Function;
|
||||
|
||||
public class HaveValidCodeByDictionary<R> implements IValidationRule<ImdgValidationContext<R>> {
|
||||
String mapName;
|
||||
String errArg;
|
||||
Function<R, String> codeGetter;
|
||||
public HaveValidCodeByDictionary(String mapName, Function<R, String> codeGetter, String errArg) {
|
||||
this.mapName = mapName;
|
||||
this.codeGetter = codeGetter;
|
||||
this.errArg = errArg;
|
||||
}
|
||||
@Override
|
||||
public Optional<EnumMessage> validate(ImdgValidationContext<R> context) {
|
||||
R validatedObject = context.getValidatedObject();
|
||||
String code = codeGetter.apply(validatedObject);
|
||||
if(!StringUtils.hasText(code)) {
|
||||
return of(SecuritiesError.RequiredFieldIsEmpty, errArg);
|
||||
}
|
||||
Imdg<SpcexObjectBase> imdgDictionary = context.obtainMap(mapName, SpcexObjectBase.class);
|
||||
SpcexObjectBase dictionary = imdgDictionary.getSingleObjectByFieldValues(Map.of(
|
||||
"code", code));
|
||||
if (dictionary == null) {
|
||||
return of(SecuritiesError.WrongFieldValue, errArg);
|
||||
}
|
||||
return empty();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
package ru.spcex.clearing.securities.validation.rule;
|
||||
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.securities.errors.SecuritiesError;
|
||||
import ru.spcex.platform.classes.base.SpcexObjectBase;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.validation.ImdgValidationContext;
|
||||
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
||||
import ru.spcex.platform.utils.validation.IValidationRule;
|
||||
|
||||
import java.util.Optional;
|
||||
import java.util.function.Function;
|
||||
|
||||
public class HaveValidCompanyId<R> implements IValidationRule<ImdgValidationContext<R>> {
|
||||
Function<R, Long> idGetter;
|
||||
String errArg;
|
||||
public HaveValidCompanyId(Function<R, Long> idGetter, String errArg) {
|
||||
this.idGetter = idGetter;
|
||||
this.errArg = errArg;
|
||||
}
|
||||
@Override
|
||||
public Optional<EnumMessage> validate(ImdgValidationContext<R> context) {
|
||||
R validatedObject = context.getValidatedObject();
|
||||
Long id = idGetter.apply(validatedObject);
|
||||
if(id == null) {
|
||||
return of(SecuritiesError.RequiredFieldIsEmpty, errArg);
|
||||
}
|
||||
Imdg<SpcexObjectBase> imdgDictionary = context.obtainMap(IMDGDistributedNames.Map_Company, SpcexObjectBase.class);
|
||||
SpcexObjectBase dictionary = imdgDictionary.getSingleObjectByID(id);
|
||||
if (dictionary == null) {
|
||||
return of(SecuritiesError.WrongFieldValue, errArg);
|
||||
}
|
||||
return empty();
|
||||
}
|
||||
}
|
||||
|
|
@ -17,15 +17,15 @@ public class IsValidInstrumentTypeFromRequest implements IValidationRule<ImdgVal
|
|||
this.errorEnum = errorEnum;
|
||||
this.predictableInstrumentType = predictableInstrumentType;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Optional<EnumMessage> validate(ImdgValidationContext<WithInstrumentType> context) {
|
||||
WithInstrumentType action = context.getValidatedObject();
|
||||
if (action.getInstrumentType() == null) {
|
||||
return of(SecuritiesError.RequiredFieldIsEmpty);
|
||||
} else if (!predictableInstrumentType.equalsIgnoreCase(action.getInstrumentType())){
|
||||
} else if (!predictableInstrumentType.equalsIgnoreCase(action.getInstrumentType())) {
|
||||
return of(errorEnum);
|
||||
}else {
|
||||
} else {
|
||||
return empty();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,10 +10,12 @@ import org.springframework.beans.factory.annotation.Qualifier;
|
|||
import org.springframework.boot.test.mock.mockito.MockBean;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||
import ru.clearing.classes.statics.data.company.Company;
|
||||
import ru.clearing.classes.statics.data.instrument.issue.EquitySecurity;
|
||||
import ru.clearing.classes.statics.data.instrument.issue.FixedIncomeSecurity;
|
||||
import ru.clearing.classes.statics.data.misc.Listing;
|
||||
import ru.clearing.classes.statics.data.misc.MoneyMarketSecurity;
|
||||
import ru.clearing.platform.dictionary.*;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.securities.component.ListingBuilder;
|
||||
import ru.spcex.clearing.securities.config.ErrorResolverConfig;
|
||||
|
|
@ -52,6 +54,22 @@ public abstract class AbstractServiceTest {
|
|||
protected Imdg<Listing> listingImdg;
|
||||
protected Imdg<EquitySecurity> equitySecurityImdg;
|
||||
protected Imdg<FixedIncomeSecurity> fixedIncomeSecurityImdg;
|
||||
protected Imdg<InstrumentTypeDictionary> instrumentTypeDictionaryImdg;
|
||||
protected Imdg<WorkflowStatusDictionary> workflowStatusDictionaryImdg;
|
||||
protected Imdg<TermTypeDictionary> termTypeDictionaryImdg;
|
||||
protected Imdg<CurrencyCodeDictionary> currencyCodeDictionaryImdg;
|
||||
protected Imdg<ShareTypeDictionary> shareTypeDictionaryImdg;
|
||||
protected Imdg<BondTypeDictionary> bondTypeDictionaryImdg;
|
||||
protected Imdg<Company> companyImdg;
|
||||
|
||||
public static String RATE = "RATE";
|
||||
protected String EQTY = "EQTY";
|
||||
protected String BOND = "BOND";
|
||||
protected String shareType = "shareType";
|
||||
protected String bondType = "bondType";
|
||||
public static Long issuerId = 13243L;
|
||||
public static String termType = "TermType";
|
||||
public static String currencyCode = "RUB";
|
||||
protected final ListingBuilder listingBuilder = new ListingBuilder();
|
||||
@Captor
|
||||
protected ArgumentCaptor<ProducerRecord> producerRecord;
|
||||
|
|
@ -67,7 +85,42 @@ public abstract class AbstractServiceTest {
|
|||
this.listingImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Listing, Listing.class);
|
||||
this.equitySecurityImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_EquitySecurity, EquitySecurity.class);
|
||||
this.fixedIncomeSecurityImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_FixedIncomeSecurity, FixedIncomeSecurity.class);
|
||||
this.instrumentTypeDictionaryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_InstrumentTypeDictionary, InstrumentTypeDictionary.class);
|
||||
this.workflowStatusDictionaryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_WorkflowStatusDictionary, WorkflowStatusDictionary.class);
|
||||
this.termTypeDictionaryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_TermTypeDictionary, TermTypeDictionary.class);
|
||||
this.currencyCodeDictionaryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_CurrencyCodeDictionary, CurrencyCodeDictionary.class);
|
||||
this.shareTypeDictionaryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ShareTypeDictionary, ShareTypeDictionary.class);
|
||||
this.bondTypeDictionaryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_BondTypeDictionary, BondTypeDictionary.class);
|
||||
this.companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class);
|
||||
|
||||
InstrumentTypeDictionary instrumentTypeDictionary = new InstrumentTypeDictionary();
|
||||
instrumentTypeDictionary.setId(1L);
|
||||
instrumentTypeDictionary.setCode(RATE);
|
||||
instrumentTypeDictionaryImdg.insert(instrumentTypeDictionary);
|
||||
instrumentTypeDictionary.setId(2L);
|
||||
instrumentTypeDictionary.setCode(EQTY);
|
||||
instrumentTypeDictionaryImdg.insert(instrumentTypeDictionary);
|
||||
instrumentTypeDictionary.setId(3L);
|
||||
instrumentTypeDictionary.setCode(BOND);
|
||||
instrumentTypeDictionaryImdg.insert(instrumentTypeDictionary);
|
||||
WorkflowStatusDictionary workflowStatusDictionary = new WorkflowStatusDictionary();
|
||||
workflowStatusDictionary.setCode(ru.spcex.platform.enumeration.Status.Active.getKey());
|
||||
workflowStatusDictionaryImdg.insert(workflowStatusDictionary);
|
||||
TermTypeDictionary termTypeDictionary = new TermTypeDictionary();
|
||||
termTypeDictionary.setCode(termType);
|
||||
termTypeDictionaryImdg.insert(termTypeDictionary);
|
||||
CurrencyCodeDictionary currencyCodeDictionary = new CurrencyCodeDictionary();
|
||||
currencyCodeDictionary.setCode(currencyCode);
|
||||
currencyCodeDictionaryImdg.insert(currencyCodeDictionary);
|
||||
ShareTypeDictionary shareTypeDictionary = new ShareTypeDictionary();
|
||||
shareTypeDictionary.setCode(shareType);
|
||||
shareTypeDictionaryImdg.insert(shareTypeDictionary);
|
||||
BondTypeDictionary bondTypeDictionary = new BondTypeDictionary();
|
||||
bondTypeDictionary.setCode(bondType);
|
||||
bondTypeDictionaryImdg.insert(bondTypeDictionary);
|
||||
Company company = new Company();
|
||||
company.setId(issuerId);
|
||||
companyImdg.insert(company);
|
||||
TestUtils.FutureRecordMetadata future = spy(TestUtils.FutureRecordMetadata.class);
|
||||
doReturn(future).when(mockProducer).send(producerRecord.capture());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -49,6 +49,7 @@ public class EquitySecurityServiceTest extends AbstractServiceTest{
|
|||
*/
|
||||
@Test
|
||||
public void testNewEquity(){
|
||||
clearAllInImdg(equitySecurityImdg);
|
||||
final String TOPIC = Consts.DESTINATION_EQUITY_SECURITY_NEW;
|
||||
|
||||
final EquitySecurity equityPrediction = getEquitySecurity();
|
||||
|
|
@ -86,6 +87,7 @@ public class EquitySecurityServiceTest extends AbstractServiceTest{
|
|||
*/
|
||||
@Test
|
||||
public void testUpdateEquity() {
|
||||
clearAllInImdg(equitySecurityImdg);
|
||||
final String TOPIC = Consts.DESTINATION_EQUITY_SECURITY_UPDATE;
|
||||
String fullName = "FullNameUpdate";
|
||||
Double updateLotSize = 12.0;
|
||||
|
|
@ -126,6 +128,7 @@ public class EquitySecurityServiceTest extends AbstractServiceTest{
|
|||
*/
|
||||
@Test
|
||||
public void testDeleteEquity(){
|
||||
clearAllInImdg(equitySecurityImdg);
|
||||
final String TOPIC = Consts.DESTINATION_EQUITY_SECURITY_DELETE;
|
||||
|
||||
final EquitySecurity equityPrediction = getEquitySecurity();
|
||||
|
|
@ -165,13 +168,13 @@ public class EquitySecurityServiceTest extends AbstractServiceTest{
|
|||
equitySecurity.setShortName("ShortNameNewEquity");
|
||||
equitySecurity.setFullName("FullNameNewEquity");
|
||||
equitySecurity.setIsin("Isin");
|
||||
equitySecurity.setShareType("ShareType");
|
||||
equitySecurity.setShareType(shareType);
|
||||
equitySecurity.setLotSize(BigDecimal.valueOf(18.0d));
|
||||
equitySecurity.setIssuerId(11L);
|
||||
equitySecurity.setIssuerId(issuerId);
|
||||
equitySecurity.setShortNameEng("ShortNameNewEquity");
|
||||
equitySecurity.setFullNameEng("FullNameNewEquity");
|
||||
equitySecurity.setWorkflowStatus(ru.spcex.platform.enumeration.Status.Active.getKey());
|
||||
equitySecurity.setInstrumentType("EQTY");
|
||||
equitySecurity.setInstrumentType(EQTY);
|
||||
return equitySecurity;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -3,15 +3,14 @@ package ru.spcex.clearing.securities.service;
|
|||
import org.apache.kafka.clients.consumer.MockConsumer;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import ru.clearing.classes.statics.data.instrument.issue.EquitySecurity;
|
||||
import ru.clearing.classes.statics.data.instrument.issue.FixedIncomeSecurity;
|
||||
import ru.clearing.classes.statics.data.misc.Listing;
|
||||
import ru.clearing.classes.statics.data.misc.MoneyMarketSecurity;
|
||||
import ru.spcex.clearing.platform.messaging.domain.BaseRequest;
|
||||
import ru.spcex.clearing.platform.messaging.domain.Consts;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.securitites.EquitySecurityUpdateRequest;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.securitites.FixedIncomeSecurityNewRequest;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.securitites.FixedIncomeSecurityUpdateRequest;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.securitites.MoneyMarketSecurityNewRequest;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.securitites.MoneyMarketSecurityUpdateRequest;
|
||||
import ru.spcex.clearing.securities.service.cud.FixedIncomeSecurityService;
|
||||
|
|
@ -51,6 +50,7 @@ public class FixedIncomeSecurityServiceTest extends AbstractServiceTest{
|
|||
*/
|
||||
@Test
|
||||
public void newFixedIncome(){
|
||||
clearAllInImdg(fixedIncomeSecurityImdg);
|
||||
final String TOPIC = Consts.DESTINATION_FIXED_INCOME_SECURITY_NEW;
|
||||
|
||||
final FixedIncomeSecurity fixedIncomePrediction = getFixedIncomeSecurity();
|
||||
|
|
@ -88,38 +88,38 @@ public class FixedIncomeSecurityServiceTest extends AbstractServiceTest{
|
|||
*/
|
||||
@Test
|
||||
public void updateFixedIncome() {
|
||||
// clearAllInImdg(moneyMarketSecurityMap);
|
||||
// final String TOPIC = Consts.DESTINATION_FIXED_INCOME_SECURITY_UPDATE;
|
||||
// String fullName = "FullNameUpdate";
|
||||
// Double updateLotSize = 12.0;
|
||||
//
|
||||
// final FixedIncomeSecurity fixedIncomePrediction = getFixedIncomeSecurity();
|
||||
//
|
||||
// fixedIncomeSecurityImdg.insert(fixedIncomePrediction);
|
||||
// fixedIncomePrediction.setFullName(fullName);
|
||||
// fixedIncomePrediction.setLotSize(BigDecimal.valueOf(updateLotSize));
|
||||
// final FixedIncomeSecurityUpdateRequest request = getEquitySecurityUpdateRequest(fixedIncomePrediction);
|
||||
// Listing listingPrediction = new Listing();
|
||||
// listingPrediction = listingBuilder.byUpdateEquity(fixedIncomePrediction, listingPrediction);
|
||||
// listingImdg.insert(listingPrediction);
|
||||
//
|
||||
// //ACT
|
||||
// String jsonString = getJsonStringForUPDATE(request, ID);
|
||||
//
|
||||
// addRecordToKafka((MockConsumer) equitySecurityService.getConsumer(), TOPIC, PARTITION, 0, jsonString);
|
||||
//
|
||||
// //ASSERT
|
||||
// waitingWhenAddedRecordAndCheckIt(ID, mockProducer, producerRecord);
|
||||
//
|
||||
// EquitySecurity equityResult = equitySecurityImdg.getSingleObjectBySQL(String.format("fullName = %s", fixedIncomePrediction.getFullName()));
|
||||
// fixedIncomePrediction.setId(equityResult.getId());
|
||||
// fixedIncomePrediction.setSecurityId(equityResult.getSecurityId());
|
||||
// FIXED_INCOME_SECURITY_MATCHER.assertMatch(equityResult, fixedIncomePrediction);
|
||||
//
|
||||
// Listing listingResult = listingImdg.getSingleObjectByFieldValues(Map.of("securityId", fixedIncomePrediction.getId()));
|
||||
// listingPrediction.setId(listingResult.getId());
|
||||
// listingPrediction.setSecurityId(listingResult.getSecurityId());
|
||||
// LISTING_MATCHER.assertMatch(listingResult, listingPrediction);
|
||||
clearAllInImdg(moneyMarketSecurityMap);
|
||||
final String TOPIC = Consts.DESTINATION_FIXED_INCOME_SECURITY_UPDATE;
|
||||
String fullName = "FullNameUpdate";
|
||||
Double updateLotSize = 12.0;
|
||||
|
||||
final FixedIncomeSecurity fixedIncomePrediction = getFixedIncomeSecurity();
|
||||
|
||||
fixedIncomeSecurityImdg.insert(fixedIncomePrediction);
|
||||
fixedIncomePrediction.setFullName(fullName);
|
||||
fixedIncomePrediction.setLotSize(BigDecimal.valueOf(updateLotSize));
|
||||
final FixedIncomeSecurityUpdateRequest request = getFixedIncomeSecurityUpdateRequest(fixedIncomePrediction);
|
||||
Listing listingPrediction = new Listing();
|
||||
listingPrediction = listingBuilder.byFixedIncomeEquity(fixedIncomePrediction, listingPrediction);
|
||||
listingImdg.insert(listingPrediction);
|
||||
|
||||
//ACT
|
||||
String jsonString = getJsonStringForUPDATE(request, ID);
|
||||
|
||||
addRecordToKafka((MockConsumer) fixedIncomeSecurityService.getConsumer(), TOPIC, PARTITION, 0, jsonString);
|
||||
|
||||
//ASSERT
|
||||
waitingWhenAddedRecordAndCheckIt(ID, mockProducer, producerRecord);
|
||||
|
||||
FixedIncomeSecurity equityResult = fixedIncomeSecurityImdg.getSingleObjectBySQL(String.format("fullName = %s", fixedIncomePrediction.getFullName()));
|
||||
fixedIncomePrediction.setId(equityResult.getId());
|
||||
fixedIncomePrediction.setSecurityId(equityResult.getSecurityId());
|
||||
FIXED_INCOME_SECURITY_MATCHER.assertMatch(equityResult, fixedIncomePrediction);
|
||||
|
||||
Listing listingResult = listingImdg.getSingleObjectByFieldValues(Map.of("securityId", fixedIncomePrediction.getId()));
|
||||
listingPrediction.setId(listingResult.getId());
|
||||
listingPrediction.setSecurityId(listingResult.getSecurityId());
|
||||
LISTING_MATCHER.assertMatch(listingResult, listingPrediction);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -130,37 +130,37 @@ public class FixedIncomeSecurityServiceTest extends AbstractServiceTest{
|
|||
*/
|
||||
@Test
|
||||
public void deleteFixedIncome(){
|
||||
// clearAllInImdg(moneyMarketSecurityMap);
|
||||
// final String TOPIC = Consts.DESTINATION_FIXED_INCOME_SECURITY_DELETE;
|
||||
//
|
||||
// final EquitySecurity equityPrediction = getFixedIncomeSecurity();
|
||||
// equitySecurityImdg.insert(equityPrediction);
|
||||
// equityPrediction.setWorkflowStatus(ru.spcex.platform.enumeration.Status.Blocked.getKey());
|
||||
//
|
||||
// Listing listingPrediction = new Listing();
|
||||
// listingPrediction = listingBuilder.byUpdateEquity(equityPrediction, listingPrediction);
|
||||
// listingImdg.insert(listingPrediction);listingPrediction.setWorkflowStatus(ru.spcex.platform.enumeration.Status.Blocked.getKey());
|
||||
//
|
||||
// CommonDeleteRequest commonDeleteRequest = new CommonDeleteRequest();
|
||||
// commonDeleteRequest.setId(ID);
|
||||
//
|
||||
// //ACT
|
||||
// String jsonString = getJsonStringForDELETE(commonDeleteRequest, ID);
|
||||
//
|
||||
// addRecordToKafka((MockConsumer) equitySecurityService.getConsumer(), TOPIC, PARTITION, 0, jsonString);
|
||||
//
|
||||
// //ASSERT
|
||||
// waitingWhenAddedRecordAndCheckIt(ID, mockProducer, producerRecord);
|
||||
//
|
||||
// EquitySecurity equityResult = equitySecurityImdg.getSingleObjectBySQL(String.format("fullName = %s", equityPrediction.getFullName()));
|
||||
// equityPrediction.setId(equityResult.getId());
|
||||
// equityPrediction.setSecurityId(equityResult.getSecurityId());
|
||||
// FIXED_INCOME_SECURITY_MATCHER.assertMatch(equityResult, equityPrediction);
|
||||
//
|
||||
// Listing listingResult = listingImdg.getSingleObjectByFieldValues(Map.of("securityId", equityPrediction.getId()));
|
||||
// listingPrediction.setId(listingResult.getId());
|
||||
// listingPrediction.setSecurityId(listingResult.getSecurityId());
|
||||
// LISTING_MATCHER.assertMatch(listingResult, listingPrediction);
|
||||
clearAllInImdg(moneyMarketSecurityMap);
|
||||
final String TOPIC = Consts.DESTINATION_FIXED_INCOME_SECURITY_DELETE;
|
||||
|
||||
final FixedIncomeSecurity fixedIncomePrediction = getFixedIncomeSecurity();
|
||||
fixedIncomeSecurityImdg.insert(fixedIncomePrediction);
|
||||
fixedIncomePrediction.setWorkflowStatus(ru.spcex.platform.enumeration.Status.Blocked.getKey());
|
||||
|
||||
Listing listingPrediction = new Listing();
|
||||
listingPrediction = listingBuilder.byFixedIncomeEquity(fixedIncomePrediction, listingPrediction);
|
||||
listingImdg.insert(listingPrediction);listingPrediction.setWorkflowStatus(ru.spcex.platform.enumeration.Status.Blocked.getKey());
|
||||
|
||||
CommonDeleteRequest commonDeleteRequest = new CommonDeleteRequest();
|
||||
commonDeleteRequest.setId(ID);
|
||||
|
||||
//ACT
|
||||
String jsonString = getJsonStringForDELETE(commonDeleteRequest, ID);
|
||||
|
||||
addRecordToKafka((MockConsumer) fixedIncomeSecurityService.getConsumer(), TOPIC, PARTITION, 0, jsonString);
|
||||
|
||||
//ASSERT
|
||||
waitingWhenAddedRecordAndCheckIt(ID, mockProducer, producerRecord);
|
||||
|
||||
FixedIncomeSecurity equityResult = fixedIncomeSecurityImdg.getSingleObjectBySQL(String.format("fullName = %s", fixedIncomePrediction.getFullName()));
|
||||
fixedIncomePrediction.setId(equityResult.getId());
|
||||
fixedIncomePrediction.setSecurityId(equityResult.getSecurityId());
|
||||
FIXED_INCOME_SECURITY_MATCHER.assertMatch(equityResult, fixedIncomePrediction);
|
||||
|
||||
Listing listingResult = listingImdg.getSingleObjectByFieldValues(Map.of("securityId", fixedIncomePrediction.getId()));
|
||||
listingPrediction.setId(listingResult.getId());
|
||||
listingPrediction.setSecurityId(listingResult.getSecurityId());
|
||||
LISTING_MATCHER.assertMatch(listingResult, listingPrediction);
|
||||
}
|
||||
|
||||
private FixedIncomeSecurity getFixedIncomeSecurity(){
|
||||
|
|
@ -170,58 +170,63 @@ public class FixedIncomeSecurityServiceTest extends AbstractServiceTest{
|
|||
fixedIncome.setShortName("ShortNameNewEquity");
|
||||
fixedIncome.setFullName("FullNameNewEquity");
|
||||
fixedIncome.setIsin("Isin");
|
||||
fixedIncome.setBondType("BondType");
|
||||
fixedIncome.setBondType(bondType);
|
||||
fixedIncome.setLotSize(BigDecimal.valueOf(18.0d));
|
||||
fixedIncome.setNominalValue(BigDecimal.valueOf(18.0d));
|
||||
fixedIncome.setNominalCurrency("NominalCurrency");
|
||||
fixedIncome.setNominalCurrency(currencyCode);
|
||||
fixedIncome.setMaturityDate(LocalDate.now());
|
||||
fixedIncome.setCoupon(BigDecimal.valueOf(18.0d));
|
||||
fixedIncome.setCouponFrequency(9L);
|
||||
fixedIncome.setIssuerId(11L);
|
||||
fixedIncome.setIssuerId(issuerId);
|
||||
fixedIncome.setShortNameEng("ShortNameNewEquity");
|
||||
fixedIncome.setFullNameEng("FullNameNewEquity");
|
||||
fixedIncome.setWorkflowStatus(ru.spcex.platform.enumeration.Status.Active.getKey());
|
||||
fixedIncome.setInstrumentType("BOND");
|
||||
fixedIncome.setInstrumentType(BOND);
|
||||
fixedIncome.setSecurityId(fixedIncome.getId());
|
||||
|
||||
return fixedIncome;
|
||||
}
|
||||
|
||||
private FixedIncomeSecurityNewRequest getFixedIncomeSecurityNewRequest(FixedIncomeSecurity fixedIncomeSecurity){
|
||||
FixedIncomeSecurityNewRequest equitySecurityNewRequest = new FixedIncomeSecurityNewRequest();
|
||||
equitySecurityNewRequest.setSecuritySymbol(fixedIncomeSecurity.getSecuritySymbol());
|
||||
equitySecurityNewRequest.setShortName(fixedIncomeSecurity.getShortName());
|
||||
equitySecurityNewRequest.setFullName(fixedIncomeSecurity.getFullName());
|
||||
equitySecurityNewRequest.setIsin(fixedIncomeSecurity.getIsin());
|
||||
equitySecurityNewRequest.setBondType(fixedIncomeSecurity.getBondType());
|
||||
equitySecurityNewRequest.setLotSize(fixedIncomeSecurity.getLotSize().doubleValue());
|
||||
equitySecurityNewRequest.setNominalValue(fixedIncomeSecurity.getNominalValue().doubleValue());
|
||||
equitySecurityNewRequest.setNominalCurrency(fixedIncomeSecurity.getNominalCurrency());
|
||||
equitySecurityNewRequest.setMaturityDate(fixedIncomeSecurity.getMaturityDate());
|
||||
equitySecurityNewRequest.setCoupon(fixedIncomeSecurity.getCoupon().doubleValue());
|
||||
equitySecurityNewRequest.setCouponFrequency(9L);
|
||||
equitySecurityNewRequest.setIssuerId(fixedIncomeSecurity.getIssuerId());
|
||||
equitySecurityNewRequest.setShortNameEng(fixedIncomeSecurity.getShortNameEng());
|
||||
equitySecurityNewRequest.setFullNameEng(fixedIncomeSecurity.getFullNameEng());
|
||||
equitySecurityNewRequest.setWorkflowStatus(fixedIncomeSecurity.getWorkflowStatus());
|
||||
equitySecurityNewRequest.setInstrumentType(fixedIncomeSecurity.getInstrumentType());
|
||||
return equitySecurityNewRequest;
|
||||
FixedIncomeSecurityNewRequest fixedIncomeSecurityNewRequest = new FixedIncomeSecurityNewRequest();
|
||||
fixedIncomeSecurityNewRequest.setSecuritySymbol(fixedIncomeSecurity.getSecuritySymbol());
|
||||
fixedIncomeSecurityNewRequest.setShortName(fixedIncomeSecurity.getShortName());
|
||||
fixedIncomeSecurityNewRequest.setFullName(fixedIncomeSecurity.getFullName());
|
||||
fixedIncomeSecurityNewRequest.setIsin(fixedIncomeSecurity.getIsin());
|
||||
fixedIncomeSecurityNewRequest.setBondType(fixedIncomeSecurity.getBondType());
|
||||
fixedIncomeSecurityNewRequest.setLotSize(fixedIncomeSecurity.getLotSize().doubleValue());
|
||||
fixedIncomeSecurityNewRequest.setNominalValue(fixedIncomeSecurity.getNominalValue().doubleValue());
|
||||
fixedIncomeSecurityNewRequest.setNominalCurrency(fixedIncomeSecurity.getNominalCurrency());
|
||||
fixedIncomeSecurityNewRequest.setMaturityDate(fixedIncomeSecurity.getMaturityDate());
|
||||
fixedIncomeSecurityNewRequest.setCoupon(fixedIncomeSecurity.getCoupon().doubleValue());
|
||||
fixedIncomeSecurityNewRequest.setCouponFrequency(fixedIncomeSecurity.getCouponFrequency());
|
||||
fixedIncomeSecurityNewRequest.setIssuerId(fixedIncomeSecurity.getIssuerId());
|
||||
fixedIncomeSecurityNewRequest.setShortNameEng(fixedIncomeSecurity.getShortNameEng());
|
||||
fixedIncomeSecurityNewRequest.setFullNameEng(fixedIncomeSecurity.getFullNameEng());
|
||||
fixedIncomeSecurityNewRequest.setWorkflowStatus(fixedIncomeSecurity.getWorkflowStatus());
|
||||
fixedIncomeSecurityNewRequest.setInstrumentType(fixedIncomeSecurity.getInstrumentType());
|
||||
return fixedIncomeSecurityNewRequest;
|
||||
}
|
||||
|
||||
private EquitySecurityUpdateRequest getEquitySecurityUpdateRequest(EquitySecurity equitySecurity){
|
||||
EquitySecurityUpdateRequest equitySecurityUpdateRequest = new EquitySecurityUpdateRequest();
|
||||
equitySecurityUpdateRequest.setId(equitySecurity.getId());
|
||||
equitySecurityUpdateRequest.setSecuritySymbol(equitySecurity.getSecuritySymbol());
|
||||
equitySecurityUpdateRequest.setShortName(equitySecurity.getShortName());
|
||||
equitySecurityUpdateRequest.setFullName(equitySecurity.getFullName());
|
||||
equitySecurityUpdateRequest.setIsin(equitySecurity.getIsin());
|
||||
equitySecurityUpdateRequest.setShareType(equitySecurity.getShareType());
|
||||
equitySecurityUpdateRequest.setLotSize(equitySecurity.getLotSize().doubleValue());
|
||||
equitySecurityUpdateRequest.setIssuerId(equitySecurity.getIssuerId());
|
||||
equitySecurityUpdateRequest.setShortNameEng(equitySecurity.getShortNameEng());
|
||||
equitySecurityUpdateRequest.setFullNameEng(equitySecurity.getFullNameEng());
|
||||
equitySecurityUpdateRequest.setWorkflowStatus(equitySecurity.getWorkflowStatus());
|
||||
equitySecurityUpdateRequest.setInstrumentType(equitySecurity.getInstrumentType());
|
||||
private FixedIncomeSecurityUpdateRequest getFixedIncomeSecurityUpdateRequest(FixedIncomeSecurity fixedIncomeSecurity){
|
||||
FixedIncomeSecurityUpdateRequest equitySecurityUpdateRequest = new FixedIncomeSecurityUpdateRequest();
|
||||
equitySecurityUpdateRequest.setId(fixedIncomeSecurity.getId());
|
||||
equitySecurityUpdateRequest.setSecuritySymbol(fixedIncomeSecurity.getSecuritySymbol());
|
||||
equitySecurityUpdateRequest.setShortName(fixedIncomeSecurity.getShortName());
|
||||
equitySecurityUpdateRequest.setFullName(fixedIncomeSecurity.getFullName());
|
||||
equitySecurityUpdateRequest.setIsin(fixedIncomeSecurity.getIsin());
|
||||
equitySecurityUpdateRequest.setBondType(fixedIncomeSecurity.getBondType());
|
||||
equitySecurityUpdateRequest.setLotSize(fixedIncomeSecurity.getLotSize().doubleValue());
|
||||
equitySecurityUpdateRequest.setNominalValue(fixedIncomeSecurity.getNominalValue().doubleValue());
|
||||
equitySecurityUpdateRequest.setNominalCurrency(fixedIncomeSecurity.getNominalCurrency());
|
||||
equitySecurityUpdateRequest.setMaturityDate(fixedIncomeSecurity.getMaturityDate());
|
||||
equitySecurityUpdateRequest.setCoupon(fixedIncomeSecurity.getCoupon().doubleValue());
|
||||
equitySecurityUpdateRequest.setCouponFrequency(fixedIncomeSecurity.getCouponFrequency());
|
||||
equitySecurityUpdateRequest.setIssuerId(fixedIncomeSecurity.getIssuerId());
|
||||
equitySecurityUpdateRequest.setShortNameEng(fixedIncomeSecurity.getShortNameEng());
|
||||
equitySecurityUpdateRequest.setFullNameEng(fixedIncomeSecurity.getFullNameEng());
|
||||
equitySecurityUpdateRequest.setWorkflowStatus(fixedIncomeSecurity.getWorkflowStatus());
|
||||
equitySecurityUpdateRequest.setInstrumentType(fixedIncomeSecurity.getInstrumentType());
|
||||
return equitySecurityUpdateRequest;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,9 +8,11 @@ import ru.spcex.clearing.platform.messaging.domain.cud.securitites.MoneyMarketSe
|
|||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
|
||||
import static ru.spcex.clearing.securities.service.AbstractServiceTest.*;
|
||||
|
||||
|
||||
class MoneyMarketSecurityFactory {
|
||||
private String nominalCurrency = "RUB"; // (linked to currencyCode)
|
||||
private String nominalCurrency = currencyCode; // (linked to currencyCode)
|
||||
private Long id = 0L;
|
||||
private Long securityId = 0L;// (linked to security)
|
||||
private String description = "tsetse";
|
||||
|
|
@ -18,11 +20,12 @@ class MoneyMarketSecurityFactory {
|
|||
private LocalDate startDate = LocalDate.ofEpochDay(0);
|
||||
private LocalDate endDate = LocalDate.now();
|
||||
private BigDecimal nominalValue = BigDecimal.valueOf(1.0);
|
||||
private String instrumentType = "RATE"; // (linked to instrumentType)
|
||||
private String instrumentType = RATE; // (linked to instrumentType)
|
||||
private String fullName = "estat";
|
||||
private String shortName = "esasdftat";
|
||||
private String securitySymbol = "sdfafd";
|
||||
private String termType = "termType";
|
||||
private String istin = "istin";
|
||||
private String termType = AbstractServiceTest.termType;
|
||||
|
||||
public String getFullName() {
|
||||
return fullName;
|
||||
|
|
@ -88,7 +91,6 @@ class MoneyMarketSecurityFactory {
|
|||
|
||||
moneyMarketSecurity.setId(id);
|
||||
moneyMarketSecurity.setSecurityId(securityId);
|
||||
moneyMarketSecurity.setDescription(description);
|
||||
moneyMarketSecurity.setStartDate(startDate);
|
||||
moneyMarketSecurity.setEndDate(endDate);
|
||||
moneyMarketSecurity.setNominalValue(nominalValue);
|
||||
|
|
@ -96,7 +98,11 @@ class MoneyMarketSecurityFactory {
|
|||
moneyMarketSecurity.setInstrumentType(instrumentType);
|
||||
moneyMarketSecurity.setFullName(fullName);
|
||||
moneyMarketSecurity.setShortName(shortName);
|
||||
moneyMarketSecurity.setShortNameEng(shortName);
|
||||
moneyMarketSecurity.setFullNameEng(fullName);
|
||||
moneyMarketSecurity.setIsin(istin);
|
||||
moneyMarketSecurity.setTermType(termType);
|
||||
moneyMarketSecurity.setIssuerId(issuerId);
|
||||
moneyMarketSecurity.setDescription(description);
|
||||
moneyMarketSecurity.setLotSize(BigDecimal.valueOf(lotSize));
|
||||
moneyMarketSecurity.setSecuritySymbol(securitySymbol);
|
||||
|
|
@ -118,9 +124,14 @@ class MoneyMarketSecurityFactory {
|
|||
moneyMarketSecurityUpdateRequest.setInstrumentType(instrumentType);
|
||||
moneyMarketSecurityUpdateRequest.setFullName(fullName);
|
||||
moneyMarketSecurityUpdateRequest.setShortName(shortName);
|
||||
moneyMarketSecurityUpdateRequest.setShortNameEng(shortName);
|
||||
moneyMarketSecurityUpdateRequest.setFullNameEng(fullName);
|
||||
moneyMarketSecurityUpdateRequest.setIsin(istin);
|
||||
moneyMarketSecurityUpdateRequest.setTermType(termType);
|
||||
moneyMarketSecurityUpdateRequest.setIssuerId(issuerId);
|
||||
moneyMarketSecurityUpdateRequest.setDescription(description);
|
||||
moneyMarketSecurityUpdateRequest.setSecuritySymbol(securitySymbol);
|
||||
moneyMarketSecurityUpdateRequest.setWorkflowStatus(ru.spcex.platform.enumeration.Status.Active.getKey());
|
||||
|
||||
return moneyMarketSecurityUpdateRequest;
|
||||
}
|
||||
|
|
@ -142,9 +153,15 @@ class MoneyMarketSecurityFactory {
|
|||
keyRequest.setInstrumentType(instrumentType);
|
||||
keyRequest.setFullName(fullName);
|
||||
keyRequest.setShortName(shortName);
|
||||
keyRequest.setShortNameEng(shortName);
|
||||
keyRequest.setFullNameEng(fullName);
|
||||
keyRequest.setTermType(termType);
|
||||
keyRequest.setIssuerId(issuerId);
|
||||
keyRequest.setIsin(istin);
|
||||
keyRequest.setDescription(description);
|
||||
keyRequest.setSecuritySymbol(securitySymbol);
|
||||
keyRequest.setWorkflowStatus(ru.spcex.platform.enumeration.Status.Active.getKey());
|
||||
|
||||
|
||||
return keyRequest;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -141,16 +141,17 @@ public class MoneyMarketSecurityServiceTest extends AbstractServiceTest{
|
|||
clearAllInImdg(moneyMarketSecurityMap);
|
||||
final String TOPIC = Consts.DESTINATION_MONEY_MARKET_SECURITY_UPDATE;
|
||||
String updateTermType = "updateTermType";
|
||||
Double updateLotSize = 12.0;
|
||||
Double updateLotSize = 112.0;
|
||||
|
||||
final MoneyMarketSecurity moneyMarketSecurityPrediction = moneyMarketSecurityFactory
|
||||
.getMoneyMarketSecurity();
|
||||
moneyMarketSecurityMap.insert(moneyMarketSecurityPrediction);
|
||||
moneyMarketSecurityPrediction.setTermType(updateTermType);
|
||||
moneyMarketSecurityMap.insert(moneyMarketSecurityPrediction);
|
||||
moneyMarketSecurityPrediction.setTermType(termType);
|
||||
moneyMarketSecurityPrediction.setLotSize(BigDecimal.valueOf(updateLotSize));
|
||||
final MoneyMarketSecurityUpdateRequest keyRequest = moneyMarketSecurityFactory
|
||||
.getMoneyMarketSecurityUpdateRequest();
|
||||
keyRequest.setTermType(updateTermType);
|
||||
keyRequest.setTermType(termType);
|
||||
keyRequest.setLotSize(updateLotSize);
|
||||
Listing listingPrediction = new Listing();
|
||||
listingPrediction = listingBuilder.byUpdateMms(moneyMarketSecurityPrediction, listingPrediction);
|
||||
|
|
|
|||
|
|
@ -13,6 +13,10 @@ public interface Consts {
|
|||
String DESTINATION_FIXED_INCOME_SECURITY_UPDATE = "fixed-income-security-update";
|
||||
String DESTINATION_FIXED_INCOME_SECURITY_DELETE = "fixed-income-security-delete";
|
||||
|
||||
String DESTINATION_СURRENCY_NEW = "currency-new";
|
||||
String DESTINATION_СURRENCY_UPDATE = "currency-update";
|
||||
String DESTINATION_СURRENCY_DELETE = "currency-delete";
|
||||
|
||||
String DESTINATION_KEY_RATE_NEW = "key-rate-new";
|
||||
String DESTINATION_KEY_RATE_UPDATE = "key-rate-update";
|
||||
String DESTINATION_KEY_RATE_DELETE = "key-rate-delete";
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue