From de54b1c94a71f9b01fdc92852ac4ebf12fdf788c Mon Sep 17 00:00:00 2001 From: psemenkov Date: Mon, 20 Mar 2023 12:44:28 +0300 Subject: [PATCH] Fixing VerificationResultComponentTest and PaymentUpdateBySdf04Test. --- .../service/PaymentUpdateBySdf04Test.java | 6 +++ .../VerificationResultComponentTest.java | 53 +++++++++++++++---- 2 files changed, 48 insertions(+), 11 deletions(-) diff --git a/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/service/PaymentUpdateBySdf04Test.java b/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/service/PaymentUpdateBySdf04Test.java index 1cf4fea50..ecf793c94 100644 --- a/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/service/PaymentUpdateBySdf04Test.java +++ b/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/service/PaymentUpdateBySdf04Test.java @@ -46,6 +46,12 @@ class PaymentUpdateBySdf04Test extends AbstractClearingTest { this.settingResult = ArgumentCaptor.forClass(PaymentInstruction.class); } + /** + * {@link PaymentUpdateBySdf04#updatePayments(Long)} ()}
+ * Тест проверяет обновление сущности + * {@link PaymentInstruction} + * в Hazelcast при передаче из Apache Kafka.
+ */ @Test void updatePayments() throws NoSuchFieldException, IllegalAccessException { //ARRANGE diff --git a/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/service/VerificationResultComponentTest.java b/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/service/VerificationResultComponentTest.java index a58bda101..5f981d193 100644 --- a/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/service/VerificationResultComponentTest.java +++ b/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/service/VerificationResultComponentTest.java @@ -13,6 +13,7 @@ import ru.clearing.classes.statics.data.sdf.SDf01; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.cud.schedule.LauncherCommandRequest; import ru.spcex.platform.enumeration.AccountType; +import ru.spcex.platform.enumeration.ResultStatuses; import ru.spcex.platform.enumeration.Task; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.iml.hazelcast.adapter.ImdgHazelcast; @@ -23,15 +24,15 @@ import java.math.BigDecimal; import java.util.Collection; import java.util.concurrent.atomic.AtomicInteger; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.mockito.Mockito.*; -import static ru.spcex.clearing.utils.TestUtils.addRecordToKafka; -import static ru.spcex.clearing.utils.TestUtils.getJsonStringForUPDATE; +import static ru.spcex.clearing.utils.TestUtils.*; class VerificationResultComponentTest extends AbstractClearingTest { private static final int PARTITION = 0; private static final AtomicInteger currentInteger = new AtomicInteger(1); private static final String TOPIC_VERIFICATION = Task.getVerification.topic(); - private final ArgumentCaptor settingResult = ArgumentCaptor.forClass(VerificationResult.class); + @Autowired EventsReceiver eventsReceiver; private Imdg sdf01Imdg; @@ -53,8 +54,6 @@ class VerificationResultComponentTest extends AbstractClearingTest { .serializable() .spiedInstance(verificationResultImdg) .defaultAnswer(CALLS_REAL_METHODS)); - - //setting imdg for been VerificationResultComponent Field dbServiceField = null; try { dbServiceField = VerificationResultComponent.class.getDeclaredField("verificationResultImdg"); @@ -67,10 +66,15 @@ class VerificationResultComponentTest extends AbstractClearingTest { } } + /** + * {@link VerificationResultComponent#executeRevision()} ()}
+ * Тест проверяет создание сущностей + * {@link VerificationResult} + * в Hazelcast при передаче из Apache Kafka.
+ */ @Test void executeRevision() { //ARRANGE - int times = currentInteger.getAndIncrement(); Long companyId = 10L; String acc = "15444876546"; String remainder = "15"; @@ -97,15 +101,42 @@ class VerificationResultComponentTest extends AbstractClearingTest { company.setClearingCode("codeTest"); companyImdg.insert(company); + //ACT & ASSERT + checkVerificationResults(ResultStatuses.success.getKey()); + + // сравнить remainder==balance + sDf01.setRemainder(remainder + "1"); + sdf01Imdg.insert(sDf01); + //ACT & ASSERT + checkVerificationResults(ResultStatuses.notSuccess.getKey()); + + // 2.1 Номера торговых/клиринговых счетов, соответствующие загруженным в КС + sDf01.setRemainder(remainder); + sDf01.setDeal(acc + "1"); + sdf01Imdg.insert(sDf01); + //ACT & ASSERT + checkVerificationResults(ResultStatuses.notSuccess.getKey()); + } + + private void checkVerificationResults(String resultStatuses) { + int times = currentInteger.getAndIncrement(); //ACT addRecordToKafka((MockConsumer) eventsReceiver.getConsumer(), TOPIC_VERIFICATION, PARTITION, times, getJsonStringForUPDATE(new LauncherCommandRequest(), 1L)); - //waiting for kafka producer send message - verify(verificationResultImdgMock, timeout(30_000L).times(4)) + ArgumentCaptor settingResult = ArgumentCaptor.forClass(VerificationResult.class); + verify(verificationResultImdgMock, timeout(30_000L).times(4 * times)) .insert(settingResult.capture()); - settingResult.getValue(); - Collection result = verificationResultImdg.getAllValues(); - result.size(); + Collection results = verificationResultImdg.getAllValues(); + + Long generationId = null; + + //ASSERT + for (VerificationResult verificationResult : results) { + if (generationId == null) generationId = verificationResult.getGenerationId(); + assertEquals(resultStatuses, verificationResult.getGenerationStatus()); + assertEquals(generationId, verificationResult.getGenerationId()); + } + clearAllInImdg(verificationResultImdg); } } \ No newline at end of file