diff --git a/clearing-parent/securities-service/pom.xml b/clearing-parent/securities-service/pom.xml
index 742105bf4..63e85f10a 100644
--- a/clearing-parent/securities-service/pom.xml
+++ b/clearing-parent/securities-service/pom.xml
@@ -77,6 +77,23 @@
${project.artifactId}
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 2.21.0
+
+
+ org.junit.platform
+ junit-platform-surefire-provider
+ 1.2.0-M1
+
+
+ org.junit.jupiter
+ junit-jupiter-engine
+ 5.2.0-M1
+
+
+
diff --git a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/component/ListingBuilder.java b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/component/ListingBuilder.java
index d8cec1b88..376c068d2 100644
--- a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/component/ListingBuilder.java
+++ b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/component/ListingBuilder.java
@@ -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;
+ }
}
diff --git a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/cud/EquitySecurityService.java b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/cud/EquitySecurityService.java
index 4744748b9..e7accd308 100644
--- a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/cud/EquitySecurityService.java
+++ b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/cud/EquitySecurityService.java
@@ -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);
diff --git a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/cud/FixedIncomeSecurityService.java b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/cud/FixedIncomeSecurityService.java
index bb5b8af08..aa6c36cee 100644
--- a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/cud/FixedIncomeSecurityService.java
+++ b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/cud/FixedIncomeSecurityService.java
@@ -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();
diff --git a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/cud/MoneyMarketSecurityService.java b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/cud/MoneyMarketSecurityService.java
index 493124d92..383610af8 100644
--- a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/cud/MoneyMarketSecurityService.java
+++ b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/cud/MoneyMarketSecurityService.java
@@ -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 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()));
diff --git a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/cud/СurrencyService.java b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/cud/СurrencyService.java
new file mode 100644
index 000000000..779b46eca
--- /dev/null
+++ b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/cud/СurrencyService.java
@@ -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 equitySecurityImdg;
+ private final Imdg 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 kafkaQueue,
+ Producer 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 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 equityImdg = transaction.getImdg(IMDGDistributedNames.Map_EquitySecurity, EquitySecurity.class);
+ Imdg 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 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 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;
+ }
+}
diff --git a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/ValidationProvider.java b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/ValidationProvider.java
index 40371d3a4..ae176fd6a 100644
--- a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/ValidationProvider.java
+++ b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/ValidationProvider.java
@@ -21,12 +21,26 @@ public class ValidationProvider {
private final Imdg mmsMap;
private final Imdg equityMap;
private final Imdg fixedIncomeMap;
+ private final Imdg instrumentTypeDictionaryImdg;
+ private final Imdg workflowStatusDictionaryImdg;
+ private final Imdg termTypeDictionaryImdg;
+ private final Imdg currencyCodeDictionaryImdg;
+ private final Imdg shareTypeDictionaryImdg;
+ private final Imdg bondTypeDictionaryImdg;
+ private final Imdg 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 mmsNewValidator() {
@@ -34,11 +48,21 @@ public class ValidationProvider {
ImdgValidationContext 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 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 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 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 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 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 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"),
diff --git a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/rule/HaveValidCodeByDictionary.java b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/rule/HaveValidCodeByDictionary.java
new file mode 100644
index 000000000..5ec7f2ec6
--- /dev/null
+++ b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/rule/HaveValidCodeByDictionary.java
@@ -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 implements IValidationRule> {
+ String mapName;
+ String errArg;
+ Function codeGetter;
+ public HaveValidCodeByDictionary(String mapName, Function codeGetter, String errArg) {
+ this.mapName = mapName;
+ this.codeGetter = codeGetter;
+ this.errArg = errArg;
+ }
+ @Override
+ public Optional validate(ImdgValidationContext context) {
+ R validatedObject = context.getValidatedObject();
+ String code = codeGetter.apply(validatedObject);
+ if(!StringUtils.hasText(code)) {
+ return of(SecuritiesError.RequiredFieldIsEmpty, errArg);
+ }
+ Imdg imdgDictionary = context.obtainMap(mapName, SpcexObjectBase.class);
+ SpcexObjectBase dictionary = imdgDictionary.getSingleObjectByFieldValues(Map.of(
+ "code", code));
+ if (dictionary == null) {
+ return of(SecuritiesError.WrongFieldValue, errArg);
+ }
+ return empty();
+ }
+}
diff --git a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/rule/HaveValidCompanyId.java b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/rule/HaveValidCompanyId.java
new file mode 100644
index 000000000..914fa2903
--- /dev/null
+++ b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/rule/HaveValidCompanyId.java
@@ -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 implements IValidationRule> {
+ Function idGetter;
+ String errArg;
+ public HaveValidCompanyId(Function idGetter, String errArg) {
+ this.idGetter = idGetter;
+ this.errArg = errArg;
+ }
+ @Override
+ public Optional validate(ImdgValidationContext context) {
+ R validatedObject = context.getValidatedObject();
+ Long id = idGetter.apply(validatedObject);
+ if(id == null) {
+ return of(SecuritiesError.RequiredFieldIsEmpty, errArg);
+ }
+ Imdg imdgDictionary = context.obtainMap(IMDGDistributedNames.Map_Company, SpcexObjectBase.class);
+ SpcexObjectBase dictionary = imdgDictionary.getSingleObjectByID(id);
+ if (dictionary == null) {
+ return of(SecuritiesError.WrongFieldValue, errArg);
+ }
+ return empty();
+ }
+}
diff --git a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/rule/IsValidInstrumentTypeFromRequest.java b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/rule/IsValidInstrumentTypeFromRequest.java
index a051e0916..76aa065ba 100644
--- a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/rule/IsValidInstrumentTypeFromRequest.java
+++ b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/rule/IsValidInstrumentTypeFromRequest.java
@@ -17,15 +17,15 @@ public class IsValidInstrumentTypeFromRequest implements IValidationRule validate(ImdgValidationContext 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();
}
}
diff --git a/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/AbstractServiceTest.java b/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/AbstractServiceTest.java
index 391580ce8..86bc623f9 100644
--- a/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/AbstractServiceTest.java
+++ b/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/AbstractServiceTest.java
@@ -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 listingImdg;
protected Imdg equitySecurityImdg;
protected Imdg fixedIncomeSecurityImdg;
+ protected Imdg instrumentTypeDictionaryImdg;
+ protected Imdg workflowStatusDictionaryImdg;
+ protected Imdg termTypeDictionaryImdg;
+ protected Imdg currencyCodeDictionaryImdg;
+ protected Imdg shareTypeDictionaryImdg;
+ protected Imdg bondTypeDictionaryImdg;
+ protected Imdg 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;
@@ -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());
}
diff --git a/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/EquitySecurityServiceTest.java b/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/EquitySecurityServiceTest.java
index 960212afc..d34e89aff 100644
--- a/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/EquitySecurityServiceTest.java
+++ b/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/EquitySecurityServiceTest.java
@@ -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;
}
diff --git a/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/FixedIncomeSecurityServiceTest.java b/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/FixedIncomeSecurityServiceTest.java
index 9e19f531e..92ae716b9 100644
--- a/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/FixedIncomeSecurityServiceTest.java
+++ b/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/FixedIncomeSecurityServiceTest.java
@@ -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;
}
}
diff --git a/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/MoneyMarketSecurityFactory.java b/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/MoneyMarketSecurityFactory.java
index fd66d5950..0ccfd0d7e 100644
--- a/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/MoneyMarketSecurityFactory.java
+++ b/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/MoneyMarketSecurityFactory.java
@@ -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;
}
diff --git a/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/MoneyMarketSecurityServiceTest.java b/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/MoneyMarketSecurityServiceTest.java
index 2f95ecb3e..5331b7e6f 100644
--- a/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/MoneyMarketSecurityServiceTest.java
+++ b/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/MoneyMarketSecurityServiceTest.java
@@ -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);
diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/Consts.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/Consts.java
index 5ee689fce..b4392e713 100644
--- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/Consts.java
+++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/Consts.java
@@ -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";