ClearingMemberCategoryServiceTest fix

This commit is contained in:
akulikov 2023-04-03 17:39:04 +03:00
parent ae1d52794a
commit 2032c156a8
6 changed files with 63 additions and 26 deletions

View file

@ -93,7 +93,6 @@ public record DictionaryPresentRule<R, D extends AbstractDictionary>(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);

View file

@ -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<String, Object> createConsumer(CompanyServiceSettings settings) {
return KafkaConsumerFactory.consumer(settings.getKafkaConsumer());
}
@Autowired
@Bean
@Bean("kafkaProducer")
public Producer<String, Object> createProducer(CompanyServiceSettings settings) {
return KafkaProducerFactory.producer(settings.getKafkaProducer());
}

View file

@ -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<String> 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<String> 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",

View file

@ -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;
}

View file

@ -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;

View file

@ -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<String, Object> 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<ClearingCategoryDictionary> clearingCategoryDictionaryImdg = hazelcastServiceTest.getImdg(
IMDGDistributedNames.Map_ClearingCategoryDictionary,
ClearingCategoryDictionary.class
);
Imdg<Company> 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);