From 2032c156a89becaf4e9658c12b582dc78033e9d6 Mon Sep 17 00:00:00 2001 From: akulikov Date: Mon, 3 Apr 2023 17:39:04 +0300 Subject: [PATCH] ClearingMemberCategoryServiceTest fix --- .../common/rules/DictionaryPresentRule.java | 1 - .../clearing/company/config/KafkaConfig.java | 4 +- ...learingMemberCategoryValidationConfig.java | 10 ++- .../config/validation/ValidationConfig.java | 2 + .../company/service/CompanyService.java | 8 +-- .../ClearingMemberCategoryServiceTest.java | 64 +++++++++++++++---- 6 files changed, 63 insertions(+), 26 deletions(-) diff --git a/clearing-parent/clearing-utils/src/main/java/ru/spcex/clearing/validation/common/rules/DictionaryPresentRule.java b/clearing-parent/clearing-utils/src/main/java/ru/spcex/clearing/validation/common/rules/DictionaryPresentRule.java index 130e3ecef..67b6586c9 100644 --- a/clearing-parent/clearing-utils/src/main/java/ru/spcex/clearing/validation/common/rules/DictionaryPresentRule.java +++ b/clearing-parent/clearing-utils/src/main/java/ru/spcex/clearing/validation/common/rules/DictionaryPresentRule.java @@ -93,7 +93,6 @@ public record DictionaryPresentRule(String fiel if (fromMap.isEmpty()) { return of(errorWrongDictionaryValue, fieldName); } - assert fromMap.size() == 1; D dictionaryFromMap = fromMap.iterator().next(); if (dictionaryFromMap == null) { return of(errorWrongDictionaryValue, fieldName); diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/KafkaConfig.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/KafkaConfig.java index 0be729887..40334c15c 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/KafkaConfig.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/KafkaConfig.java @@ -15,13 +15,13 @@ import ru.spcex.clearing.platform.messaging.config.KafkaProducerFactory; public class KafkaConfig { @Autowired @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) - @Bean + @Bean("kafkaConsumer") public Consumer createConsumer(CompanyServiceSettings settings) { return KafkaConsumerFactory.consumer(settings.getKafkaConsumer()); } @Autowired - @Bean + @Bean("kafkaProducer") public Producer createProducer(CompanyServiceSettings settings) { return KafkaProducerFactory.producer(settings.getKafkaProducer()); } diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/ClearingMemberCategoryValidationConfig.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/ClearingMemberCategoryValidationConfig.java index c73dc84b8..c41e4283d 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/ClearingMemberCategoryValidationConfig.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/ClearingMemberCategoryValidationConfig.java @@ -12,7 +12,6 @@ import ru.spcex.clearing.platform.messaging.domain.cud.company.ClearingMemberCat import ru.spcex.clearing.platform.messaging.domain.cud.company.ClearingMemberCategoryUpdateRequest; 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.ClearingCategory; @@ -38,6 +37,7 @@ public class ClearingMemberCategoryValidationConfig { context.setValidatedObject(clearingMemberCategoryNewRequest); Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); addImdg.accept(IMDGDistributedNames.Map_Company); + addImdg.accept(IMDGDistributedNames.Map_ClearingCategoryDictionary); return new ValidatorImpl<>(context, IdPresentRule.instance("companyId", ClearingMemberCategoryNewRequest::getCompanyId, @@ -46,9 +46,12 @@ public class ClearingMemberCategoryValidationConfig { CompanyErrors.RequiredFieldEmpty, CompanyErrors.CompanyNotFound, company -> WorkflowStatus.Active.getKey().equals(company.getWorkflowStatus()) ? null : CompanyErrors.CompanyDisabled), - FieldRequiredRule.instance("clearingMemberCategory", + DictionaryPresentRule.instance("clearingMemberCategory", ClearingMemberCategoryNewRequest::getClearingMemberCategory, - CompanyErrors.RequiredFieldEmpty)); + IMDGDistributedNames.Map_ClearingCategoryDictionary, + ClearingCategoryDictionary.class, + CompanyErrors.RequiredFieldEmpty, + CompanyErrors.CategoryNotFound)); }; } @@ -61,6 +64,7 @@ public class ClearingMemberCategoryValidationConfig { context.setValidatedObject(clearingMemberCategoryUpdateRequest); Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); addImdg.accept(IMDGDistributedNames.Map_Company); + addImdg.accept(IMDGDistributedNames.Map_ClearingCategoryDictionary); addImdg.accept(IMDGDistributedNames.Map_ClearingMemberCategory); return new ValidatorImpl<>(context, 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 9098271e0..617eceff3 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 @@ -4,6 +4,7 @@ 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.generated.ClearingMemberCategory; +import ru.clearing.platform.dictionary.ClearingCategoryDictionary; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.validation.common.ValidationHelper; import ru.spcex.platform.classes.base.SpcexObjectBase; @@ -25,6 +26,7 @@ public class ValidationConfig { addImdg.accept(IMDGDistributedNames.Map_Company, Company.class); addImdg.accept(IMDGDistributedNames.Map_ClearingMemberCategory, ClearingMemberCategory.class); + addImdg.accept(IMDGDistributedNames.Map_ClearingCategoryDictionary, ClearingCategoryDictionary.class); return imdg; } diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyService.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyService.java index 2995c5361..9a38c614d 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyService.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyService.java @@ -9,7 +9,6 @@ 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.Company; -import ru.spcex.clearing.company.error.CompanyErrors; import ru.spcex.clearing.company.util.RequestHelper; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.BaseRequest; @@ -17,18 +16,13 @@ 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.company.CompanyNewRequest; import ru.spcex.clearing.platform.messaging.service.QueueConsumer; -import ru.spcex.clearing.util.security.UserRoleVerification; -import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate; -import ru.spcex.clearing.platform.messaging.service.Status; -import ru.spcex.platform.enumeration.*; +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.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.log.ExceptionUtils; import ru.spcex.platform.utils.validation.IValidator; import java.time.Instant; diff --git a/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/ClearingMemberCategoryServiceTest.java b/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/ClearingMemberCategoryServiceTest.java index 5c7b9680a..25ae9344b 100644 --- a/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/ClearingMemberCategoryServiceTest.java +++ b/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/ClearingMemberCategoryServiceTest.java @@ -13,9 +13,14 @@ 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.company.Company; import ru.clearing.classes.statics.data.generated.ClearingMemberCategory; +import ru.clearing.platform.dictionary.ClearingCategoryDictionary; +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.ClearingMemberCategoryValidationConfig; +import ru.spcex.clearing.company.config.validation.ValidationConfig; import ru.spcex.clearing.company.utils.MatcherFactory.Matcher; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.BaseRequest; @@ -23,6 +28,8 @@ 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.company.ClearingMemberCategoryNewRequest; import ru.spcex.clearing.platform.messaging.domain.cud.company.ClearingMemberCategoryUpdateRequest; +import ru.spcex.platform.enumeration.ClearingCategory; +import ru.spcex.platform.enumeration.WorkflowStatus; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService; @@ -34,7 +41,10 @@ import static ru.spcex.clearing.company.utils.TestUtils.*; @ExtendWith(SpringExtension.class) @ContextConfiguration(classes = { + BeanConfiguration.class, + ValidationConfig.class, ClearingMemberCategoryService.class, + ClearingMemberCategoryValidationConfig.class, KafkaConfigTest.class, HazelcastServiceTestConfiguration.class}) class ClearingMemberCategoryServiceTest { @@ -44,7 +54,7 @@ class ClearingMemberCategoryServiceTest { private static final String TOPIC_MEMBER_CATEGORY_NEW = Consts.DESTINATION_CLEARING_MEMBER_CATEGORY_NEW; private static final String TOPIC_MEMBER_CATEGORY_UPDATE = Consts.DESTINATION_CLEARING_MEMBER_CATEGORY_UPDATE; private static final String TOPIC_MEMBER_CATEGORY_DELETE = Consts.DESTINATION_CLEARING_MEMBER_CATEGORY_DELETE; - private static final Long ID = currentID.getAndIncrement(); + private static final Long ID = currentID.incrementAndGet(); @Autowired ClearingMemberCategoryService clearingMemberCategoryService; @Autowired @@ -57,22 +67,48 @@ class ClearingMemberCategoryServiceTest { @SpyBean private MockProducer mockProducer; + private final long COMPANY_ID = 777L; + private Company TEST_COMPANY; + + private final String CLEARING_CATEGORY_DICT_CODE = ClearingCategory.B.getKey(); + private ClearingCategoryDictionary clearingCategoryDictionary; + @PostConstruct private void init() { hazelcastServiceTest.waitAvailable(); - memberCategoryImdg = hazelcastServiceTest.getImdg(IMDGDistributedNames.Map_ClearingMemberCategory, ClearingMemberCategory.class); + memberCategoryImdg = hazelcastServiceTest.getImdg( + IMDGDistributedNames.Map_ClearingMemberCategory, + ClearingMemberCategory.class + ); + Imdg clearingCategoryDictionaryImdg = hazelcastServiceTest.getImdg( + IMDGDistributedNames.Map_ClearingCategoryDictionary, + ClearingCategoryDictionary.class + ); + + Imdg companyImdg = hazelcastServiceTest.getImdg(IMDGDistributedNames.Map_Company, Company.class); + TEST_COMPANY = new Company(); + TEST_COMPANY.setId(COMPANY_ID); + TEST_COMPANY.setWorkflowStatus(WorkflowStatus.Active.getKey()); + companyImdg.insert(TEST_COMPANY); + + clearingCategoryDictionary = new ClearingCategoryDictionary(); + clearingCategoryDictionary.setCode(CLEARING_CATEGORY_DICT_CODE); + clearingCategoryDictionaryImdg.insert(clearingCategoryDictionary); + } @Test void clearingMemberCategoryNew() throws InterruptedException { //ARRANGE - String clearingMemberCategory = "1234"; + String clearingMemberCategory = CLEARING_CATEGORY_DICT_CODE; ClearingMemberCategoryNewRequest memberCategoryNewRequest = new ClearingMemberCategoryNewRequest(); memberCategoryNewRequest.setClearingMemberCategory(clearingMemberCategory); + memberCategoryNewRequest.setCompanyId(TEST_COMPANY.getId()); ClearingMemberCategory predictableClearingMemberCategory = new ClearingMemberCategory(); predictableClearingMemberCategory.setId(ID); - predictableClearingMemberCategory.setClearingMemberCategory("1234"); + predictableClearingMemberCategory.setCompanyId(COMPANY_ID); + predictableClearingMemberCategory.setClearingMemberCategory(clearingMemberCategory); //ACT String jsonString = getJsonStringForNew(memberCategoryNewRequest, ID); @@ -95,17 +131,19 @@ class ClearingMemberCategoryServiceTest { @Test void clearingMemberCategoryUpdate() throws InterruptedException { //ARRANGE - String clearingMemberCategory = "1234"; - ClearingMemberCategory existsСlearingMemberCategory = new ClearingMemberCategory(); - existsСlearingMemberCategory.setId(ID); - existsСlearingMemberCategory.setClearingMemberCategory("0000"); - memberCategoryImdg.insert(existsСlearingMemberCategory); + String clearingMemberCategory = CLEARING_CATEGORY_DICT_CODE; + ClearingMemberCategory existsClearingMemberCategory = new ClearingMemberCategory(); + existsClearingMemberCategory.setId(ID); + existsClearingMemberCategory.setClearingMemberCategory("0000"); + existsClearingMemberCategory.setCompanyId(COMPANY_ID); + memberCategoryImdg.insert(existsClearingMemberCategory); ClearingMemberCategoryUpdateRequest memberCategoryUpdateRequest = new ClearingMemberCategoryUpdateRequest(); memberCategoryUpdateRequest.setId(ID); memberCategoryUpdateRequest.setClearingMemberCategory(clearingMemberCategory); ClearingMemberCategory predictableClearingMemberCategory = new ClearingMemberCategory(); + predictableClearingMemberCategory.setCompanyId(COMPANY_ID); predictableClearingMemberCategory.setId(ID); predictableClearingMemberCategory.setClearingMemberCategory(clearingMemberCategory); @@ -130,10 +168,10 @@ class ClearingMemberCategoryServiceTest { void clearingMemberCategoryDelete() throws InterruptedException { //ARRANGE String clearingMemberCategory = "0000"; - ClearingMemberCategory existsСlearingMemberCategory = new ClearingMemberCategory(); - existsСlearingMemberCategory.setId(ID); - existsСlearingMemberCategory.setClearingMemberCategory(clearingMemberCategory); - memberCategoryImdg.insert(existsСlearingMemberCategory); + ClearingMemberCategory existsClearingMemberCategory = new ClearingMemberCategory(); + existsClearingMemberCategory.setId(ID); + existsClearingMemberCategory.setClearingMemberCategory(clearingMemberCategory); + memberCategoryImdg.insert(existsClearingMemberCategory); CommonDeleteRequest memberCategoryDeleteRequest = new CommonDeleteRequest(); memberCategoryDeleteRequest.setId(ID);