From a26d8dd27caea85661816ff2e698db82c54eea33 Mon Sep 17 00:00:00 2001 From: psemenkov Date: Fri, 16 Sep 2022 16:07:48 +0300 Subject: [PATCH] http://git.mfd.msk/mfd/clearing/issues/6 --- CompanyServiceTest test done --- .../ClearingMemberCategoryServiceTest.java | 1 - .../company/service/CompanyServiceTest.java | 104 ++++++++++++++++++ 2 files changed, 104 insertions(+), 1 deletion(-) create mode 100644 clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanyServiceTest.java 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 f1ba03fc4..6ef2c71e1 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 @@ -154,7 +154,6 @@ class ClearingMemberCategoryServiceTest { //ASSERT Thread.sleep(10000); - ClearingMemberCategory resultUpdating = iMap.get(currentId); Assertions.assertEquals(0, iMap.size()); //preparing hazelcastImdgProvider for next test 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 new file mode 100644 index 000000000..fd1708dc6 --- /dev/null +++ b/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanyServiceTest.java @@ -0,0 +1,104 @@ +package ru.spcex.clearing.company.service; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.hazelcast.core.IMap; +import org.apache.kafka.clients.consumer.ConsumerRecord; +import org.apache.kafka.clients.consumer.MockConsumer; +import org.apache.kafka.clients.consumer.OffsetResetStrategy; +import org.apache.kafka.common.TopicPartition; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +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.spcex.clearing.company.config.HazelcastServiceTestConfiguration; +import ru.spcex.clearing.company.utils.MatcherFactory; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.platform.messaging.domain.ActionType; +import ru.spcex.clearing.platform.messaging.domain.BaseRequest; +import ru.spcex.clearing.platform.messaging.domain.Consts; +import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest; +import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService; + +import java.util.Collections; +import java.util.HashMap; + +import static ru.spcex.clearing.company.utils.MatcherFactory.usingIgnoringFieldsComparator; + +@ExtendWith(SpringExtension.class) +@ContextConfiguration(classes = { + HazelcastServiceTestConfiguration.class}) +class CompanyServiceTest { + + public static final MatcherFactory.Matcher COMPANY_MATCHER = usingIgnoringFieldsComparator(); + private static final int PARTITION = 0; + private static final String TOPIC_COMPANY_DELETE = Consts.DESTINATION_COMPANY_DELETE; + private static Long currentId = 0L; + + @Autowired + @Qualifier("hazelcastServiceTest") + private HazelcastService hazelcastServiceTest; + private MockConsumer mockConsumer; + + @BeforeEach + void setUp() { + mockConsumer = new MockConsumer<>(OffsetResetStrategy.EARLIEST); + } + + @Test + void deleteCompany() throws InterruptedException { + //ARRANGE + Company existsCompany = new Company(); + existsCompany.setId(currentId); + + CommonDeleteRequest memberCategoryDeleteRequest = new CommonDeleteRequest(); + memberCategoryDeleteRequest.setId(currentId); + + BaseRequest baseDeleteRequest = new BaseRequest<>(); + baseDeleteRequest.setRequestPayload(memberCategoryDeleteRequest); + baseDeleteRequest.setId(currentId); + baseDeleteRequest.setActionType(ActionType.DELETE); + String jsonBaseForDeleteRequest; + ObjectMapper objectMapper = new ObjectMapper(); + try { + jsonBaseForDeleteRequest = objectMapper.writeValueAsString(baseDeleteRequest); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + + //ACT + //service set up + CompanyService companyService = new CompanyService(mockConsumer, hazelcastServiceTest); + Thread.sleep(10000); + //callbacks set up + companyService.afterPropertiesSet(); + Thread.sleep(10000); + + IMap iMap = hazelcastServiceTest.getHazelcast().getMap(IMDGDistributedNames.Map_Company); + iMap.put(currentId, existsCompany); + + //KAFKA + mockConsumer.schedulePollTask(() -> { + mockConsumer.rebalance(Collections.singletonList(new TopicPartition(TOPIC_COMPANY_DELETE, PARTITION))); + mockConsumer.addRecord(new ConsumerRecord<>(TOPIC_COMPANY_DELETE, PARTITION, 0, "key", jsonBaseForDeleteRequest)); + }); + HashMap startOffsetsUpdating = new HashMap<>(); + TopicPartition tpDeleting = new TopicPartition(TOPIC_COMPANY_DELETE, PARTITION); + startOffsetsUpdating.put(tpDeleting, 0L); + mockConsumer.updateBeginningOffsets(startOffsetsUpdating); + + //ASSERT + Thread.sleep(10000); + Assertions.assertEquals(0, iMap.size()); + + //preparing hazelcastImdgProvider for next test + iMap.clear(); + currentId++; + } +} \ No newline at end of file