http://jira.mfd.msk:8088/browse/CLS-271 TradingClearingRegistryServiceTest
This commit is contained in:
parent
9d1a378447
commit
3195081661
8 changed files with 313 additions and 46 deletions
|
|
@ -10,7 +10,7 @@ import ru.spcex.clearing.account.errors.AccountError;
|
||||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.cud.account.CorrespondentAccountNewRequest;
|
import ru.spcex.clearing.platform.messaging.domain.cud.account.CorrespondentAccountNewRequest;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.cud.account.CorrespondentAccountUpdateRequest;
|
import ru.spcex.clearing.platform.messaging.domain.cud.account.CorrespondentAccountUpdateRequest;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest;
|
import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonIdRequest;
|
||||||
import ru.spcex.clearing.validation.common.rules.DictionaryPresentRule;
|
import ru.spcex.clearing.validation.common.rules.DictionaryPresentRule;
|
||||||
import ru.spcex.clearing.validation.common.rules.FieldRequiredRule;
|
import ru.spcex.clearing.validation.common.rules.FieldRequiredRule;
|
||||||
import ru.spcex.clearing.validation.common.rules.IdPresentRule;
|
import ru.spcex.clearing.validation.common.rules.IdPresentRule;
|
||||||
|
|
@ -153,17 +153,17 @@ public class AccountValidationConfig {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean("correspondentAccountBlockRequestValidator")
|
@Bean("correspondentAccountBlockRequestValidator")
|
||||||
public Function<CommonDeleteRequest, IValidator> correspondentAccountBlockRequestValidator(
|
public Function<CommonIdRequest, IValidator> correspondentAccountBlockRequestValidator(
|
||||||
Map<String, Imdg<? extends SpcexObjectBase>> imdgForValidation
|
Map<String, Imdg<? extends SpcexObjectBase>> imdgForValidation
|
||||||
) {
|
) {
|
||||||
return correspondentAccountBlockRequest -> {
|
return correspondentAccountBlockRequest -> {
|
||||||
ImdgValidationContext<CommonDeleteRequest> context = new ImdgValidationContext<>();
|
ImdgValidationContext<CommonIdRequest> context = new ImdgValidationContext<>();
|
||||||
context.setValidatedObject(correspondentAccountBlockRequest);
|
context.setValidatedObject(correspondentAccountBlockRequest);
|
||||||
Consumer<String> addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s));
|
Consumer<String> addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s));
|
||||||
addImdg.accept(IMDGDistributedNames.Map_Account);
|
addImdg.accept(IMDGDistributedNames.Map_Account);
|
||||||
return new ValidatorImpl<>(context,
|
return new ValidatorImpl<>(context,
|
||||||
IdPresentRule.instance("id",
|
IdPresentRule.instance("id",
|
||||||
CommonDeleteRequest::getId,
|
CommonIdRequest::getId,
|
||||||
IMDGDistributedNames.Map_Account,
|
IMDGDistributedNames.Map_Account,
|
||||||
Account.class,
|
Account.class,
|
||||||
AccountError.RequiredFieldEmpty,
|
AccountError.RequiredFieldEmpty,
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ import ru.spcex.clearing.account.errors.AccountError;
|
||||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.cud.account.BankAccountNewRequest;
|
import ru.spcex.clearing.platform.messaging.domain.cud.account.BankAccountNewRequest;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.cud.account.BankAccountUpdateRequest;
|
import ru.spcex.clearing.platform.messaging.domain.cud.account.BankAccountUpdateRequest;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest;
|
import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonIdRequest;
|
||||||
import ru.spcex.clearing.validation.common.rules.DictionaryPresentRule;
|
import ru.spcex.clearing.validation.common.rules.DictionaryPresentRule;
|
||||||
import ru.spcex.clearing.validation.common.rules.FieldRequiredRule;
|
import ru.spcex.clearing.validation.common.rules.FieldRequiredRule;
|
||||||
import ru.spcex.clearing.validation.common.rules.IdPresentRule;
|
import ru.spcex.clearing.validation.common.rules.IdPresentRule;
|
||||||
|
|
@ -132,18 +132,18 @@ public class BankAccountValidationConfig {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean("bankAccountBlockRequestValidator")
|
@Bean("bankAccountBlockRequestValidator")
|
||||||
public Function<CommonDeleteRequest, IValidator> bankAccountBlockRequestValidator(
|
public Function<CommonIdRequest, IValidator> bankAccountBlockRequestValidator(
|
||||||
Map<String, Imdg<? extends SpcexObjectBase>> imdgForValidation
|
Map<String, Imdg<? extends SpcexObjectBase>> imdgForValidation
|
||||||
) {
|
) {
|
||||||
return bankAccountBlockRequest -> {
|
return bankAccountBlockRequest -> {
|
||||||
ImdgValidationContext<CommonDeleteRequest> context = new ImdgValidationContext<>();
|
ImdgValidationContext<CommonIdRequest> context = new ImdgValidationContext<>();
|
||||||
context.setValidatedObject(bankAccountBlockRequest);
|
context.setValidatedObject(bankAccountBlockRequest);
|
||||||
Consumer<String> addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s));
|
Consumer<String> addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s));
|
||||||
addImdg.accept(IMDGDistributedNames.Map_BankAccount);
|
addImdg.accept(IMDGDistributedNames.Map_BankAccount);
|
||||||
addImdg.accept(IMDGDistributedNames.Map_Account);
|
addImdg.accept(IMDGDistributedNames.Map_Account);
|
||||||
return new ValidatorImpl<>(context,
|
return new ValidatorImpl<>(context,
|
||||||
IdPresentRule.instance("id",
|
IdPresentRule.instance("id",
|
||||||
CommonDeleteRequest::getId,
|
CommonIdRequest::getId,
|
||||||
IMDGDistributedNames.Map_BankAccount,
|
IMDGDistributedNames.Map_BankAccount,
|
||||||
BankAccount.class,
|
BankAccount.class,
|
||||||
AccountError.RequiredFieldEmpty,
|
AccountError.RequiredFieldEmpty,
|
||||||
|
|
|
||||||
|
|
@ -2,13 +2,14 @@ package ru.spcex.clearing.account.config.validation;
|
||||||
|
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import ru.clearing.classes.statics.data.account.Account;
|
import ru.clearing.classes.statics.data.account.ClearingAccount;
|
||||||
|
import ru.clearing.classes.statics.data.account.DepoAccount;
|
||||||
import ru.clearing.classes.statics.data.company.Company;
|
import ru.clearing.classes.statics.data.company.Company;
|
||||||
import ru.clearing.classes.statics.data.registry.TradingClearingRegistry;
|
import ru.clearing.classes.statics.data.registry.TradingClearingRegistry;
|
||||||
import ru.clearing.platform.dictionary.ServiceStatusDictionary;
|
import ru.clearing.platform.dictionary.ServiceStatusDictionary;
|
||||||
import ru.spcex.clearing.account.errors.AccountError;
|
import ru.spcex.clearing.account.errors.AccountError;
|
||||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest;
|
import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonIdRequest;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.cud.registry.TradingClearingRegistryNewRequest;
|
import ru.spcex.clearing.platform.messaging.domain.cud.registry.TradingClearingRegistryNewRequest;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.cud.registry.TradingClearingRegistryUpdateRequest;
|
import ru.spcex.clearing.platform.messaging.domain.cud.registry.TradingClearingRegistryUpdateRequest;
|
||||||
import ru.spcex.clearing.validation.common.rules.DictionaryPresentRule;
|
import ru.spcex.clearing.validation.common.rules.DictionaryPresentRule;
|
||||||
|
|
@ -37,7 +38,8 @@ public class TradingClearingRegistryValidationConfig {
|
||||||
context.setValidatedObject(tradingClearingRegistryNewRequest);
|
context.setValidatedObject(tradingClearingRegistryNewRequest);
|
||||||
Consumer<String> addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s));
|
Consumer<String> addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s));
|
||||||
addImdg.accept(IMDGDistributedNames.Map_Company);
|
addImdg.accept(IMDGDistributedNames.Map_Company);
|
||||||
addImdg.accept(IMDGDistributedNames.Map_Account);
|
addImdg.accept(IMDGDistributedNames.Map_ClearingAccount);
|
||||||
|
addImdg.accept(IMDGDistributedNames.Map_DepoAccount);
|
||||||
addImdg.accept(IMDGDistributedNames.Map_ServiceStatusDictionary);
|
addImdg.accept(IMDGDistributedNames.Map_ServiceStatusDictionary);
|
||||||
return new ValidatorImpl<>(context,
|
return new ValidatorImpl<>(context,
|
||||||
IdPresentRule.instance("companyId",
|
IdPresentRule.instance("companyId",
|
||||||
|
|
@ -50,9 +52,11 @@ public class TradingClearingRegistryValidationConfig {
|
||||||
TradingClearingRegistryNewRequest::getMoneyAccountId,
|
TradingClearingRegistryNewRequest::getMoneyAccountId,
|
||||||
AccountError.RequiredFieldEmpty,
|
AccountError.RequiredFieldEmpty,
|
||||||
moneyAccountId -> {
|
moneyAccountId -> {
|
||||||
Imdg<Account> accountImdg = context.obtainMap(IMDGDistributedNames.Map_Account, Account.class);
|
Imdg<ClearingAccount> clearingAccountImdg = context.obtainMap(
|
||||||
Account account = accountImdg.getSingleObjectByID(moneyAccountId);
|
IMDGDistributedNames.Map_ClearingAccount, ClearingAccount.class
|
||||||
if (account == null) return AccountError.AccountNotFound;
|
);
|
||||||
|
ClearingAccount clearingAccount = clearingAccountImdg.getSingleObjectByID(moneyAccountId);
|
||||||
|
if (clearingAccount == null) return AccountError.AccountNotFound;
|
||||||
return null;
|
return null;
|
||||||
}),
|
}),
|
||||||
FieldRequiredRule.instance("depoAccountId",
|
FieldRequiredRule.instance("depoAccountId",
|
||||||
|
|
@ -60,9 +64,10 @@ public class TradingClearingRegistryValidationConfig {
|
||||||
AccountError.RequiredFieldEmpty,
|
AccountError.RequiredFieldEmpty,
|
||||||
false,
|
false,
|
||||||
depoAccountId -> {
|
depoAccountId -> {
|
||||||
Imdg<Account> accountImdg = context.obtainMap(IMDGDistributedNames.Map_Account, Account.class);
|
if (depoAccountId == null) return null;
|
||||||
Account account = accountImdg.getSingleObjectByID(depoAccountId);
|
Imdg<DepoAccount> depoAccountImdg = context.obtainMap(IMDGDistributedNames.Map_DepoAccount, DepoAccount.class);
|
||||||
if (account == null) return AccountError.AccountNotFound;
|
DepoAccount depoAccount = depoAccountImdg.getSingleObjectByID(depoAccountId);
|
||||||
|
if (depoAccount == null) return AccountError.AccountNotFound;
|
||||||
return null;
|
return null;
|
||||||
}),
|
}),
|
||||||
// todo на будущее: нужна ли эта проверка, если при добавлении регистра статус заполняется автоматически
|
// todo на будущее: нужна ли эта проверка, если при добавлении регистра статус заполняется автоматически
|
||||||
|
|
@ -112,17 +117,17 @@ public class TradingClearingRegistryValidationConfig {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean("tradingClearingRegistryBlockRequest")
|
@Bean("tradingClearingRegistryBlockRequest")
|
||||||
public Function<CommonDeleteRequest, IValidator> tradingClearingRegistryBlockRequestValidator(
|
public Function<CommonIdRequest, IValidator> tradingClearingRegistryBlockRequestValidator(
|
||||||
Map<String, Imdg<? extends SpcexObjectBase>> imdgForValidation
|
Map<String, Imdg<? extends SpcexObjectBase>> imdgForValidation
|
||||||
) {
|
) {
|
||||||
return tradingClearingRegistryBlockRequest -> {
|
return tradingClearingRegistryBlockRequest -> {
|
||||||
ImdgValidationContext<CommonDeleteRequest> context = new ImdgValidationContext<>();
|
ImdgValidationContext<CommonIdRequest> context = new ImdgValidationContext<>();
|
||||||
context.setValidatedObject(tradingClearingRegistryBlockRequest);
|
context.setValidatedObject(tradingClearingRegistryBlockRequest);
|
||||||
Consumer<String> addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s));
|
Consumer<String> addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s));
|
||||||
addImdg.accept(IMDGDistributedNames.Map_TradingClearingRegistry);
|
addImdg.accept(IMDGDistributedNames.Map_TradingClearingRegistry);
|
||||||
return new ValidatorImpl<>(context,
|
return new ValidatorImpl<>(context,
|
||||||
IdPresentRule.instance("id",
|
IdPresentRule.instance("id",
|
||||||
CommonDeleteRequest::getId,
|
CommonIdRequest::getId,
|
||||||
IMDGDistributedNames.Map_TradingClearingRegistry,
|
IMDGDistributedNames.Map_TradingClearingRegistry,
|
||||||
TradingClearingRegistry.class,
|
TradingClearingRegistry.class,
|
||||||
AccountError.RequiredFieldEmpty,
|
AccountError.RequiredFieldEmpty,
|
||||||
|
|
|
||||||
|
|
@ -3,12 +3,10 @@ package ru.spcex.clearing.account.config.validation;
|
||||||
|
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import ru.clearing.classes.statics.data.account.Account;
|
import ru.clearing.classes.statics.data.account.*;
|
||||||
import ru.clearing.classes.statics.data.account.BankAccount;
|
|
||||||
import ru.clearing.classes.statics.data.account.ClearingAccount;
|
|
||||||
import ru.clearing.classes.statics.data.account.InformationAccount;
|
|
||||||
import ru.clearing.classes.statics.data.company.ClearingMemberCategory;
|
import ru.clearing.classes.statics.data.company.ClearingMemberCategory;
|
||||||
import ru.clearing.classes.statics.data.company.Company;
|
import ru.clearing.classes.statics.data.company.Company;
|
||||||
|
import ru.clearing.classes.statics.data.registry.TradingClearingRegistry;
|
||||||
import ru.clearing.platform.dictionary.AccountTypeDictionary;
|
import ru.clearing.platform.dictionary.AccountTypeDictionary;
|
||||||
import ru.clearing.platform.dictionary.ClearingAccountTypeDictionary;
|
import ru.clearing.platform.dictionary.ClearingAccountTypeDictionary;
|
||||||
import ru.clearing.platform.dictionary.CurrencyCodeDictionary;
|
import ru.clearing.platform.dictionary.CurrencyCodeDictionary;
|
||||||
|
|
@ -41,7 +39,9 @@ public class ValidationConfig {
|
||||||
addImdg.accept(IMDGDistributedNames.Map_BankAccount, BankAccount.class);
|
addImdg.accept(IMDGDistributedNames.Map_BankAccount, BankAccount.class);
|
||||||
addImdg.accept(IMDGDistributedNames.Map_CurrencyCodeDictionary, CurrencyCodeDictionary.class);
|
addImdg.accept(IMDGDistributedNames.Map_CurrencyCodeDictionary, CurrencyCodeDictionary.class);
|
||||||
addImdg.accept(IMDGDistributedNames.Map_ClearingAccount, ClearingAccount.class);
|
addImdg.accept(IMDGDistributedNames.Map_ClearingAccount, ClearingAccount.class);
|
||||||
|
addImdg.accept(IMDGDistributedNames.Map_DepoAccount, DepoAccount.class);
|
||||||
addImdg.accept(IMDGDistributedNames.Map_ServiceStatusDictionary, ServiceStatusDictionary.class);
|
addImdg.accept(IMDGDistributedNames.Map_ServiceStatusDictionary, ServiceStatusDictionary.class);
|
||||||
|
addImdg.accept(IMDGDistributedNames.Map_TradingClearingRegistry, TradingClearingRegistry.class);
|
||||||
|
|
||||||
return imdg;
|
return imdg;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ import ru.spcex.clearing.platform.messaging.domain.cud.account.sdf01.AccountSdf0
|
||||||
import ru.spcex.clearing.platform.messaging.domain.cud.account.sdf01.AccountSdfRequestPart;
|
import ru.spcex.clearing.platform.messaging.domain.cud.account.sdf01.AccountSdfRequestPart;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.cud.balance.AccountSdfToStatementRequestPart;
|
import ru.spcex.clearing.platform.messaging.domain.cud.balance.AccountSdfToStatementRequestPart;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.cud.balance.StatementRequest;
|
import ru.spcex.clearing.platform.messaging.domain.cud.balance.StatementRequest;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest;
|
import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonIdRequest;
|
||||||
import ru.spcex.clearing.platform.messaging.service.QueueConsumer;
|
import ru.spcex.clearing.platform.messaging.service.QueueConsumer;
|
||||||
import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate;
|
import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate;
|
||||||
import ru.spcex.clearing.platform.messaging.service.Status;
|
import ru.spcex.clearing.platform.messaging.service.Status;
|
||||||
|
|
@ -57,7 +57,7 @@ public class AccountService extends QueueConsumer implements InitializingBean {
|
||||||
private final ValidationHelper validationHelper;
|
private final ValidationHelper validationHelper;
|
||||||
private final Function<CorrespondentAccountNewRequest, IValidator> accountNewRequestValidator;
|
private final Function<CorrespondentAccountNewRequest, IValidator> accountNewRequestValidator;
|
||||||
private final Function<CorrespondentAccountUpdateRequest, IValidator> accountUpdateRequestValidator;
|
private final Function<CorrespondentAccountUpdateRequest, IValidator> accountUpdateRequestValidator;
|
||||||
private final Function<CommonDeleteRequest, IValidator> accountBlockRequestValidator;
|
private final Function<CommonIdRequest, IValidator> accountBlockRequestValidator;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
public AccountService(Consumer<String, Object> kafkaQueue,
|
public AccountService(Consumer<String, Object> kafkaQueue,
|
||||||
|
|
@ -72,7 +72,7 @@ public class AccountService extends QueueConsumer implements InitializingBean {
|
||||||
@Qualifier("correspondentAccountUpdateRequestValidator")
|
@Qualifier("correspondentAccountUpdateRequestValidator")
|
||||||
Function<CorrespondentAccountUpdateRequest, IValidator> accountUpdateRequestValidator,
|
Function<CorrespondentAccountUpdateRequest, IValidator> accountUpdateRequestValidator,
|
||||||
@Qualifier("correspondentAccountBlockRequestValidator")
|
@Qualifier("correspondentAccountBlockRequestValidator")
|
||||||
Function<CommonDeleteRequest, IValidator> accountBlockRequestValidator) {
|
Function<CommonIdRequest, IValidator> accountBlockRequestValidator) {
|
||||||
super(kafkaQueue, kafkaProducer);
|
super(kafkaQueue, kafkaProducer);
|
||||||
this.accountMap = imdgProvider.getImdg(
|
this.accountMap = imdgProvider.getImdg(
|
||||||
IMDGDistributedNames.Map_Account, Account.class
|
IMDGDistributedNames.Map_Account, Account.class
|
||||||
|
|
@ -103,7 +103,7 @@ public class AccountService extends QueueConsumer implements InitializingBean {
|
||||||
callback(CorrespondentAccountUpdateRequest.class)
|
callback(CorrespondentAccountUpdateRequest.class)
|
||||||
.setConsumer(this::correspondentAccountUpdate)
|
.setConsumer(this::correspondentAccountUpdate)
|
||||||
.forDestination(Consts.DESTINATION_CORRESPONDENT_ACCOUNT_UPDATE, callbacks::put);
|
.forDestination(Consts.DESTINATION_CORRESPONDENT_ACCOUNT_UPDATE, callbacks::put);
|
||||||
callback(CommonDeleteRequest.class)
|
callback(CommonIdRequest.class)
|
||||||
.setConsumer(this::correspondentAccountBlock)
|
.setConsumer(this::correspondentAccountBlock)
|
||||||
.forDestination(Consts.DESTINATION_CORRESPONDENT_ACCOUNT_BLOCK, callbacks::put);
|
.forDestination(Consts.DESTINATION_CORRESPONDENT_ACCOUNT_BLOCK, callbacks::put);
|
||||||
init();
|
init();
|
||||||
|
|
@ -161,7 +161,7 @@ public class AccountService extends QueueConsumer implements InitializingBean {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public RequestInfoUpdate correspondentAccountBlock(BaseRequest<CommonDeleteRequest> userRequest) {
|
public RequestInfoUpdate correspondentAccountBlock(BaseRequest<CommonIdRequest> userRequest) {
|
||||||
log.debug("AccountBlockRequest received");
|
log.debug("AccountBlockRequest received");
|
||||||
|
|
||||||
RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest);
|
RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest);
|
||||||
|
|
@ -170,7 +170,7 @@ public class AccountService extends QueueConsumer implements InitializingBean {
|
||||||
requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, accountBlockRequestValidator);
|
requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, accountBlockRequestValidator);
|
||||||
if (requestInfoUpdate != null) return requestInfoUpdate;
|
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||||
|
|
||||||
CommonDeleteRequest request = userRequest.getRequestPayload();
|
CommonIdRequest request = userRequest.getRequestPayload();
|
||||||
|
|
||||||
Account account = accountMap.getSingleObjectByID(request.getId());
|
Account account = accountMap.getSingleObjectByID(request.getId());
|
||||||
account.setStatus(ServiceStatus.Blocked.getKey());
|
account.setStatus(ServiceStatus.Blocked.getKey());
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ import ru.spcex.clearing.platform.messaging.domain.BaseRequest;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.Consts;
|
import ru.spcex.clearing.platform.messaging.domain.Consts;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.cud.account.BankAccountNewRequest;
|
import ru.spcex.clearing.platform.messaging.domain.cud.account.BankAccountNewRequest;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.cud.account.BankAccountUpdateRequest;
|
import ru.spcex.clearing.platform.messaging.domain.cud.account.BankAccountUpdateRequest;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest;
|
import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonIdRequest;
|
||||||
import ru.spcex.clearing.platform.messaging.service.QueueConsumer;
|
import ru.spcex.clearing.platform.messaging.service.QueueConsumer;
|
||||||
import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate;
|
import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate;
|
||||||
import ru.spcex.clearing.util.security.UserRoleVerification;
|
import ru.spcex.clearing.util.security.UserRoleVerification;
|
||||||
|
|
@ -44,7 +44,7 @@ public class BankAccountService extends QueueConsumer implements InitializingBea
|
||||||
|
|
||||||
private final Function<BankAccountNewRequest, IValidator> bankAccountNewRequestValidator;
|
private final Function<BankAccountNewRequest, IValidator> bankAccountNewRequestValidator;
|
||||||
private final Function<BankAccountUpdateRequest, IValidator> bankAccountUpdateRequestValidator;
|
private final Function<BankAccountUpdateRequest, IValidator> bankAccountUpdateRequestValidator;
|
||||||
private final Function<CommonDeleteRequest, IValidator> bankAccountBlockRequestValidator;
|
private final Function<CommonIdRequest, IValidator> bankAccountBlockRequestValidator;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
public BankAccountService(Consumer<String, Object> kafkaQueue,
|
public BankAccountService(Consumer<String, Object> kafkaQueue,
|
||||||
|
|
@ -58,7 +58,7 @@ public class BankAccountService extends QueueConsumer implements InitializingBea
|
||||||
@Qualifier("bankAccountUpdateRequestValidator")
|
@Qualifier("bankAccountUpdateRequestValidator")
|
||||||
Function<BankAccountUpdateRequest, IValidator> bankAccountUpdateRequestValidator,
|
Function<BankAccountUpdateRequest, IValidator> bankAccountUpdateRequestValidator,
|
||||||
@Qualifier("bankAccountBlockRequestValidator")
|
@Qualifier("bankAccountBlockRequestValidator")
|
||||||
Function<CommonDeleteRequest, IValidator> bankAccountBlockRequestValidator) {
|
Function<CommonIdRequest, IValidator> bankAccountBlockRequestValidator) {
|
||||||
super(kafkaQueue, kafkaProducer);
|
super(kafkaQueue, kafkaProducer);
|
||||||
this.bankAccountMap = imdgProvider.getImdg(IMDGDistributedNames.Map_BankAccount, BankAccount.class);
|
this.bankAccountMap = imdgProvider.getImdg(IMDGDistributedNames.Map_BankAccount, BankAccount.class);
|
||||||
this.accountMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Account, Account.class);
|
this.accountMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Account, Account.class);
|
||||||
|
|
@ -79,7 +79,7 @@ public class BankAccountService extends QueueConsumer implements InitializingBea
|
||||||
callback(BankAccountUpdateRequest.class)
|
callback(BankAccountUpdateRequest.class)
|
||||||
.setFunction(this::bankAccountUpdate)
|
.setFunction(this::bankAccountUpdate)
|
||||||
.forDestination(Consts.DESTINATION_BANK_ACCOUNT_UPDATE, callbacks::put);
|
.forDestination(Consts.DESTINATION_BANK_ACCOUNT_UPDATE, callbacks::put);
|
||||||
callback(CommonDeleteRequest.class)
|
callback(CommonIdRequest.class)
|
||||||
.setFunction(this::bankAccountBlock)
|
.setFunction(this::bankAccountBlock)
|
||||||
.forDestination(Consts.DESTINATION_BANK_ACCOUNT_BLOCK, callbacks::put);
|
.forDestination(Consts.DESTINATION_BANK_ACCOUNT_BLOCK, callbacks::put);
|
||||||
init();
|
init();
|
||||||
|
|
@ -194,8 +194,8 @@ public class BankAccountService extends QueueConsumer implements InitializingBea
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private RequestInfoUpdate bankAccountBlock(BaseRequest<CommonDeleteRequest> userRequest) {
|
private RequestInfoUpdate bankAccountBlock(BaseRequest<CommonIdRequest> userRequest) {
|
||||||
CommonDeleteRequest req = userRequest.getRequestPayload();
|
CommonIdRequest req = userRequest.getRequestPayload();
|
||||||
|
|
||||||
RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest);
|
RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest);
|
||||||
if (requestInfoUpdate != null) return requestInfoUpdate;
|
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||||
|
|
@ -203,7 +203,7 @@ public class BankAccountService extends QueueConsumer implements InitializingBea
|
||||||
requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, bankAccountBlockRequestValidator);
|
requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, bankAccountBlockRequestValidator);
|
||||||
if (requestInfoUpdate != null) return requestInfoUpdate;
|
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||||
|
|
||||||
log.debug("CommonDeleteRequest received id = {}", req.getId());
|
log.debug("CommonIdRequest received id = {}", req.getId());
|
||||||
BankAccount bankAccount = bankAccountMap.getSingleObjectByID(req.getId());
|
BankAccount bankAccount = bankAccountMap.getSingleObjectByID(req.getId());
|
||||||
|
|
||||||
Account account = accountMap.getSingleObjectByID(bankAccount.getAccountId());
|
Account account = accountMap.getSingleObjectByID(bankAccount.getAccountId());
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ import ru.spcex.clearing.account.errors.AccountError;
|
||||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.BaseRequest;
|
import ru.spcex.clearing.platform.messaging.domain.BaseRequest;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.Consts;
|
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.common.CommonIdRequest;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.cud.registry.TradingClearingRegistryNewRequest;
|
import ru.spcex.clearing.platform.messaging.domain.cud.registry.TradingClearingRegistryNewRequest;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.cud.registry.TradingClearingRegistryUpdateRequest;
|
import ru.spcex.clearing.platform.messaging.domain.cud.registry.TradingClearingRegistryUpdateRequest;
|
||||||
import ru.spcex.clearing.platform.messaging.service.QueueConsumer;
|
import ru.spcex.clearing.platform.messaging.service.QueueConsumer;
|
||||||
|
|
@ -52,7 +52,7 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini
|
||||||
|
|
||||||
private final Function<TradingClearingRegistryUpdateRequest, IValidator> tradingClearingRegistryUpdateRequestValidator;
|
private final Function<TradingClearingRegistryUpdateRequest, IValidator> tradingClearingRegistryUpdateRequestValidator;
|
||||||
private final Function<TradingClearingRegistryNewRequest, IValidator> tradingClearingRegistryNewRequestValidator;
|
private final Function<TradingClearingRegistryNewRequest, IValidator> tradingClearingRegistryNewRequestValidator;
|
||||||
private final Function<CommonDeleteRequest, IValidator> tradingClearingRegistryBlockRequestValidator;
|
private final Function<CommonIdRequest, IValidator> tradingClearingRegistryBlockRequestValidator;
|
||||||
|
|
||||||
private final IMessageResolver messageResolver;
|
private final IMessageResolver messageResolver;
|
||||||
|
|
||||||
|
|
@ -67,7 +67,7 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini
|
||||||
@Qualifier("tradingClearingRegistryUpdateRequest")
|
@Qualifier("tradingClearingRegistryUpdateRequest")
|
||||||
Function<TradingClearingRegistryUpdateRequest, IValidator> tradingClearingRegistryUpdateRequestValidator,
|
Function<TradingClearingRegistryUpdateRequest, IValidator> tradingClearingRegistryUpdateRequestValidator,
|
||||||
@Qualifier("tradingClearingRegistryBlockRequest")
|
@Qualifier("tradingClearingRegistryBlockRequest")
|
||||||
Function<CommonDeleteRequest, IValidator> tradingClearingRegistryBlockRequestValidator) {
|
Function<CommonIdRequest, IValidator> tradingClearingRegistryBlockRequestValidator) {
|
||||||
super(kafkaQueue, kafkaProducer);
|
super(kafkaQueue, kafkaProducer);
|
||||||
this.validationHelper = validationHelper;
|
this.validationHelper = validationHelper;
|
||||||
this.userRoleVerification = userRoleVerification;
|
this.userRoleVerification = userRoleVerification;
|
||||||
|
|
@ -93,13 +93,13 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini
|
||||||
callback(TradingClearingRegistryUpdateRequest.class)
|
callback(TradingClearingRegistryUpdateRequest.class)
|
||||||
.setConsumer(this::tradingClearingRegistryUpdate)
|
.setConsumer(this::tradingClearingRegistryUpdate)
|
||||||
.forDestination(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_UPDATE, callbacks::put);
|
.forDestination(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_UPDATE, callbacks::put);
|
||||||
callback(CommonDeleteRequest.class)
|
callback(CommonIdRequest.class)
|
||||||
.setConsumer(this::tradingClearingRegistryBlock)
|
.setConsumer(this::tradingClearingRegistryBlock)
|
||||||
.forDestination(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_BLOCK, callbacks::put);
|
.forDestination(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_BLOCK, callbacks::put);
|
||||||
}
|
}
|
||||||
|
|
||||||
public RequestInfoUpdate tradingClearingRegistryNew(BaseRequest<TradingClearingRegistryNewRequest> userRequest) {
|
public RequestInfoUpdate tradingClearingRegistryNew(BaseRequest<TradingClearingRegistryNewRequest> userRequest) {
|
||||||
log.debug("TradingClearingRegistryAutoNewRequest received");
|
log.debug("TradingClearingRegistryNewRequest received");
|
||||||
RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest);
|
RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest);
|
||||||
if (requestInfoUpdate != null) return requestInfoUpdate;
|
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||||
|
|
||||||
|
|
@ -123,7 +123,7 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini
|
||||||
|
|
||||||
List<String> activeStatuses = Arrays.asList(ServiceStatus.Active.getKey(), ServiceStatus.Reopened.getKey());
|
List<String> activeStatuses = Arrays.asList(ServiceStatus.Active.getKey(), ServiceStatus.Reopened.getKey());
|
||||||
String status = null;
|
String status = null;
|
||||||
if (depoAccountMain != null) {
|
if (depoAccountMain != null && depoAccountMain.getStatus() != null) {
|
||||||
if (activeStatuses.contains(depoAccountMain.getStatus()) && activeStatuses.contains(clearingAccountMain.getStatus()))
|
if (activeStatuses.contains(depoAccountMain.getStatus()) && activeStatuses.contains(clearingAccountMain.getStatus()))
|
||||||
status = ServiceStatus.Active.getKey();
|
status = ServiceStatus.Active.getKey();
|
||||||
if (depoAccountMain.getStatus().equals(ServiceStatus.Blocked.getKey()) || clearingAccountMain.getStatus().equals(ServiceStatus.Blocked.getKey()))
|
if (depoAccountMain.getStatus().equals(ServiceStatus.Blocked.getKey()) || clearingAccountMain.getStatus().equals(ServiceStatus.Blocked.getKey()))
|
||||||
|
|
@ -132,7 +132,7 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini
|
||||||
status = ServiceStatus.Suspended.getKey();
|
status = ServiceStatus.Suspended.getKey();
|
||||||
if (depoAccountMain.getStatus().equals(ServiceStatus.Closed.getKey()) || clearingAccountMain.getStatus().equals(ServiceStatus.Closed.getKey()))
|
if (depoAccountMain.getStatus().equals(ServiceStatus.Closed.getKey()) || clearingAccountMain.getStatus().equals(ServiceStatus.Closed.getKey()))
|
||||||
status = ServiceStatus.Closed.getKey();
|
status = ServiceStatus.Closed.getKey();
|
||||||
} else {
|
} else if (clearingAccountMain.getStatus() != null) {
|
||||||
if (activeStatuses.contains(clearingAccountMain.getStatus()))
|
if (activeStatuses.contains(clearingAccountMain.getStatus()))
|
||||||
status = ServiceStatus.Active.getKey();
|
status = ServiceStatus.Active.getKey();
|
||||||
if (clearingAccountMain.getStatus().equals(ServiceStatus.Blocked.getKey()))
|
if (clearingAccountMain.getStatus().equals(ServiceStatus.Blocked.getKey()))
|
||||||
|
|
@ -200,7 +200,7 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public RequestInfoUpdate tradingClearingRegistryBlock(BaseRequest<CommonDeleteRequest> userRequest) {
|
public RequestInfoUpdate tradingClearingRegistryBlock(BaseRequest<CommonIdRequest> userRequest) {
|
||||||
log.debug("TradingClearingRegistryBlockRequest received");
|
log.debug("TradingClearingRegistryBlockRequest received");
|
||||||
RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest);
|
RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest);
|
||||||
if (requestInfoUpdate != null) return requestInfoUpdate;
|
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||||
|
|
@ -208,10 +208,11 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini
|
||||||
requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, tradingClearingRegistryBlockRequestValidator);
|
requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, tradingClearingRegistryBlockRequestValidator);
|
||||||
if (requestInfoUpdate != null) return requestInfoUpdate;
|
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||||
|
|
||||||
CommonDeleteRequest req = userRequest.getRequestPayload();
|
CommonIdRequest req = userRequest.getRequestPayload();
|
||||||
TradingClearingRegistry tradingClearingRegistry = tradingClearingRegistryImdg.getSingleObjectByID(req.getId());
|
TradingClearingRegistry tradingClearingRegistry = tradingClearingRegistryImdg.getSingleObjectByID(req.getId());
|
||||||
|
|
||||||
tradingClearingRegistry.setStatus(ServiceStatus.Blocked.getKey());
|
tradingClearingRegistry.setStatus(ServiceStatus.Blocked.getKey());
|
||||||
|
tradingClearingRegistry.setUpdated(Instant.now());
|
||||||
|
|
||||||
tradingClearingRegistryImdg.update(tradingClearingRegistry);
|
tradingClearingRegistryImdg.update(tradingClearingRegistry);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,261 @@
|
||||||
|
package ru.spcex.clearing.account.service;
|
||||||
|
|
||||||
|
import org.apache.kafka.clients.consumer.MockConsumer;
|
||||||
|
import org.apache.kafka.clients.producer.MockProducer;
|
||||||
|
import org.apache.kafka.clients.producer.ProducerRecord;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.junit.jupiter.api.extension.ExtendWith;
|
||||||
|
import org.mockito.ArgumentCaptor;
|
||||||
|
import org.mockito.Captor;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
|
import org.springframework.boot.test.mock.mockito.SpyBean;
|
||||||
|
import org.springframework.test.context.ContextConfiguration;
|
||||||
|
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||||
|
import ru.clearing.classes.statics.data.account.Account;
|
||||||
|
import ru.clearing.classes.statics.data.account.ClearingAccount;
|
||||||
|
import ru.clearing.classes.statics.data.account.DepoAccount;
|
||||||
|
import ru.clearing.classes.statics.data.company.Company;
|
||||||
|
import ru.clearing.classes.statics.data.registry.TradingClearingRegistry;
|
||||||
|
import ru.clearing.platform.dictionary.ServiceStatusDictionary;
|
||||||
|
import ru.spcex.clearing.account.config.BeanConfiguration;
|
||||||
|
import ru.spcex.clearing.account.config.HazelcastServiceTestConfiguration;
|
||||||
|
import ru.spcex.clearing.account.config.KafkaConfigTest;
|
||||||
|
import ru.spcex.clearing.account.config.validation.TradingClearingRegistryValidationConfig;
|
||||||
|
import ru.spcex.clearing.account.config.validation.ValidationConfig;
|
||||||
|
import ru.spcex.clearing.account.utils.MatcherFactory;
|
||||||
|
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
|
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.registry.TradingClearingRegistryNewRequest;
|
||||||
|
import ru.spcex.clearing.platform.messaging.domain.cud.registry.TradingClearingRegistryUpdateRequest;
|
||||||
|
import ru.spcex.platform.enumeration.ServiceStatus;
|
||||||
|
import ru.spcex.platform.enumeration.TradingClearingRegistryPurpose;
|
||||||
|
import ru.spcex.platform.enumeration.WorkflowStatus;
|
||||||
|
import ru.spcex.platform.imdg.api.Imdg;
|
||||||
|
import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService;
|
||||||
|
|
||||||
|
import javax.annotation.PostConstruct;
|
||||||
|
|
||||||
|
import static ru.spcex.clearing.account.utils.MatcherFactory.usingIgnoringFieldsComparator;
|
||||||
|
import static ru.spcex.clearing.account.utils.TestUtils.*;
|
||||||
|
|
||||||
|
@ExtendWith(SpringExtension.class)
|
||||||
|
@ContextConfiguration(classes = {
|
||||||
|
BeanConfiguration.class,
|
||||||
|
ValidationConfig.class,
|
||||||
|
TradingClearingRegistryValidationConfig.class,
|
||||||
|
TradingClearingRegistryService.class,
|
||||||
|
HazelcastServiceTestConfiguration.class,
|
||||||
|
KafkaConfigTest.class})
|
||||||
|
class TradingClearingRegistryServiceTest {
|
||||||
|
public static final MatcherFactory.Matcher<TradingClearingRegistry> TRADING_CLEARING_REGISTRY_MATCHER = usingIgnoringFieldsComparator();
|
||||||
|
private static final int PARTITION = 0;
|
||||||
|
private static final String TOPIC_ACCOUNT_NEW = Consts.ACCOUNT_NEW_SDF01;
|
||||||
|
private static final String account = "123456789123";
|
||||||
|
private static final Long companyId = 0L;
|
||||||
|
private static final Long relationId = 0L;
|
||||||
|
@Autowired
|
||||||
|
TradingClearingRegistryService tradingClearingRegistryService;
|
||||||
|
@Autowired
|
||||||
|
@Qualifier("hazelcastServiceTest")
|
||||||
|
private HazelcastService hazelcastServiceTest;
|
||||||
|
|
||||||
|
@Captor
|
||||||
|
private ArgumentCaptor<ProducerRecord> producerRecord;
|
||||||
|
@SpyBean
|
||||||
|
private MockProducer<String, Object> producer;
|
||||||
|
|
||||||
|
private Imdg<TradingClearingRegistry> tradingClearingRegistryImdg;
|
||||||
|
private Imdg<Company> companyImdg;
|
||||||
|
private Imdg<ServiceStatusDictionary> serviceStatusDictionaryImdg;
|
||||||
|
|
||||||
|
private Imdg<ClearingAccount> clearingAccountImdg;
|
||||||
|
private Long clearingAccountId;
|
||||||
|
|
||||||
|
private Imdg<DepoAccount> depoAccountImdg;
|
||||||
|
private Long depoAccountId;
|
||||||
|
|
||||||
|
private Imdg<Account> accountImdg;
|
||||||
|
private Long accountId;
|
||||||
|
|
||||||
|
static boolean oneNewRequestDone = false;
|
||||||
|
|
||||||
|
@PostConstruct
|
||||||
|
private void init() {
|
||||||
|
hazelcastServiceTest.waitAvailable();
|
||||||
|
tradingClearingRegistryImdg = hazelcastServiceTest.getImdg(
|
||||||
|
IMDGDistributedNames.Map_TradingClearingRegistry, TradingClearingRegistry.class
|
||||||
|
);
|
||||||
|
companyImdg = hazelcastServiceTest.getImdg(
|
||||||
|
IMDGDistributedNames.Map_Company, Company.class
|
||||||
|
);
|
||||||
|
serviceStatusDictionaryImdg = hazelcastServiceTest.getImdg(
|
||||||
|
IMDGDistributedNames.Map_ServiceStatusDictionary, ServiceStatusDictionary.class
|
||||||
|
);
|
||||||
|
accountImdg = hazelcastServiceTest.getImdg(
|
||||||
|
IMDGDistributedNames.Map_Account, Account.class
|
||||||
|
);
|
||||||
|
clearingAccountImdg = hazelcastServiceTest.getImdg(
|
||||||
|
IMDGDistributedNames.Map_ClearingAccount, ClearingAccount.class
|
||||||
|
);
|
||||||
|
depoAccountImdg = hazelcastServiceTest.getImdg(
|
||||||
|
IMDGDistributedNames.Map_DepoAccount, DepoAccount.class
|
||||||
|
);
|
||||||
|
ServiceStatusDictionary serviceStatusDictionary = new ServiceStatusDictionary();
|
||||||
|
serviceStatusDictionary.setCode(ServiceStatus.Active.getKey());
|
||||||
|
serviceStatusDictionary.setName(ServiceStatus.Active.getKey());
|
||||||
|
serviceStatusDictionaryImdg.insert(serviceStatusDictionary);
|
||||||
|
|
||||||
|
Company company = new Company();
|
||||||
|
company.setId(companyId);
|
||||||
|
company.setWorkflowStatus(WorkflowStatus.Active.getKey());
|
||||||
|
company.setClearingCode("77");
|
||||||
|
companyImdg.insert(company);
|
||||||
|
|
||||||
|
Account account = new Account();
|
||||||
|
account.setStatus(ServiceStatus.Active.getKey());
|
||||||
|
accountId = accountImdg.insert(account);
|
||||||
|
|
||||||
|
DepoAccount depoAccount = new DepoAccount();
|
||||||
|
depoAccount.setAccountId(accountId);
|
||||||
|
depoAccount.setDepoAccountType("DAT");
|
||||||
|
depoAccountId = depoAccountImdg.insert(depoAccount);
|
||||||
|
|
||||||
|
ClearingAccount clearingAccount = new ClearingAccount();
|
||||||
|
clearingAccount.setAccountId(accountId);
|
||||||
|
clearingAccount.setClearingAccountType("CAT");
|
||||||
|
clearingAccountId = clearingAccountImdg.insert(clearingAccount);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void tradingClearingRegistryNew_moneyAccount() {
|
||||||
|
TradingClearingRegistryNewRequest tradingClearingRegistryNewRequest = new TradingClearingRegistryNewRequest();
|
||||||
|
tradingClearingRegistryNewRequest.setCompanyId(companyId);
|
||||||
|
tradingClearingRegistryNewRequest.setMoneyAccountId(clearingAccountId);
|
||||||
|
|
||||||
|
TradingClearingRegistry predictableTradingClearingRegistry = new TradingClearingRegistry();
|
||||||
|
predictableTradingClearingRegistry.setCompanyId(companyId);
|
||||||
|
predictableTradingClearingRegistry.setCode("0077MAT");
|
||||||
|
predictableTradingClearingRegistry.setMoneyAccountId(clearingAccountId);
|
||||||
|
predictableTradingClearingRegistry.setTradingClearingRegistryType("CAT");
|
||||||
|
predictableTradingClearingRegistry.setTradingClearingRegistryPurpose(TradingClearingRegistryPurpose.M.getKey());
|
||||||
|
predictableTradingClearingRegistry.setStatus(ServiceStatus.Active.getKey());
|
||||||
|
|
||||||
|
String jsonString = getJsonStringForNew(tradingClearingRegistryNewRequest, 0L);
|
||||||
|
|
||||||
|
addRecordToKafka((MockConsumer) tradingClearingRegistryService.getConsumer(),
|
||||||
|
Consts.DESTINATION_TRADING_CLEARING_REGISTRY_NEW,
|
||||||
|
PARTITION + (oneNewRequestDone ? 1 : 0),
|
||||||
|
0,
|
||||||
|
jsonString);
|
||||||
|
|
||||||
|
waitingWhenAddedRecordAndCheckIt(0L, producer, producerRecord);
|
||||||
|
|
||||||
|
TradingClearingRegistry resultNew = tradingClearingRegistryImdg.getAllValues().iterator().next();
|
||||||
|
predictableTradingClearingRegistry.setId(resultNew.getId());
|
||||||
|
predictableTradingClearingRegistry.setCode(predictableTradingClearingRegistry.getCode() + resultNew.getId());
|
||||||
|
predictableTradingClearingRegistry.setUpdated(resultNew.getUpdated());
|
||||||
|
predictableTradingClearingRegistry.setCreated(resultNew.getCreated());
|
||||||
|
|
||||||
|
TRADING_CLEARING_REGISTRY_MATCHER.assertMatch(resultNew, predictableTradingClearingRegistry);
|
||||||
|
tradingClearingRegistryImdg.delete(resultNew);
|
||||||
|
|
||||||
|
oneNewRequestDone = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void tradingClearingRegistryNew_depoAccount() {
|
||||||
|
TradingClearingRegistryNewRequest tradingClearingRegistryNewRequest = new TradingClearingRegistryNewRequest();
|
||||||
|
tradingClearingRegistryNewRequest.setCompanyId(companyId);
|
||||||
|
tradingClearingRegistryNewRequest.setMoneyAccountId(clearingAccountId);
|
||||||
|
tradingClearingRegistryNewRequest.setDepoAccountId(depoAccountId);
|
||||||
|
|
||||||
|
TradingClearingRegistry predictableTradingClearingRegistry = new TradingClearingRegistry();
|
||||||
|
predictableTradingClearingRegistry.setCompanyId(companyId);
|
||||||
|
predictableTradingClearingRegistry.setCode("0077CDAT");
|
||||||
|
predictableTradingClearingRegistry.setMoneyAccountId(clearingAccountId);
|
||||||
|
predictableTradingClearingRegistry.setDepoAaccountId(depoAccountId);
|
||||||
|
predictableTradingClearingRegistry.setTradingClearingRegistryType("DAT");
|
||||||
|
predictableTradingClearingRegistry.setTradingClearingRegistryPurpose(TradingClearingRegistryPurpose.C.getKey());
|
||||||
|
predictableTradingClearingRegistry.setStatus(ServiceStatus.Active.getKey());
|
||||||
|
|
||||||
|
String jsonString = getJsonStringForNew(tradingClearingRegistryNewRequest, 0L);
|
||||||
|
|
||||||
|
addRecordToKafka((MockConsumer) tradingClearingRegistryService.getConsumer(),
|
||||||
|
Consts.DESTINATION_TRADING_CLEARING_REGISTRY_NEW,
|
||||||
|
PARTITION + (oneNewRequestDone ? 1 : 0),
|
||||||
|
0,
|
||||||
|
jsonString);
|
||||||
|
|
||||||
|
waitingWhenAddedRecordAndCheckIt(0L, producer, producerRecord);
|
||||||
|
|
||||||
|
TradingClearingRegistry resultNew = tradingClearingRegistryImdg.getAllValues().iterator().next();
|
||||||
|
predictableTradingClearingRegistry.setId(resultNew.getId());
|
||||||
|
predictableTradingClearingRegistry.setCode(predictableTradingClearingRegistry.getCode() + resultNew.getId());
|
||||||
|
predictableTradingClearingRegistry.setUpdated(resultNew.getUpdated());
|
||||||
|
predictableTradingClearingRegistry.setCreated(resultNew.getCreated());
|
||||||
|
|
||||||
|
TRADING_CLEARING_REGISTRY_MATCHER.assertMatch(resultNew, predictableTradingClearingRegistry);
|
||||||
|
tradingClearingRegistryImdg.delete(resultNew);
|
||||||
|
|
||||||
|
oneNewRequestDone = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void tradingClearingRegistryUpdate() {
|
||||||
|
TradingClearingRegistry existTradingClearingRegistry = new TradingClearingRegistry();
|
||||||
|
existTradingClearingRegistry.setStatus(ServiceStatus.Closed.getKey());
|
||||||
|
Long registryId = tradingClearingRegistryImdg.insert(existTradingClearingRegistry);
|
||||||
|
|
||||||
|
TradingClearingRegistryUpdateRequest tradingClearingRegistryUpdateRequest = new TradingClearingRegistryUpdateRequest();
|
||||||
|
tradingClearingRegistryUpdateRequest.setStatus(ServiceStatus.Active.getKey());
|
||||||
|
tradingClearingRegistryUpdateRequest.setId(registryId);
|
||||||
|
|
||||||
|
String jsonString = getJsonStringForUPDATE(tradingClearingRegistryUpdateRequest, 0);
|
||||||
|
|
||||||
|
//ACT
|
||||||
|
addRecordToKafka((MockConsumer) tradingClearingRegistryService.getConsumer(),
|
||||||
|
Consts.DESTINATION_TRADING_CLEARING_REGISTRY_UPDATE,
|
||||||
|
PARTITION,
|
||||||
|
0,
|
||||||
|
jsonString);
|
||||||
|
|
||||||
|
//ASSERT
|
||||||
|
waitingWhenAddedRecordAndCheckIt(0L, producer, producerRecord);
|
||||||
|
|
||||||
|
TradingClearingRegistry resultUpdating = tradingClearingRegistryImdg.getSingleObjectByID(registryId);
|
||||||
|
existTradingClearingRegistry.setUpdated(resultUpdating.getUpdated());
|
||||||
|
existTradingClearingRegistry.setStatus(ServiceStatus.Active.getKey());
|
||||||
|
TRADING_CLEARING_REGISTRY_MATCHER.assertMatch(resultUpdating, existTradingClearingRegistry);
|
||||||
|
tradingClearingRegistryImdg.delete(resultUpdating);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void tradingClearingRegistryBlock() {
|
||||||
|
TradingClearingRegistry existTradingClearingRegistry = new TradingClearingRegistry();
|
||||||
|
existTradingClearingRegistry.setStatus(ServiceStatus.Closed.getKey());
|
||||||
|
Long registryId = tradingClearingRegistryImdg.insert(existTradingClearingRegistry);
|
||||||
|
|
||||||
|
CommonDeleteRequest tradingClearingRegistryDeleteRequest = new CommonDeleteRequest();
|
||||||
|
tradingClearingRegistryDeleteRequest.setId(registryId);
|
||||||
|
|
||||||
|
String jsonString = getJsonStringForUPDATE(tradingClearingRegistryDeleteRequest, 0);
|
||||||
|
|
||||||
|
//ACT
|
||||||
|
addRecordToKafka((MockConsumer) tradingClearingRegistryService.getConsumer(),
|
||||||
|
Consts.DESTINATION_TRADING_CLEARING_REGISTRY_BLOCK,
|
||||||
|
PARTITION,
|
||||||
|
0,
|
||||||
|
jsonString);
|
||||||
|
|
||||||
|
//ASSERT
|
||||||
|
waitingWhenAddedRecordAndCheckIt(0L, producer, producerRecord);
|
||||||
|
|
||||||
|
TradingClearingRegistry resultUpdating = tradingClearingRegistryImdg.getSingleObjectByID(registryId);
|
||||||
|
existTradingClearingRegistry.setUpdated(resultUpdating.getUpdated());
|
||||||
|
existTradingClearingRegistry.setStatus(ServiceStatus.Blocked.getKey());
|
||||||
|
TRADING_CLEARING_REGISTRY_MATCHER.assertMatch(resultUpdating, existTradingClearingRegistry);
|
||||||
|
tradingClearingRegistryImdg.delete(resultUpdating);
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Add table
Reference in a new issue