From 8288b4c988e9d617bd56e82310f8408104741e4a Mon Sep 17 00:00:00 2001 From: AKurakin Date: Thu, 6 Apr 2023 12:44:56 +0300 Subject: [PATCH] =?UTF-8?q?company-service:=20CompanyRoleSetService=20?= =?UTF-8?q?=D0=BF=D0=BE=D0=BF=D1=80=D0=B0=D0=B2=D0=B8=D0=BB=20=D1=8E=D0=BD?= =?UTF-8?q?=D0=B8=D1=82=D1=82=D0=B5=D1=81=D1=82=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../validation/CompanyValidationConfig.java | 8 ++ .../config/validation/ValidationConfig.java | 5 +- .../service/CompanyInfoServiceTest.java | 78 ++++++++++++------- .../company/service/CompanyServiceTest.java | 3 + .../adapter/ImdgTransactionalHazelcast.java | 9 +++ 5 files changed, 72 insertions(+), 31 deletions(-) diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/CompanyValidationConfig.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/CompanyValidationConfig.java index 00c928cd5..6e90cdbee 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/CompanyValidationConfig.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/CompanyValidationConfig.java @@ -120,6 +120,14 @@ public class CompanyValidationConfig { context.setValidatedObject(companyDeleteRequest); Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); addImdg.accept(IMDGDistributedNames.Map_Company); + addImdg.accept(IMDGDistributedNames.Map_WorkflowStatusDictionary); + addImdg.accept(IMDGDistributedNames.Map_CompanySymbolDictionary); + addImdg.accept(IMDGDistributedNames.Map_CorporationSoleTypeDictionary); + addImdg.accept(IMDGDistributedNames.Map_CountryCodeDictionary); + addImdg.accept(IMDGDistributedNames.Map_AllowedDictionary); + addImdg.accept(IMDGDistributedNames.Map_LegalKindDictionary); + addImdg.accept(IMDGDistributedNames.Map_LegalKindDictionary); + addImdg.accept(IMDGDistributedNames.Map_OrganizationTypeDictionary); return new ValidatorImpl<>(context, // FieldRequiredRule.instance("id", CommonDeleteRequest::getId, CompanyErrors.RequiredFieldEmpty), IdPresentRule.instance("id", diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/ValidationConfig.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/ValidationConfig.java index 17f450e90..1a922efe6 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/ValidationConfig.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/ValidationConfig.java @@ -34,14 +34,13 @@ public class ValidationConfig { addImdg.accept(IMDGDistributedNames.Map_ContactTypeDictionary, ContactTypeDictionary.class); addImdg.accept(IMDGDistributedNames.Map_Contact, Contact.class); - addImdg.accept(IMDGDistributedNames.Map_WorkflowStatusDictionary, DocumentTypeDictionary.class); - addImdg.accept(IMDGDistributedNames.Map_CompanySymbolDictionary, DocumentTypeDictionary.class); + addImdg.accept(IMDGDistributedNames.Map_WorkflowStatusDictionary, WorkflowStatusDictionary.class); + addImdg.accept(IMDGDistributedNames.Map_CompanySymbolDictionary, CompanySymbolDictionary.class); addImdg.accept(IMDGDistributedNames.Map_CorporationSoleTypeDictionary, CorporationSoleTypeDictionary.class); addImdg.accept(IMDGDistributedNames.Map_CountryCodeDictionary, CountryCodeDictionary.class); addImdg.accept(IMDGDistributedNames.Map_AllowedDictionary, AllowedDictionary.class); addImdg.accept(IMDGDistributedNames.Map_LegalKindDictionary, LegalKindDictionary.class); addImdg.accept(IMDGDistributedNames.Map_OrganizationTypeDictionary, OrganizationTypeDictionary.class); - addImdg.accept(IMDGDistributedNames.Map_CountryCodeDictionary, CountryCodeDictionary.class); return imdg; diff --git a/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanyInfoServiceTest.java b/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanyInfoServiceTest.java index b420c42a6..dfebef889 100644 --- a/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanyInfoServiceTest.java +++ b/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanyInfoServiceTest.java @@ -14,13 +14,18 @@ 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.profile.CompanyInfo; +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.CompanyValidationConfig; +import ru.spcex.clearing.company.config.validation.ValidationConfig; import ru.spcex.clearing.company.utils.MatcherFactory; 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.CompanyInfoUpdateRequest; +import ru.spcex.platform.enumeration.WorkflowStatus; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService; @@ -32,6 +37,15 @@ import static ru.spcex.clearing.company.utils.TestUtils.*; @ExtendWith(SpringExtension.class) @ContextConfiguration(classes = { CompanyInfoService.class, + + CompanyService.class, + CompanyValidationConfig.class, + ValidationConfig.class, + CompanySymbolService.class, + AccountNotificationHelper.class, + RelationHelper.class, + BeanConfiguration.class, + KafkaConfigTest.class, HazelcastServiceTestConfiguration.class}) class CompanyInfoServiceTest { @@ -57,16 +71,23 @@ class CompanyInfoServiceTest { hazelcastServiceTest.waitAvailable(); companyImdg = hazelcastServiceTest.getImdg(IMDGDistributedNames.Map_Company, Company.class); - /* todo залить тестовые словари: - IMDGDistributedNames.Map_WorkflowStatusDictionary, DocumentTypeDictionary.class); -IMDGDistributedNames.Map_CompanySymbolDictionary, DocumentTypeDictionary.class); -IMDGDistributedNames.Map_CorporationSoleTypeDictionary, CorporationSoleTypeDictionary.class); -IMDGDistributedNames.Map_CountryCodeDictionary, CountryCodeDictionary.class); -IMDGDistributedNames.Map_AllowedDictionary, AllowedDictionary.class); -IMDGDistributedNames.Map_LegalKindDictionary, LegalKindDictionary.class); -IMDGDistributedNames.Map_OrganizationTypeDictionary, OrganizationTypeDictionary.class); -IMDGDistributedNames.Map_CountryCodeDictionary, CountryCodeDictionary.class); - */ + // Словари для теста, применяются в ValidationConfig + putToDictionary(IMDGDistributedNames.Map_WorkflowStatusDictionary, new WorkflowStatusDictionary(), "ACTV"); + putToDictionary(IMDGDistributedNames.Map_CompanySymbolDictionary, new CompanySymbolDictionary(), "CLRC"); + putToDictionary(IMDGDistributedNames.Map_CorporationSoleTypeDictionary, new CorporationSoleTypeDictionary(), "GDIR"); + putToDictionary(IMDGDistributedNames.Map_CountryCodeDictionary, new CountryCodeDictionary(), "RUS"); + putToDictionary(IMDGDistributedNames.Map_AllowedDictionary, new AllowedDictionary(), "ALWD"); + putToDictionary(IMDGDistributedNames.Map_LegalKindDictionary, new LegalKindDictionary(), "JURD"); + putToDictionary(IMDGDistributedNames.Map_OrganizationTypeDictionary, new OrganizationTypeDictionary(), "NCRD"); + + } + + private void putToDictionary(String mapName, D object, String code) { + Imdg dMap = (Imdg) hazelcastServiceTest.getImdg(mapName, object.getClass()); + object.setId(2L); + object.setCode(code); + object.setName("name of " + code); + dMap.insert(object); } /** @@ -74,13 +95,13 @@ IMDGDistributedNames.Map_CountryCodeDictionary, CountryCodeDictionary.class); * Тест проверяет обновление сущности {@link CompanyInfo} в Hazelcast при передаче из Apache Kafka.
* Входной запрос {@link CompanyInfoUpdateRequest}:
* {@link CompanyInfoUpdateRequest#id} - Идентификатор записи
- * {@link CompanyInfoUpdateRequest#corporationSoleType} - 1234
- * {@link CompanyInfoUpdateRequest#countryCode} - 1234
+ * {@link CompanyInfoUpdateRequest#corporationSoleType} - GDIR
+ * {@link CompanyInfoUpdateRequest#countryCode} - RUS
* {@link CompanyInfoUpdateRequest#description} - updated description
- * {@link CompanyInfoUpdateRequest#professionalSign} - 1234
- * {@link CompanyInfoUpdateRequest#legalKind} - 1234
- * {@link CompanyInfoUpdateRequest#organizationType} - 1234
- * {@link CompanyInfoUpdateRequest#residence} - 1234
+ * {@link CompanyInfoUpdateRequest#professionalSign} - ALWD
+ * {@link CompanyInfoUpdateRequest#legalKind} - JURD
+ * {@link CompanyInfoUpdateRequest#organizationType} - NCRD
+ * {@link CompanyInfoUpdateRequest#residence} - RUS
* {@link CompanyInfoUpdateRequest#shortNameEng} - updated shortNameEng
* {@link CompanyInfoUpdateRequest#fullNameEng} - updated fullNameEng
* {@link CompanyInfoUpdateRequest#shortName} - updated shortName
@@ -105,18 +126,19 @@ IMDGDistributedNames.Map_CountryCodeDictionary, CountryCodeDictionary.class); existsCompanyInfo.setFullName("exists fullName"); Company existsCompany = new Company(); existsCompany.setId(ID); + existsCompany.setWorkflowStatus(WorkflowStatus.Active.getKey()); existsCompany.setProfile(existsCompanyInfo); companyImdg.insert(existsCompany); CompanyInfoUpdateRequest companyInfoUpdateRequest = new CompanyInfoUpdateRequest(); companyInfoUpdateRequest.setId(ID); - companyInfoUpdateRequest.setCorporationSoleType("1234"); - companyInfoUpdateRequest.setCountryCode("1234"); + companyInfoUpdateRequest.setCorporationSoleType("GDIR"); + companyInfoUpdateRequest.setCountryCode("RUS"); companyInfoUpdateRequest.setDescription("updated description"); - companyInfoUpdateRequest.setProfessionalSign("1234"); - companyInfoUpdateRequest.setLegalKind("1234"); - companyInfoUpdateRequest.setOrganizationType("1234"); - companyInfoUpdateRequest.setResidence("1234"); + companyInfoUpdateRequest.setProfessionalSign("ALWD"); + companyInfoUpdateRequest.setLegalKind("JURD"); + companyInfoUpdateRequest.setOrganizationType("NCRD"); + companyInfoUpdateRequest.setResidence("RUS"); companyInfoUpdateRequest.setShortNameEng("updated shortNameEng"); companyInfoUpdateRequest.setFullNameEng("updated fullNameEng"); companyInfoUpdateRequest.setShortName("updated shortName"); @@ -125,13 +147,13 @@ IMDGDistributedNames.Map_CountryCodeDictionary, CountryCodeDictionary.class); CompanyInfo predictableCompanyInfo = new CompanyInfo(); predictableCompanyInfo.setId(ID); predictableCompanyInfo.setCompanyId(ID); - predictableCompanyInfo.setCorporationSoleType("1234"); - predictableCompanyInfo.setCountryCode("1234"); + predictableCompanyInfo.setCorporationSoleType("GDIR"); + predictableCompanyInfo.setCountryCode("RUS"); predictableCompanyInfo.setDescription("updated description"); - predictableCompanyInfo.setProfessionalSign("1234"); - predictableCompanyInfo.setLegalKind("1234"); - predictableCompanyInfo.setOrganizationType("1234"); - predictableCompanyInfo.setResidence("1234"); + predictableCompanyInfo.setProfessionalSign("ALWD"); + predictableCompanyInfo.setLegalKind("JURD"); + predictableCompanyInfo.setOrganizationType("NCRD"); + predictableCompanyInfo.setResidence("RUS"); predictableCompanyInfo.setShortNameEng("updated shortNameEng"); predictableCompanyInfo.setFullNameEng("updated fullNameEng"); predictableCompanyInfo.setShortName("updated shortName"); diff --git a/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanyServiceTest.java b/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanyServiceTest.java index e2519cd26..bdcf902a6 100644 --- a/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanyServiceTest.java +++ b/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanyServiceTest.java @@ -45,6 +45,9 @@ import static ru.spcex.clearing.company.utils.TestUtils.*; CompanyService.class, CompanyValidationConfig.class, ValidationConfig.class, + CompanySymbolService.class, + AccountNotificationHelper.class, + RelationHelper.class, KafkaConfigTest.class, HazelcastServiceTestConfiguration.class, diff --git a/platform-parent/platform-imdg-api-hazelcast-impl/src/main/java/ru/spcex/platform/imdg/iml/hazelcast/adapter/ImdgTransactionalHazelcast.java b/platform-parent/platform-imdg-api-hazelcast-impl/src/main/java/ru/spcex/platform/imdg/iml/hazelcast/adapter/ImdgTransactionalHazelcast.java index 8a241c6af..58fa644e8 100644 --- a/platform-parent/platform-imdg-api-hazelcast-impl/src/main/java/ru/spcex/platform/imdg/iml/hazelcast/adapter/ImdgTransactionalHazelcast.java +++ b/platform-parent/platform-imdg-api-hazelcast-impl/src/main/java/ru/spcex/platform/imdg/iml/hazelcast/adapter/ImdgTransactionalHazelcast.java @@ -6,6 +6,7 @@ import com.hazelcast.core.IdGenerator; import com.hazelcast.core.TransactionalMap; import com.hazelcast.query.Predicate; import com.hazelcast.query.Predicates; +import com.hazelcast.query.SqlPredicate; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import ru.spcex.platform.classes.base.SpcexObjectBase; @@ -90,6 +91,14 @@ public class ImdgTransactionalHazelcast implements Im } } + @Override + public Collection getCollectionObjectsBySQL(String paramString) { + SqlPredicate sqlPredicate = new SqlPredicate(paramString); + Collection found = map.values(sqlPredicate); + List result = new ArrayList<>(found); // Hazelcast может вернуть proxy-коллекцию + return result; + } + /** * возвращает коллекцию объектов, удовлетворяющий условиям на поля */