company-service CompanyService, CompanySymbolService
This commit is contained in:
parent
b0e7595d73
commit
83a513f629
7 changed files with 299 additions and 30 deletions
|
|
@ -0,0 +1,106 @@
|
|||
package ru.spcex.clearing.company.config.validation;
|
||||
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import ru.clearing.classes.statics.data.company.Company;
|
||||
import ru.clearing.classes.statics.data.company.CompanySymbols;
|
||||
import ru.clearing.platform.dictionary.*;
|
||||
import ru.spcex.clearing.company.error.CompanyErrors;
|
||||
import ru.spcex.clearing.company.validation.CompanySymbolNotExistRule;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.company.CompanyInfoUpdateRequest;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.company.CompanyNewRequest;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.company.CompanySymbolUpdateRequest;
|
||||
import ru.spcex.clearing.validation.common.rules.DictionaryPresentRule;
|
||||
import ru.spcex.clearing.validation.common.rules.EnumPresentRule;
|
||||
import ru.spcex.clearing.validation.common.rules.FieldRequiredRule;
|
||||
import ru.spcex.clearing.validation.common.rules.IdPresentRule;
|
||||
import ru.spcex.platform.classes.base.SpcexObjectBase;
|
||||
import ru.spcex.platform.enumeration.CompanySymbol;
|
||||
import ru.spcex.platform.enumeration.WorkflowStatus;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.validation.ImdgValidationContext;
|
||||
import ru.spcex.platform.utils.validation.IValidator;
|
||||
import ru.spcex.platform.utils.validation.ValidatorImpl;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.function.Function;
|
||||
|
||||
@Configuration
|
||||
public class CompanySymbolValidationConfig {
|
||||
|
||||
@Bean("companySymbolNewRequestValidator")
|
||||
public Function<CompanySymbolUpdateRequest, IValidator> companySymbolNewRequestValidator(Map<String, Imdg<? extends SpcexObjectBase>> imdgForValidation) {
|
||||
return companySymbolUpdateRequest -> {
|
||||
ImdgValidationContext<CompanySymbolUpdateRequest> context = new ImdgValidationContext<>();
|
||||
context.setValidatedObject(companySymbolUpdateRequest);
|
||||
Consumer<String> addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s));
|
||||
// addImdg.accept(IMDGDistributedNames.Map_CompanySymbols);
|
||||
addImdg.accept(IMDGDistributedNames.Map_CompanySymbolDictionary);
|
||||
addImdg.accept(IMDGDistributedNames.Map_Company);
|
||||
return new ValidatorImpl<>(context,
|
||||
FieldRequiredRule.instance("companyId", CompanySymbolUpdateRequest::getCompanyId, CompanyErrors.RequiredFieldEmpty),
|
||||
IdPresentRule.instance("companyId",
|
||||
CompanySymbolUpdateRequest::getCompanyId,
|
||||
IMDGDistributedNames.Map_Company,
|
||||
Company.class,
|
||||
CompanyErrors.RequiredFieldEmpty,
|
||||
CompanyErrors.CompanyNotFound),
|
||||
// FieldRequiredRule.instance("companySymbol", CompanySymbolUpdateRequest::getCompanySymbol, CompanyErrors.RequiredFieldEmpty),
|
||||
// FieldRequiredRule.instance("companySymbolValue", CompanySymbolUpdateRequest::getCompanySymbolValue, CompanyErrors.RequiredFieldEmpty),
|
||||
DictionaryPresentRule.instance("companySymbol",
|
||||
CompanySymbolUpdateRequest::getCompanySymbol,
|
||||
IMDGDistributedNames.Map_CompanySymbolDictionary,
|
||||
CompanySymbolDictionary.class,
|
||||
CompanyErrors.RequiredFieldEmpty,
|
||||
CompanyErrors.WrongFieldValue,
|
||||
false)
|
||||
// , new CompanySymbolNotExistRule() чтобы применить это правило, необходимо сделать дополнительный тип в его методе
|
||||
);
|
||||
};
|
||||
}
|
||||
|
||||
@Bean("companySymbolUpdateRequestValidator")
|
||||
public Function<CompanySymbolUpdateRequest, IValidator> companySymbolUpdateRequestValidator(Map<String, Imdg<? extends SpcexObjectBase>> imdgForValidation) {
|
||||
return companySymbolUpdateRequest -> {
|
||||
ImdgValidationContext<CompanySymbolUpdateRequest> context = new ImdgValidationContext<>();
|
||||
context.setValidatedObject(companySymbolUpdateRequest);
|
||||
Consumer<String> addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s));
|
||||
addImdg.accept(IMDGDistributedNames.Map_CompanySymbols);
|
||||
addImdg.accept(IMDGDistributedNames.Map_CompanySymbolDictionary);
|
||||
addImdg.accept(IMDGDistributedNames.Map_Company);
|
||||
return new ValidatorImpl<ImdgValidationContext<CompanySymbolUpdateRequest>>(context,
|
||||
IdPresentRule.instance("id",
|
||||
CompanySymbolUpdateRequest::getId,
|
||||
IMDGDistributedNames.Map_CompanySymbols,
|
||||
CompanySymbols.class,
|
||||
CompanyErrors.RequiredFieldEmpty,
|
||||
CompanyErrors.CompanyInfoNotFound,
|
||||
(CompanySymbols existSymbol) -> {
|
||||
assert existSymbol.getId().equals(context.getValidatedObject().getId());
|
||||
return existSymbol.getCompanySymbol().equals(context.getValidatedObject().getCompanySymbol())
|
||||
? null : CompanyErrors.EditCompanySymbols;
|
||||
}),
|
||||
|
||||
FieldRequiredRule.instance("companyId", CompanySymbolUpdateRequest::getCompanyId, CompanyErrors.RequiredFieldEmpty),
|
||||
IdPresentRule.instance("companyId",
|
||||
CompanySymbolUpdateRequest::getCompanyId,
|
||||
IMDGDistributedNames.Map_Company,
|
||||
Company.class,
|
||||
CompanyErrors.RequiredFieldEmpty,
|
||||
CompanyErrors.CompanyNotFound),
|
||||
// FieldRequiredRule.instance("companySymbol", CompanySymbolUpdateRequest::getCompanySymbol, CompanyErrors.RequiredFieldEmpty),
|
||||
// FieldRequiredRule.instance("companySymbolValue", CompanySymbolUpdateRequest::getCompanySymbolValue, CompanyErrors.RequiredFieldEmpty),
|
||||
DictionaryPresentRule.instance("companySymbol",
|
||||
CompanySymbolUpdateRequest::getCompanySymbol,
|
||||
IMDGDistributedNames.Map_CompanySymbolDictionary,
|
||||
CompanySymbolDictionary.class,
|
||||
CompanyErrors.RequiredFieldEmpty,
|
||||
CompanyErrors.WrongFieldValue,
|
||||
false)
|
||||
);
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
@ -22,12 +22,15 @@ import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate;
|
|||
import ru.spcex.clearing.util.security.UserRoleVerification;
|
||||
import ru.spcex.clearing.validation.common.ValidationHelper;
|
||||
import ru.spcex.platform.enumeration.CompanySymbol;
|
||||
import ru.spcex.platform.enumeration.UserRole;
|
||||
import ru.spcex.platform.enumeration.WorkflowStatus;
|
||||
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 ru.spcex.platform.utils.enumeration.EnumMessage;
|
||||
import ru.spcex.platform.utils.enumeration.IMessageResolver;
|
||||
import ru.spcex.platform.utils.error.ClearingBaseException;
|
||||
import ru.spcex.platform.utils.error.ValidationException;
|
||||
import ru.spcex.platform.utils.validation.IValidator;
|
||||
|
||||
|
|
@ -42,10 +45,8 @@ public class CompanyService extends QueueConsumer implements InitializingBean {
|
|||
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||
private final RequestHelper requestHelper;
|
||||
private final ImdgProvider imdgProvider;
|
||||
private final Imdg<CompanySymbols> companySymbolsMap;
|
||||
private final ImdgId idSequence;
|
||||
protected UserRoleVerification userRoleVerification;
|
||||
protected IMessageResolver messageResolver;
|
||||
|
||||
private ValidationHelper validationHelper;
|
||||
private Function<CompanyNewRequest, IValidator> companyNewRequestValidator;
|
||||
|
|
@ -77,14 +78,15 @@ public class CompanyService extends QueueConsumer implements InitializingBean {
|
|||
this.imdgProvider = imdgProvider;
|
||||
this.requestHelper = requestHelper.setLogger(log);
|
||||
|
||||
this.companySymbolsMap = imdgProvider.getImdg(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class);
|
||||
this.idSequence = imdgProvider.getImdgIdGenerator();
|
||||
this.userRoleVerification = userRoleVerification;
|
||||
userRoleVerification.setRoleForVerification(UserRole.Admin);
|
||||
this.validationHelper = validationHelper;
|
||||
this.companyNewRequestValidator = companyNewRequestValidator;
|
||||
this.companyUpdateRequestValidator = companyUpdateRequestValidator;
|
||||
this.companyDeleteRequestValidator = companyDeleteRequestValidator;
|
||||
this.companySymbolService = companySymbolService;
|
||||
companySymbolService.setCompanyService(this);
|
||||
this.accountNotification = accountNotification;
|
||||
this.relationHelper = relationHelper;
|
||||
}
|
||||
|
|
@ -213,18 +215,36 @@ public class CompanyService extends QueueConsumer implements InitializingBean {
|
|||
assert company.getId().equals(companySymbol.getCompanyId());
|
||||
if (CompanySymbol.TRDC.equalsByKey(companySymbol.getCompanySymbol())) {
|
||||
company.setTradingCode(companySymbol.getCompanySymbolValue());
|
||||
} else {
|
||||
company.setTradingCode(null);
|
||||
}
|
||||
if (CompanySymbol.CLRC.equalsByKey(companySymbol.getCompanySymbol())) {
|
||||
company.setClearingCode(companySymbol.getCompanySymbolValue());
|
||||
} else {
|
||||
company.setClearingCode(null);
|
||||
}
|
||||
if (CompanySymbol.RGRC.equalsByKey(companySymbol.getCompanySymbol())) {
|
||||
company.setRegistrationCode(companySymbol.getCompanySymbolValue());
|
||||
}
|
||||
}
|
||||
|
||||
public synchronized void updateCompanyBySymbol(ImdgTransaction transaction, CompanySymbols companySymbol) throws ClearingBaseException {
|
||||
if (companySymbol.getCompanyId() == null) {
|
||||
throw new IllegalArgumentException("Required companySymbol.companyId");
|
||||
}
|
||||
if (CompanySymbol.TRDC.equalsByKey(companySymbol.getCompanySymbol())
|
||||
|| CompanySymbol.CLRC.equalsByKey(companySymbol.getCompanySymbol())
|
||||
|| CompanySymbol.RGRC.equalsByKey(companySymbol.getCompanySymbol())) {
|
||||
Imdg<Company> companyMap = transaction.getImdg(IMDGDistributedNames.Map_Company, Company.class);
|
||||
|
||||
Company company = companyMap.getSingleObjectByID(companySymbol.getCompanyId());
|
||||
if (company == null) {
|
||||
throw new ClearingBaseException(new EnumMessage(CompanyErrors.CompanyNotFound, companySymbol.getCompanyId()));
|
||||
}
|
||||
updateCompanyBySymbol(company, companySymbol);
|
||||
company.setUpdated(Instant.now());
|
||||
companyMap.update(company);
|
||||
log.debug("Company {} updated by change CompanySymbols {} ({})",
|
||||
company.getId(), companySymbol.getId(), companySymbol.getCompanySymbol());
|
||||
} else {
|
||||
company.setRegistrationCode(null);
|
||||
log.trace("No need update company {} by changed companySymbols {}",
|
||||
companySymbol.getCompanyId(), companySymbol.getCompanySymbol());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -257,14 +277,6 @@ public class CompanyService extends QueueConsumer implements InitializingBean {
|
|||
|
||||
company.setUpdated(Instant.now());
|
||||
|
||||
CompanySymbols companySymbol = companySymbolsMap.getSingleObjectByFieldValues(Map.of("companyId", company.getId()));
|
||||
if (companySymbol == null) {
|
||||
log.warn("CompanySymbols not found for companyId={}", company.getId());
|
||||
} else {
|
||||
log.trace("Found CompanySymbols.id={} for companyId={}", companySymbol.getId(), company.getId());
|
||||
updateCompanyBySymbol(company, companySymbol);
|
||||
}
|
||||
|
||||
String prevStatus = company.getWorkflowStatus();
|
||||
company.setWorkflowStatus(WorkflowStatus.Blocked.getKey());
|
||||
|
||||
|
|
|
|||
|
|
@ -7,51 +7,159 @@ import org.slf4j.Logger;
|
|||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.stereotype.Service;
|
||||
import ru.clearing.classes.statics.data.company.CompanySymbols;
|
||||
import ru.spcex.clearing.company.util.RequestHelper;
|
||||
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.company.CompanySymbolUpdateRequest;
|
||||
import ru.spcex.clearing.platform.messaging.service.QueueConsumer;
|
||||
import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate;
|
||||
import ru.spcex.clearing.util.security.UserRoleVerification;
|
||||
import ru.spcex.clearing.validation.common.ValidationHelper;
|
||||
import ru.spcex.platform.enumeration.UserRole;
|
||||
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 ru.spcex.platform.utils.error.ClearingBaseException;
|
||||
import ru.spcex.platform.utils.validation.IValidator;
|
||||
|
||||
import java.util.Objects;
|
||||
import java.util.function.Function;
|
||||
|
||||
@Service
|
||||
public class CompanySymbolService extends QueueConsumer implements InitializingBean {
|
||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||
private final Imdg<CompanySymbols> companySymbolsMap;
|
||||
private final ImdgProvider imdgProvider;
|
||||
// private final Imdg<CompanySymbols> companySymbolsMap;
|
||||
private final ImdgId idSequence;
|
||||
protected CompanyService companyService;
|
||||
|
||||
private final RequestHelper requestHelper;
|
||||
protected ValidationHelper validationHelper;
|
||||
protected UserRoleVerification userRoleVerification;
|
||||
protected Function<CompanySymbolUpdateRequest, IValidator> companySymbolNewRequestValidator;
|
||||
protected Function<CompanySymbolUpdateRequest, IValidator> companySymbolUpdateRequestValidator;
|
||||
|
||||
@Autowired
|
||||
public CompanySymbolService(Consumer<String, Object> kafkaQueue, Producer<String, Object> kafkaProducer,
|
||||
ImdgProvider imdgProvider) {
|
||||
ImdgProvider imdgProvider,
|
||||
RequestHelper requestHelper,
|
||||
ValidationHelper validationHelper,
|
||||
UserRoleVerification userRoleVerification,
|
||||
@Qualifier("companySymbolNewRequestValidator")
|
||||
Function<CompanySymbolUpdateRequest, IValidator> companySymbolNewRequestValidator,
|
||||
@Qualifier("companySymbolUpdateRequestValidator")
|
||||
Function<CompanySymbolUpdateRequest, IValidator> companySymbolUpdateRequestValidator
|
||||
) {
|
||||
super(kafkaQueue, kafkaProducer);
|
||||
this.companySymbolsMap = imdgProvider.getImdg(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class);
|
||||
this.imdgProvider = imdgProvider;
|
||||
this.idSequence = imdgProvider.getImdgIdGenerator();
|
||||
|
||||
this.requestHelper = requestHelper.setLogger(log);
|
||||
this.validationHelper = validationHelper;
|
||||
this.userRoleVerification = userRoleVerification;
|
||||
userRoleVerification.setRoleForVerification(UserRole.Admin);
|
||||
this.companySymbolNewRequestValidator = companySymbolNewRequestValidator;
|
||||
this.companySymbolUpdateRequestValidator = companySymbolUpdateRequestValidator;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterPropertiesSet() {
|
||||
callback(CompanySymbolUpdateRequest.class)
|
||||
.setConsumer(this::companySymbolUpdate)
|
||||
.setFunction(this::companySymbolNew)
|
||||
.forDestination(Consts.DESTINATION_COMPANY_SYMBOL_NEW, callbacks::put);
|
||||
callback(CompanySymbolUpdateRequest.class)
|
||||
.setFunction(this::companySymbolUpdate)
|
||||
.forDestination(Consts.DESTINATION_COMPANY_SYMBOL_UPDATE, callbacks::put);
|
||||
init();
|
||||
}
|
||||
|
||||
public void companySymbolUpdate(BaseRequest<CompanySymbolUpdateRequest> userRequest) {
|
||||
CompanySymbolUpdateRequest req = userRequest.getRequestPayload();
|
||||
log.debug("CompanySymbolUpdateRequest received");
|
||||
CompanySymbols companySymbols = companySymbolsMap.getSingleObjectByID(req.getId());
|
||||
// companySymbols.setCompanySymbol(req.getCompanySymbol()); по ТЗ не должен менятся при обновлении
|
||||
public void setCompanyService(CompanyService companyService) {
|
||||
this.companyService = companyService;
|
||||
}
|
||||
|
||||
|
||||
public RequestInfoUpdate companySymbolNew(BaseRequest<CompanySymbolUpdateRequest> symbolRequest) {
|
||||
CompanySymbolUpdateRequest req = symbolRequest.getRequestPayload();
|
||||
log.debug("CompanySymbolNewRequest received, id={}", symbolRequest.getId());
|
||||
{ // validate
|
||||
RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(symbolRequest);
|
||||
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||
|
||||
requestInfoUpdate = validationHelper.validateTillFirstError(symbolRequest, companySymbolNewRequestValidator);
|
||||
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||
}
|
||||
|
||||
|
||||
CompanySymbols companySymbols = new CompanySymbols();
|
||||
companySymbols.setId(idSequence.nextId());
|
||||
companySymbols.setCompanyId(req.getCompanyId());
|
||||
companySymbols.setCompanySymbol(req.getCompanySymbol());
|
||||
companySymbols.setCompanySymbolValue(req.getCompanySymbolValue());
|
||||
|
||||
companySymbolsMap.update(companySymbols);
|
||||
ImdgTransaction transaction = imdgProvider.newTransaction();
|
||||
transaction.beginTransaction();
|
||||
boolean txOk = false;
|
||||
try {
|
||||
Imdg<CompanySymbols> companySymbolsMap = transaction.getImdg(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class);
|
||||
companySymbolsMap.update(companySymbols);
|
||||
try {
|
||||
companyService.updateCompanyBySymbol(transaction, companySymbols);
|
||||
} catch (ClearingBaseException e) {
|
||||
return requestHelper.makeErrorResponse(symbolRequest, e.getEnumMsg());
|
||||
}
|
||||
txOk = true;
|
||||
} finally {
|
||||
if (txOk)
|
||||
transaction.commitTransaction();
|
||||
else
|
||||
transaction.rollbackTransaction();
|
||||
}
|
||||
|
||||
log.debug("successfully processed, id {}", companySymbols.getId());
|
||||
return null;
|
||||
}
|
||||
|
||||
public RequestInfoUpdate companySymbolUpdate(BaseRequest<CompanySymbolUpdateRequest> symbolRequest) {
|
||||
CompanySymbolUpdateRequest req = symbolRequest.getRequestPayload();
|
||||
log.debug("CompanySymbolUpdateRequest received, id={}", symbolRequest.getId());
|
||||
|
||||
{ // validate
|
||||
RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(symbolRequest);
|
||||
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||
|
||||
requestInfoUpdate = validationHelper.validateTillFirstError(symbolRequest, companySymbolUpdateRequestValidator);
|
||||
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||
}
|
||||
CompanySymbols companySymbols;
|
||||
ImdgTransaction transaction = imdgProvider.newTransaction();
|
||||
transaction.beginTransaction();
|
||||
boolean txOk = false;
|
||||
try {
|
||||
Imdg<CompanySymbols> companySymbolsMap = transaction.getImdg(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class);
|
||||
companySymbols = companySymbolsMap.getSingleObjectByID(req.getId());
|
||||
// companySymbols.setCompanySymbol(req.getCompanySymbol()); по ТЗ не должен менятся при обновлении
|
||||
companySymbols.setCompanySymbolValue(req.getCompanySymbolValue());
|
||||
companySymbolsMap.update(companySymbols);
|
||||
try {
|
||||
companyService.updateCompanyBySymbol(transaction, companySymbols);
|
||||
} catch (ClearingBaseException e) {
|
||||
return requestHelper.makeErrorResponse(symbolRequest, e.getEnumMsg());
|
||||
}
|
||||
txOk = true;
|
||||
} finally {
|
||||
if (txOk)
|
||||
transaction.commitTransaction();
|
||||
else
|
||||
transaction.rollbackTransaction();
|
||||
}
|
||||
|
||||
log.debug("successfully processed, id {}", companySymbols.getId());
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -64,6 +172,7 @@ public class CompanySymbolService extends QueueConsumer implements InitializingB
|
|||
newSymbol.setCompanySymbolValue(companySymbolValue);
|
||||
log.debug("Created new companySymbols.id={} for company {}", newSymbol.getId(), companyId);
|
||||
if (transaction == null) {
|
||||
Imdg<CompanySymbols> companySymbolsMap = transaction.getImdg(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class);
|
||||
companySymbolsMap.insert(newSymbol);
|
||||
} else {
|
||||
Imdg<CompanySymbols> tMap = transaction.getImdg(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class);
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ import ru.clearing.platform.dictionary.*;
|
|||
import ru.spcex.clearing.company.config.BeanConfiguration;
|
||||
import ru.spcex.clearing.company.config.HazelcastServiceTestConfiguration;
|
||||
import ru.spcex.clearing.company.config.KafkaConfigTest;
|
||||
import ru.spcex.clearing.company.config.validation.CompanySymbolValidationConfig;
|
||||
import ru.spcex.clearing.company.config.validation.CompanyValidationConfig;
|
||||
import ru.spcex.clearing.company.config.validation.ValidationConfig;
|
||||
import ru.spcex.clearing.company.utils.MatcherFactory;
|
||||
|
|
@ -40,6 +41,8 @@ import static ru.spcex.clearing.company.utils.TestUtils.*;
|
|||
@ExtendWith(SpringExtension.class)
|
||||
@ContextConfiguration(classes = {
|
||||
CompanyInfoService.class,
|
||||
CompanyValidationConfig.class,
|
||||
CompanySymbolValidationConfig.class,
|
||||
|
||||
CompanyService.class,
|
||||
CompanyValidationConfig.class,
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ import ru.clearing.platform.dictionary.WorkflowStatusDictionary;
|
|||
import ru.spcex.clearing.company.config.BeanConfiguration;
|
||||
import ru.spcex.clearing.company.config.HazelcastServiceTestConfiguration;
|
||||
import ru.spcex.clearing.company.config.KafkaConfigTest;
|
||||
import ru.spcex.clearing.company.config.validation.CompanySymbolValidationConfig;
|
||||
import ru.spcex.clearing.company.config.validation.CompanyValidationConfig;
|
||||
import ru.spcex.clearing.company.config.validation.ValidationConfig;
|
||||
import ru.spcex.clearing.company.error.CompanyErrors;
|
||||
|
|
@ -54,6 +55,9 @@ import static ru.spcex.clearing.company.utils.TestUtils.*;
|
|||
AccountNotificationHelper.class,
|
||||
RelationHelper.class,
|
||||
|
||||
CompanySymbolService.class,
|
||||
CompanySymbolValidationConfig.class,
|
||||
|
||||
KafkaConfigTest.class,
|
||||
HazelcastServiceTestConfiguration.class,
|
||||
BeanConfiguration.class})
|
||||
|
|
|
|||
|
|
@ -13,14 +13,21 @@ 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.company.CompanySymbols;
|
||||
import ru.clearing.platform.dictionary.CompanySymbolDictionary;
|
||||
import ru.spcex.clearing.company.config.BeanConfiguration;
|
||||
import ru.spcex.clearing.company.config.HazelcastServiceTestConfiguration;
|
||||
import ru.spcex.clearing.company.config.KafkaConfigTest;
|
||||
import ru.spcex.clearing.company.config.validation.CompanySymbolValidationConfig;
|
||||
import ru.spcex.clearing.company.config.validation.CompanyValidationConfig;
|
||||
import ru.spcex.clearing.company.config.validation.ValidationConfig;
|
||||
import ru.spcex.clearing.company.utils.MatcherFactory;
|
||||
import ru.spcex.clearing.company.utils.TestUtils;
|
||||
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.company.CompanySymbolUpdateRequest;
|
||||
import ru.spcex.clearing.validation.common.ValidationHelper;
|
||||
import ru.spcex.platform.enumeration.CompanySymbol;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService;
|
||||
|
||||
|
|
@ -34,6 +41,16 @@ import static ru.spcex.clearing.company.utils.TestUtils.*;
|
|||
@ExtendWith(SpringExtension.class)
|
||||
@ContextConfiguration(classes = {
|
||||
CompanySymbolService.class,
|
||||
|
||||
CompanySymbolValidationConfig.class,
|
||||
ValidationConfig.class,
|
||||
BeanConfiguration.class,
|
||||
|
||||
CompanyService.class,
|
||||
CompanyValidationConfig.class,
|
||||
AccountNotificationHelper.class,
|
||||
RelationHelper.class,
|
||||
|
||||
KafkaConfigTest.class,
|
||||
HazelcastServiceTestConfiguration.class})
|
||||
class CompanySymbolServiceTest {
|
||||
|
|
@ -60,6 +77,23 @@ class CompanySymbolServiceTest {
|
|||
hazelcastServiceTest.waitAvailable();
|
||||
companySymbolsImdg = hazelcastServiceTest.getImdg(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class);
|
||||
|
||||
|
||||
Imdg<CompanySymbolDictionary> companySymbolDictionaryImdg = hazelcastServiceTest.getImdg(IMDGDistributedNames.Map_CompanySymbolDictionary, CompanySymbolDictionary.class);
|
||||
{
|
||||
CompanySymbolDictionary cSymbol = new CompanySymbolDictionary();
|
||||
cSymbol.setId(11L);
|
||||
cSymbol.setCode(CompanySymbol.CLRC.getKey());
|
||||
cSymbol.setName(CompanySymbol.CLRC.getKey());
|
||||
cSymbol.setShortname(" CLRC key");
|
||||
companySymbolDictionaryImdg.insert(cSymbol);
|
||||
CompanySymbolDictionary cioSymbol = new CompanySymbolDictionary();
|
||||
cioSymbol.setId(12L);
|
||||
cioSymbol.setCode(CompanySymbol.CIO.getKey());
|
||||
cioSymbol.setName(CompanySymbol.CIO.getKey());
|
||||
companySymbolDictionaryImdg.insert(cioSymbol);
|
||||
}
|
||||
|
||||
|
||||
TestUtils.FutureRecordMetadata future = spy(TestUtils.FutureRecordMetadata.class);
|
||||
doReturn(future).when(mockProducer).send(producerRecord.capture());
|
||||
}
|
||||
|
|
@ -80,20 +114,20 @@ class CompanySymbolServiceTest {
|
|||
CompanySymbols existsCompanySymbols = new CompanySymbols();
|
||||
existsCompanySymbols.setId(ID);
|
||||
existsCompanySymbols.setCompanyId(ID);
|
||||
existsCompanySymbols.setCompanySymbol("0000");
|
||||
existsCompanySymbols.setCompanySymbolValue("exists companySymbolValue");
|
||||
existsCompanySymbols.setCompanySymbol("CIO");
|
||||
existsCompanySymbols.setCompanySymbolValue("CIO exists companySymbolValue");
|
||||
companySymbolsImdg.insert(existsCompanySymbols);
|
||||
|
||||
CompanySymbolUpdateRequest companySymbolUpdateRequest = new CompanySymbolUpdateRequest();
|
||||
companySymbolUpdateRequest.setId(ID);
|
||||
companySymbolUpdateRequest.setCompanyId(ID);
|
||||
companySymbolUpdateRequest.setCompanySymbol("1234");
|
||||
companySymbolUpdateRequest.setCompanySymbol("CIO");
|
||||
companySymbolUpdateRequest.setCompanySymbolValue(companySymbolValue);
|
||||
|
||||
CompanySymbols predictableCompanySymbols = new CompanySymbols();
|
||||
predictableCompanySymbols.setId(ID);
|
||||
predictableCompanySymbols.setCompanyId(ID);
|
||||
predictableCompanySymbols.setCompanySymbol("0000");
|
||||
predictableCompanySymbols.setCompanySymbol("CIO");
|
||||
predictableCompanySymbols.setCompanySymbolValue(companySymbolValue);
|
||||
|
||||
//ACT
|
||||
|
|
|
|||
|
|
@ -43,6 +43,7 @@ public interface Consts {
|
|||
String DESTINATION_COMPANY_BLOCK = "company-block";
|
||||
String DESTINATION_COMPANY_INFO_NEW = "company-info-new";
|
||||
String DESTINATION_COMPANY_INFO_UPDATE = "company-info-update";
|
||||
String DESTINATION_COMPANY_SYMBOL_NEW = "company-symbol-new";
|
||||
String DESTINATION_COMPANY_SYMBOL_UPDATE = "company-symbol-update";
|
||||
String DESTINATION_COMPANY_ROLE_SET_NEW = "companyroleset-new";
|
||||
String DESTINATION_COMPANY_ROLE_SET_DELETE = "companyroleset-delete";
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue