diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/AbstractControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/AbstractControllerTest.java index d210e7118..6e0cf32b8 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/AbstractControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/AbstractControllerTest.java @@ -27,6 +27,7 @@ import org.springframework.test.web.servlet.setup.MockMvcBuilders; import org.springframework.web.context.WebApplicationContext; import org.springframework.web.filter.CharacterEncodingFilter; import ru.clearing.classes.statics.data.user.User; +import ru.spcex.clearing.TestUtils; import ru.spcex.clearing.backendapi.controller.config.*; import ru.spcex.clearing.backendapi.controller.queue.account.AccountBalanceController; import ru.spcex.clearing.backendapi.controller.queue.account.AccountController; @@ -58,8 +59,7 @@ import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllRespo import ru.spcex.clearing.backendapi.domain.actions.IAction; import ru.spcex.clearing.backendapi.meta.GetResponseFactory; import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.imdg.MatcherFactoryImdg; -import ru.spcex.clearing.imdg.TestUtils; +import ru.spcex.clearing.imdg.MatcherFactoryWithJson; import ru.spcex.clearing.platform.messaging.domain.ActionType; import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.platform.classes.base.SpcexObjectBase; @@ -82,7 +82,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers. import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; import static ru.spcex.clearing.imdg.JsonUtil.readValue; import static ru.spcex.clearing.imdg.JsonUtil.writeValue; -import static ru.spcex.clearing.imdg.MatcherFactoryImdg.usingIgnoringFieldsComparator; +import static ru.spcex.clearing.imdg.MatcherFactoryWithJson.usingIgnoringFieldsComparatorForClass; @ContextConfiguration(classes = { @@ -156,8 +156,8 @@ import static ru.spcex.clearing.imdg.MatcherFactoryImdg.usingIgnoringFieldsCompa @WebMvcTest//(controllers = DeleteCompanyController.class) //@TestPropertySource(properties = "spring.config.location=D:/repo/mfd/clearing/clearing-parent/backend-api/src/main/resources/") public abstract class AbstractControllerTest { - protected static final MatcherFactoryImdg.Matcher BASE_REQUEST_MATCHER = usingIgnoringFieldsComparator(BaseRequest.class); - protected static final MatcherFactoryImdg.Matcher CUD_RESPONSE_MATCHER = usingIgnoringFieldsComparator(CudResponse.class); + protected static final MatcherFactoryWithJson.Matcher BASE_REQUEST_MATCHER = usingIgnoringFieldsComparatorForClass(BaseRequest.class); + protected static final MatcherFactoryWithJson.Matcher CUD_RESPONSE_MATCHER = usingIgnoringFieldsComparatorForClass(CudResponse.class); protected static final AtomicLong currentId = new AtomicLong(); private static final CharacterEncodingFilter CHARACTER_ENCODING_FILTER = new CharacterEncodingFilter(); diff --git a/clearing-parent/securities-service/pom.xml b/clearing-parent/securities-service/pom.xml index e838f0eec..29185becc 100644 --- a/clearing-parent/securities-service/pom.xml +++ b/clearing-parent/securities-service/pom.xml @@ -45,6 +45,11 @@ jackson-databind + + ru.spcex.clearing + test-clearing + test + org.springframework.boot spring-boot-starter-test diff --git a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/cud/CouponPeriodService.java b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/cud/CouponPeriodService.java index d99d1e678..cae5e69ab 100644 --- a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/cud/CouponPeriodService.java +++ b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/cud/CouponPeriodService.java @@ -18,7 +18,6 @@ import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate; import ru.spcex.clearing.securities.validation.ValidationProvider; 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; @@ -45,7 +44,7 @@ public class CouponPeriodService extends QueueConsumer implements InitializingBe this.couponPeriodImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_CouponPeriod, CouponPeriod.class); this.imdgProvider = imdgProvider; this.idGenerator = imdgProvider.getImdgIdGenerator(); - this.userRoleVerification = userRoleVerification.setRoleForVerification(UserRole.Admin); + this.userRoleVerification = userRoleVerification; this.validationHelper = validationHelper; } diff --git a/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/AbstractServiceTest.java b/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/AbstractServiceTest.java index e83f7f6cd..98547e2bb 100644 --- a/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/AbstractServiceTest.java +++ b/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/AbstractServiceTest.java @@ -18,6 +18,8 @@ import ru.clearing.classes.statics.data.misc.Currency; import ru.clearing.classes.statics.data.misc.Listing; import ru.clearing.classes.statics.data.misc.MoneyMarketSecurity; import ru.clearing.platform.dictionary.*; +import ru.spcex.clearing.MatcherFactory; +import ru.spcex.clearing.TestUtils; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.securities.component.ListingBuilder; import ru.spcex.clearing.securities.config.ErrorResolverConfig; @@ -25,8 +27,6 @@ import ru.spcex.clearing.securities.config.ImdgTestConfig; import ru.spcex.clearing.securities.config.KafkaTestConfig; import ru.spcex.clearing.securities.config.ValidationConfig; import ru.spcex.clearing.securities.service.cud.*; -import ru.spcex.clearing.securities.utils.MatcherFactory; -import ru.spcex.clearing.securities.utils.TestUtils; import ru.spcex.clearing.securities.validation.ValidationProvider; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; @@ -35,7 +35,7 @@ import java.util.concurrent.atomic.AtomicLong; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.spy; -import static ru.spcex.clearing.securities.utils.MatcherFactory.usingIgnoringFieldsComparator; +import static ru.spcex.clearing.MatcherFactory.usingIgnoringFieldsComparator; @ExtendWith(SpringExtension.class) @ContextConfiguration(classes = { diff --git a/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/CouponPeriodServiceTest.java b/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/CouponPeriodServiceTest.java index c6cc8c02b..b1d750ea4 100644 --- a/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/CouponPeriodServiceTest.java +++ b/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/CouponPeriodServiceTest.java @@ -4,19 +4,19 @@ import org.apache.kafka.clients.consumer.MockConsumer; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import ru.clearing.classes.statics.data.instrument.issue.CouponPeriod; +import ru.spcex.clearing.MatcherFactory; import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; import ru.spcex.clearing.platform.messaging.domain.cud.securitites.CouponPeriodNewRequest; import ru.spcex.clearing.platform.messaging.domain.cud.securitites.CouponPeriodUpdateRequest; import ru.spcex.clearing.securities.service.cud.CouponPeriodService; -import ru.spcex.clearing.securities.utils.MatcherFactory; import javax.annotation.PostConstruct; import java.math.BigDecimal; import java.time.LocalDate; -import static ru.spcex.clearing.securities.utils.MatcherFactory.usingIgnoringFieldsComparator; -import static ru.spcex.clearing.securities.utils.TestUtils.*; +import static ru.spcex.clearing.MatcherFactory.usingIgnoringFieldsComparator; +import static ru.spcex.clearing.TestUtils.*; public class CouponPeriodServiceTest extends AbstractServiceTest { private static final MatcherFactory.Matcher COUPON_PERIOD_MATCHER = usingIgnoringFieldsComparator(); diff --git a/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/CurrencyServiceTest.java b/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/CurrencyServiceTest.java index 525074512..ec5ff1721 100644 --- a/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/CurrencyServiceTest.java +++ b/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/CurrencyServiceTest.java @@ -4,17 +4,18 @@ import org.apache.kafka.clients.consumer.MockConsumer; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import ru.clearing.classes.statics.data.misc.Currency; +import ru.spcex.clearing.MatcherFactory; import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; import ru.spcex.clearing.platform.messaging.domain.cud.securitites.CurrencyNewRequest; import ru.spcex.clearing.platform.messaging.domain.cud.securitites.CurrencyUpdateRequest; import ru.spcex.clearing.securities.service.cud.CurrencyService; -import ru.spcex.clearing.securities.utils.MatcherFactory; import javax.annotation.PostConstruct; -import static ru.spcex.clearing.securities.utils.MatcherFactory.usingIgnoringFieldsComparator; -import static ru.spcex.clearing.securities.utils.TestUtils.*; +import static ru.spcex.clearing.MatcherFactory.usingIgnoringFieldsComparator; +import static ru.spcex.clearing.TestUtils.*; + public class CurrencyServiceTest extends AbstractServiceTest { private static final MatcherFactory.Matcher CURRENCY_MATCHER = usingIgnoringFieldsComparator(); diff --git a/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/EquitySecurityServiceTest.java b/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/EquitySecurityServiceTest.java index ffd9b4355..05d03bd67 100644 --- a/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/EquitySecurityServiceTest.java +++ b/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/EquitySecurityServiceTest.java @@ -5,20 +5,20 @@ import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import ru.clearing.classes.statics.data.instrument.issue.EquitySecurity; import ru.clearing.classes.statics.data.misc.Listing; +import ru.spcex.clearing.MatcherFactory; 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.clearing.platform.messaging.domain.cud.securitites.EquitySecurityNewRequest; import ru.spcex.clearing.platform.messaging.domain.cud.securitites.EquitySecurityUpdateRequest; import ru.spcex.clearing.securities.service.cud.EquitySecurityService; -import ru.spcex.clearing.securities.utils.MatcherFactory; import javax.annotation.PostConstruct; import java.math.BigDecimal; import java.util.Map; -import static ru.spcex.clearing.securities.utils.MatcherFactory.usingIgnoringFieldsComparator; -import static ru.spcex.clearing.securities.utils.TestUtils.*; +import static ru.spcex.clearing.MatcherFactory.usingIgnoringFieldsComparator; +import static ru.spcex.clearing.TestUtils.*; public class EquitySecurityServiceTest extends AbstractServiceTest { private static final MatcherFactory.Matcher EQUITY_SECURITY_MATCHER = usingIgnoringFieldsComparator("created", "updated"); diff --git a/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/FixedIncomeCashFlowServiceTest.java b/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/FixedIncomeCashFlowServiceTest.java index 18214b4a2..7f7ee673d 100644 --- a/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/FixedIncomeCashFlowServiceTest.java +++ b/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/FixedIncomeCashFlowServiceTest.java @@ -13,6 +13,7 @@ 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.instrument.issue.FixedIncomeCashFlow; +import ru.spcex.clearing.MatcherFactory; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.Consts; import ru.spcex.clearing.platform.messaging.domain.cud.securitites.FixedIncomeCashFlowNewRequest; @@ -23,7 +24,6 @@ import ru.spcex.clearing.securities.config.KafkaTestConfig; import ru.spcex.clearing.securities.config.ValidationConfig; import ru.spcex.clearing.securities.config.validation.FixedIncomeCashFlowValidationConfig; import ru.spcex.clearing.securities.service.cud.FixedIncomeCashFlowService; -import ru.spcex.clearing.securities.utils.MatcherFactory.Matcher; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; @@ -31,9 +31,9 @@ import javax.annotation.PostConstruct; import java.math.BigDecimal; import java.time.LocalDate; +import static ru.spcex.clearing.MatcherFactory.usingIgnoringFieldsComparator; +import static ru.spcex.clearing.TestUtils.*; import static ru.spcex.clearing.securities.config.ImdgTestConfig.currentID; -import static ru.spcex.clearing.securities.utils.MatcherFactory.usingIgnoringFieldsComparator; -import static ru.spcex.clearing.securities.utils.TestUtils.*; @ExtendWith(SpringExtension.class) @ContextConfiguration(classes = { @@ -44,7 +44,7 @@ import static ru.spcex.clearing.securities.utils.TestUtils.*; KafkaTestConfig.class, ImdgTestConfig.class}) class FixedIncomeCashFlowServiceTest { - public static final Matcher FIXED_INCOME_CASH_FLOW_MATCHER = usingIgnoringFieldsComparator(); + public static final MatcherFactory.Matcher FIXED_INCOME_CASH_FLOW_MATCHER = usingIgnoringFieldsComparator(); private static final String TOPIC_FIXED_INCOME_CASH_FLOW_NEW = Consts.DESTINATION_FIXED_INCOME_CASH_FLOW_NEW; private static final String TOPIC_FIXED_INCOME_CASH_FLOW_UPDATE = Consts.DESTINATION_FIXED_INCOME_CASH_FLOW_UPDATE; diff --git a/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/FixedIncomeSecurityServiceTest.java b/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/FixedIncomeSecurityServiceTest.java index 818633338..8470d6a23 100644 --- a/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/FixedIncomeSecurityServiceTest.java +++ b/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/FixedIncomeSecurityServiceTest.java @@ -5,21 +5,21 @@ import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import ru.clearing.classes.statics.data.instrument.issue.FixedIncomeSecurity; import ru.clearing.classes.statics.data.misc.Listing; +import ru.spcex.clearing.MatcherFactory; 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.clearing.platform.messaging.domain.cud.securitites.FixedIncomeSecurityNewRequest; import ru.spcex.clearing.platform.messaging.domain.cud.securitites.FixedIncomeSecurityUpdateRequest; import ru.spcex.clearing.securities.service.cud.FixedIncomeSecurityService; -import ru.spcex.clearing.securities.utils.MatcherFactory; import javax.annotation.PostConstruct; import java.math.BigDecimal; import java.time.LocalDate; import java.util.Map; -import static ru.spcex.clearing.securities.utils.MatcherFactory.usingIgnoringFieldsComparator; -import static ru.spcex.clearing.securities.utils.TestUtils.*; +import static ru.spcex.clearing.MatcherFactory.usingIgnoringFieldsComparator; +import static ru.spcex.clearing.TestUtils.*; public class FixedIncomeSecurityServiceTest extends AbstractServiceTest { private static final MatcherFactory.Matcher FIXED_INCOME_SECURITY_MATCHER = usingIgnoringFieldsComparator("created", "updated"); diff --git a/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/MoneyMarketSecurityServiceTest.java b/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/MoneyMarketSecurityServiceTest.java index e5ddda98b..e65e48a91 100644 --- a/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/MoneyMarketSecurityServiceTest.java +++ b/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/MoneyMarketSecurityServiceTest.java @@ -5,6 +5,7 @@ import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import ru.clearing.classes.statics.data.misc.Listing; import ru.clearing.classes.statics.data.misc.MoneyMarketSecurity; +import ru.spcex.clearing.MatcherFactory; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; @@ -14,15 +15,14 @@ import ru.spcex.clearing.platform.messaging.domain.cud.securitites.MoneyMarketSe import ru.spcex.clearing.platform.messaging.service.RequestInfo; import ru.spcex.clearing.platform.messaging.service.Status; import ru.spcex.clearing.securities.service.cud.MoneyMarketSecurityService; -import ru.spcex.clearing.securities.utils.MatcherFactory; import ru.spcex.platform.imdg.api.Imdg; import javax.annotation.PostConstruct; import java.math.BigDecimal; import java.util.Map; -import static ru.spcex.clearing.securities.utils.MatcherFactory.usingIgnoringFieldsComparator; -import static ru.spcex.clearing.securities.utils.TestUtils.*; +import static ru.spcex.clearing.MatcherFactory.usingIgnoringFieldsComparator; +import static ru.spcex.clearing.TestUtils.*; public class MoneyMarketSecurityServiceTest extends AbstractServiceTest{ private static final MatcherFactory.Matcher MONEY_MARKET_SECURITY_MATCHER = usingIgnoringFieldsComparator("created", "updated"); diff --git a/clearing-parent/test-clearing/pom.xml b/clearing-parent/test-clearing/pom.xml index 6cd40dfc1..cae0c252e 100644 --- a/clearing-parent/test-clearing/pom.xml +++ b/clearing-parent/test-clearing/pom.xml @@ -8,11 +8,8 @@ test-clearing Test-clearing + SPCEX-1.0.0.0 - - org.springframework.boot - spring-boot-starter-web - ru.spcex.platform platform-imdg-api @@ -21,6 +18,10 @@ ru.spcex.platform platform-messaging + + org.springframework.boot + spring-boot-starter-web + com.fasterxml.jackson.core jackson-databind @@ -28,50 +29,27 @@ org.springframework spring-test - test org.skyscreamer jsonassert - test - - - org.junit.jupiter - junit-jupiter - test org.assertj assertj-core - test org.reflections reflections 0.9.11 - - org.springframework.boot - spring-boot-test-autoconfigure - test - org.mockito mockito-core - org.springframework - spring-test - - - org.assertj - assertj-core - 3.23.1 - - - com.fasterxml.jackson.datatype - jackson-datatype-jsr310 + org.junit.jupiter + junit-jupiter-api - SPCEX-1.0.0.0 diff --git a/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/utils/MatcherFactory.java b/clearing-parent/test-clearing/src/main/java/ru/spcex/clearing/MatcherFactory.java similarity index 96% rename from clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/utils/MatcherFactory.java rename to clearing-parent/test-clearing/src/main/java/ru/spcex/clearing/MatcherFactory.java index 63bd29dab..bf8c58af3 100644 --- a/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/utils/MatcherFactory.java +++ b/clearing-parent/test-clearing/src/main/java/ru/spcex/clearing/MatcherFactory.java @@ -1,4 +1,4 @@ -package ru.spcex.clearing.securities.utils; +package ru.spcex.clearing; import java.util.Arrays; @@ -35,4 +35,4 @@ public class MatcherFactory { assertThat(actual).usingRecursiveFieldByFieldElementComparatorIgnoringFields(fieldsToIgnore).isEqualTo(expected); } } -} \ No newline at end of file +} diff --git a/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/utils/TestUtils.java b/clearing-parent/test-clearing/src/main/java/ru/spcex/clearing/TestUtils.java similarity index 75% rename from clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/utils/TestUtils.java rename to clearing-parent/test-clearing/src/main/java/ru/spcex/clearing/TestUtils.java index c34e15531..e97deebb6 100644 --- a/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/utils/TestUtils.java +++ b/clearing-parent/test-clearing/src/main/java/ru/spcex/clearing/TestUtils.java @@ -1,4 +1,4 @@ -package ru.spcex.clearing.securities.utils; +package ru.spcex.clearing; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; @@ -13,12 +13,14 @@ 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.service.RequestInfoUpdate; +import ru.spcex.clearing.platform.messaging.service.Status; import ru.spcex.platform.classes.base.SpcexObjectBase; import ru.spcex.platform.imdg.api.Imdg; import java.util.Collection; import java.util.Collections; import java.util.HashMap; +import java.util.List; import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; @@ -27,8 +29,8 @@ import java.util.concurrent.TimeoutException; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.mockito.Mockito.timeout; import static org.mockito.Mockito.verify; +import static ru.spcex.clearing.MatcherFactory.usingIgnoringFieldsComparator; import static ru.spcex.clearing.platform.messaging.service.Status.Success; -import static ru.spcex.clearing.securities.utils.MatcherFactory.usingIgnoringFieldsComparator; public class TestUtils { public static final MatcherFactory.Matcher> BASE_REQUEST_MATCHER = usingIgnoringFieldsComparator(); @@ -52,6 +54,29 @@ public class TestUtils { BASE_REQUEST_MATCHER.assertMatch(baseRequestResult, predictableBaseRequest); } + public static void waitingWhenTryAddRecordAndCheckError(Long id, + MockProducer mockProducer, + ArgumentCaptor producerRecord, + String errorCode, + List errorMessageArgs) { + BaseRequest predictableBaseRequest = new BaseRequest<>(); + predictableBaseRequest.setId(id); + predictableBaseRequest.setActionType(ActionType.SYSTEM); + RequestInfoUpdate requestInfoUpdate = new RequestInfoUpdate(); + requestInfoUpdate.setId(id); + requestInfoUpdate.setStatus(Status.Error); + String errorsMessage = "(%s) args [%s]".formatted(errorCode, String.join(", ", errorMessageArgs)); + requestInfoUpdate.setMessage(errorsMessage); + predictableBaseRequest.setRequestPayload(requestInfoUpdate); + + //waiting for kafka producer send message (finale event) + verify(mockProducer, timeout(30_000L).times(1)) + .send(producerRecord.capture()); + + BaseRequest baseRequestResult = (BaseRequest) producerRecord.getValue().value(); + assertEquals(Consts.REQUEST_INFO_UPDATE, producerRecord.getValue().topic()); + BASE_REQUEST_MATCHER.assertMatch(baseRequestResult, predictableBaseRequest); + } public static void addRecordToKafka(MockConsumer mockConsumer, String topic, int partition, long offset, String jsonValue) { TopicPartition tp = new TopicPartition(topic, partition); HashMap startOffsets = new HashMap<>(); diff --git a/clearing-parent/test-clearing/src/main/java/ru/spcex/clearing/imdg/MatcherFactoryImdg.java b/clearing-parent/test-clearing/src/main/java/ru/spcex/clearing/imdg/MatcherFactoryWithJson.java similarity index 84% rename from clearing-parent/test-clearing/src/main/java/ru/spcex/clearing/imdg/MatcherFactoryImdg.java rename to clearing-parent/test-clearing/src/main/java/ru/spcex/clearing/imdg/MatcherFactoryWithJson.java index ac61b25cd..ae8a5bbd5 100644 --- a/clearing-parent/test-clearing/src/main/java/ru/spcex/clearing/imdg/MatcherFactoryImdg.java +++ b/clearing-parent/test-clearing/src/main/java/ru/spcex/clearing/imdg/MatcherFactoryWithJson.java @@ -15,20 +15,20 @@ import java.util.function.BiConsumer; * Comparing actual and expected objects via AssertJ * Support converting json MvcResult to objects for comparation. */ -public class MatcherFactoryImdg { +public class MatcherFactoryWithJson { - public static Matcher usingAssertions(Class clazz, BiConsumer assertion, BiConsumer, Iterable> iterableAssertion) { + public static Matcher usingAssertionsForClass(Class clazz, BiConsumer assertion, BiConsumer, Iterable> iterableAssertion) { return new Matcher<>(clazz, assertion, iterableAssertion); } - public static Matcher usingEqualsComparator(Class clazz) { - return usingAssertions(clazz, + public static Matcher usingEqualsComparatorForClass(Class clazz) { + return usingAssertionsForClass(clazz, (a, e) -> Assertions.assertThat(a).isEqualTo(e), (a, e) -> Assertions.assertThat(a).isEqualTo(e)); } - public static Matcher usingIgnoringFieldsComparator(Class clazz, String... fieldsToIgnore) { - return usingAssertions(clazz, + public static Matcher usingIgnoringFieldsComparatorForClass(Class clazz, String... fieldsToIgnore) { + return usingAssertionsForClass(clazz, (a, e) -> Assertions.assertThat(a).usingRecursiveComparison().ignoringFields(fieldsToIgnore).isEqualTo(e), (a, e) -> Assertions.assertThat(a).usingRecursiveFieldByFieldElementComparatorIgnoringFields(fieldsToIgnore).isEqualTo(e)); } diff --git a/clearing-parent/test-clearing/src/main/java/ru/spcex/clearing/imdg/TestUtils.java b/clearing-parent/test-clearing/src/main/java/ru/spcex/clearing/imdg/TestUtils.java deleted file mode 100644 index 9c109a595..000000000 --- a/clearing-parent/test-clearing/src/main/java/ru/spcex/clearing/imdg/TestUtils.java +++ /dev/null @@ -1,95 +0,0 @@ -package ru.spcex.clearing.imdg; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import org.apache.kafka.clients.consumer.ConsumerRecord; -import org.apache.kafka.clients.consumer.MockConsumer; -import org.apache.kafka.clients.producer.RecordMetadata; -import org.apache.kafka.common.TopicPartition; -import ru.spcex.clearing.platform.messaging.domain.ActionType; -import ru.spcex.clearing.platform.messaging.domain.BaseRequest; -import ru.spcex.platform.classes.base.SpcexObjectBase; -import ru.spcex.platform.imdg.api.Imdg; - -import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; -import java.util.concurrent.ExecutionException; -import java.util.concurrent.Future; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.TimeoutException; - -public class TestUtils { - private static final ObjectMapper objectMapper = new ObjectMapper(); - - public static void addRecordToKafka(MockConsumer mockConsumer, String topic, int partition, long offset, String jsonValue) { - TopicPartition tp = new TopicPartition(topic, partition); - HashMap startOffsets = new HashMap<>(); - startOffsets.put(tp, 0L); - mockConsumer.updateBeginningOffsets(startOffsets); - mockConsumer.schedulePollTask(() -> { - mockConsumer.rebalance(Collections.singletonList(tp)); - mockConsumer.addRecord(new ConsumerRecord<>(topic, partition, offset, "key", jsonValue)); - }); - } - - public static String getJsonStringForNew(T accountRequest, long id) { - return getJsonBaseRequest(accountRequest, id, ActionType.NEW); - } - - public static String getJsonStringForUPDATE(T accountRequest, long id) { - return getJsonBaseRequest(accountRequest, id, ActionType.UPDATE); - } - - public static String getJsonStringForDELETE(T accountRequest, long id) { - return getJsonBaseRequest(accountRequest, id, ActionType.DELETE); - } - - private static String getJsonBaseRequest(T accountRequest, long id, ActionType actionType) { - BaseRequest baseRequest = new BaseRequest<>(); - baseRequest.setRequestPayload(accountRequest); - baseRequest.setId(id); - baseRequest.setActionType(actionType); - String jsonBaseRequest; - try { - jsonBaseRequest = objectMapper.writeValueAsString(baseRequest); - } catch (JsonProcessingException e) { - throw new RuntimeException(e); - } - return jsonBaseRequest; - } - - public static void clearImdg(Imdg imdg) { - Collection values = imdg.getAllValues(); - for (T val : values) { - imdg.delete(val); - } - } - - public static class FutureRecordMetadata implements Future { - @Override - public boolean cancel(boolean mayInterruptIfRunning) { - return false; - } - - @Override - public boolean isCancelled() { - return false; - } - - @Override - public boolean isDone() { - return false; - } - - @Override - public RecordMetadata get() throws InterruptedException, ExecutionException { - return null; - } - - @Override - public RecordMetadata get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException { - return null; - } - } -}