Adding test PaymentUpdateBySdf04Test for clearing-service.
This commit is contained in:
parent
d8bed72ea2
commit
729280e629
4 changed files with 93 additions and 6 deletions
|
|
@ -86,6 +86,23 @@
|
|||
<finalName>${project.artifactId}</finalName>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
<version>2.21.0</version>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.junit.platform</groupId>
|
||||
<artifactId>junit-platform-surefire-provider</artifactId>
|
||||
<version>1.2.0-M1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.junit.jupiter</groupId>
|
||||
<artifactId>junit-jupiter-engine</artifactId>
|
||||
<version>5.2.0-M1</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
||||
|
|
@ -49,6 +49,9 @@ public abstract class AbstractClearingTest {
|
|||
@SpyBean
|
||||
protected MockProducer<String, Object> mockProducer;
|
||||
|
||||
@Autowired
|
||||
protected PaymentUpdateBySdf04 paymentUpdateBySdf04;
|
||||
|
||||
protected void init() {
|
||||
hazelcastServiceTest.waitAvailable();
|
||||
TestUtils.FutureRecordMetadata future = spy(TestUtils.FutureRecordMetadata.class);
|
||||
|
|
|
|||
|
|
@ -124,7 +124,7 @@ class ClearingServiceTest extends AbstractClearingTest {
|
|||
addRecordToKafka((MockConsumer) eventsReceiver.getConsumer(), TOPIC_START_CLEARING, PARTITION, times, getJsonStringForNew(new DealRegisterNewRequest(), FIRST_ID));
|
||||
|
||||
//waiting for kafka producer send message
|
||||
verify(mockProducer, timeout(230_000L).times(1))
|
||||
verify(mockProducer, timeout(30_000L).times(1))
|
||||
.send(producerRecord.capture());
|
||||
assertEquals(Consts.BALANCE_ACCOUNT_UPDATE, producerRecord.getValue().topic());
|
||||
BaseRequest<Object> baseRequestResult = (BaseRequest<Object>) producerRecord.getValue().value();
|
||||
|
|
@ -135,7 +135,7 @@ class ClearingServiceTest extends AbstractClearingTest {
|
|||
addRecordToKafka((MockConsumer) eventsReceiver.getConsumer(), TOPIC_CONTINUE_CLEARING, PARTITION, times, getJsonStringForNew(requestPayload, FIRST_ID));
|
||||
|
||||
//waiting for kafka producer send message (finale event)
|
||||
verify(mockProducer, timeout(230_000L).times(2))
|
||||
verify(mockProducer, timeout(30_000L).times(2))
|
||||
.send(producerRecord.capture());
|
||||
|
||||
//ASSERT
|
||||
|
|
@ -219,7 +219,7 @@ class ClearingServiceTest extends AbstractClearingTest {
|
|||
addRecordToKafka((MockConsumer) eventsReceiver.getConsumer(), TOPIC_START_CLEARING, PARTITION, times, getJsonStringForNew(new DealRegisterNewRequest(), FIRST_ID));
|
||||
|
||||
//waiting for kafka producer send message
|
||||
verify(mockProducer, timeout(230_000L).times(1))
|
||||
verify(mockProducer, timeout(30_000L).times(1))
|
||||
.send(producerRecord.capture());
|
||||
assertEquals(Consts.BALANCE_ACCOUNT_UPDATE, producerRecord.getValue().topic());
|
||||
BaseRequest<Object> baseRequestResult = (BaseRequest<Object>) producerRecord.getValue().value();
|
||||
|
|
@ -230,7 +230,7 @@ class ClearingServiceTest extends AbstractClearingTest {
|
|||
addRecordToKafka((MockConsumer) eventsReceiver.getConsumer(), TOPIC_CONTINUE_CLEARING, PARTITION, times, getJsonStringForNew(requestPayload, FIRST_ID));
|
||||
|
||||
//waiting for kafka producer send message (finale event)
|
||||
verify(mockProducer, timeout(230_000L).times(2))
|
||||
verify(mockProducer, timeout(30_000L).times(2))
|
||||
.send(producerRecord.capture());
|
||||
|
||||
//ASSERT
|
||||
|
|
@ -411,7 +411,7 @@ class ClearingServiceTest extends AbstractClearingTest {
|
|||
addRecordToKafka((MockConsumer) eventsReceiver.getConsumer(), TOPIC_START_CLEARING, PARTITION, times, getJsonStringForNew(new DealRegisterNewRequest(), FIRST_ID));
|
||||
|
||||
//waiting for kafka producer send message
|
||||
verify(mockProducer, timeout(230_000L).times((int) times))
|
||||
verify(mockProducer, timeout(30_000L).times((int) times))
|
||||
.send(producerRecord.capture());
|
||||
|
||||
//ASSERT
|
||||
|
|
|
|||
|
|
@ -1,14 +1,36 @@
|
|||
package ru.spcex.clearing.service;
|
||||
|
||||
import org.apache.kafka.clients.consumer.MockConsumer;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
import org.mockito.Mockito;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import ru.clearing.classes.statics.data.payment.PaymentInstruction;
|
||||
import ru.clearing.classes.statics.data.sdf.SDf04;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.platform.messaging.domain.Consts;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.clearing.Sdf04Request;
|
||||
import ru.spcex.platform.enumeration.TransactionStatus;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.iml.hazelcast.adapter.ImdgHazelcast;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import java.lang.reflect.Field;
|
||||
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;
|
||||
|
||||
class PaymentUpdateBySdf04Test extends AbstractClearingTest {
|
||||
private static final int PARTITION = 0;
|
||||
private static final AtomicInteger currentInteger = new AtomicInteger(1);
|
||||
private static final String TOPIC_SDF04_PROCESS = Consts.SDF04_PROCESS;
|
||||
ArgumentCaptor<PaymentInstruction> settingResult;
|
||||
@Autowired
|
||||
EventsReceiver eventsReceiver;
|
||||
ImdgHazelcast<PaymentInstruction> paymentImdgsMock;
|
||||
private Imdg<PaymentInstruction> paymentImdgs;
|
||||
private Imdg<SDf04> sdf04Imdg;
|
||||
|
||||
|
|
@ -17,11 +39,56 @@ class PaymentUpdateBySdf04Test extends AbstractClearingTest {
|
|||
super.init();
|
||||
this.paymentImdgs = hazelcastServiceTest.getImdg(IMDGDistributedNames.Map_PaymentInstruction, PaymentInstruction.class);
|
||||
this.sdf04Imdg = hazelcastServiceTest.getImdg(IMDGDistributedNames.Map_SDf04, SDf04.class);
|
||||
this.paymentImdgsMock = Mockito.mock(ImdgHazelcast.class, withSettings()
|
||||
.serializable()
|
||||
.spiedInstance(paymentImdgs)
|
||||
.defaultAnswer(CALLS_REAL_METHODS));
|
||||
this.settingResult = ArgumentCaptor.forClass(PaymentInstruction.class);
|
||||
}
|
||||
|
||||
@Test
|
||||
void updatePayments() {
|
||||
void updatePayments() throws NoSuchFieldException, IllegalAccessException {
|
||||
//ARRANGE
|
||||
Long sdf04GroupId = 12L;
|
||||
Long paymentId = 10L;
|
||||
String docnm_ref = paymentId.toString();
|
||||
SDf04 sDf04s = new SDf04();
|
||||
sDf04s.setGenerationId(sdf04GroupId);
|
||||
sDf04s.setDocnm_ref(docnm_ref);
|
||||
sDf04s.setImp_result("OK!");
|
||||
sdf04Imdg.insert(sDf04s);
|
||||
|
||||
PaymentInstruction payment = new PaymentInstruction();
|
||||
payment.setId(paymentId);
|
||||
paymentImdgs.insert(payment);
|
||||
|
||||
//setting imdg for been PaymentUpdateBySdf04
|
||||
Field dbServiceField = PaymentUpdateBySdf04.class.getDeclaredField("paymentImdgs");
|
||||
dbServiceField.setAccessible(true);
|
||||
dbServiceField.set(paymentUpdateBySdf04, paymentImdgsMock);
|
||||
|
||||
//ACT & ASSERT
|
||||
checkTransactionStatus(sdf04GroupId, currentInteger.getAndIncrement(), TransactionStatus.ok.getKey());
|
||||
|
||||
sDf04s.setImp_result("imp_result");
|
||||
sdf04Imdg.insert(sDf04s);
|
||||
//ACT & ASSERT
|
||||
checkTransactionStatus(sdf04GroupId, currentInteger.getAndIncrement(), TransactionStatus.fail.getKey());
|
||||
}
|
||||
|
||||
private void checkTransactionStatus(Long sdf04GroupId, int times, String key) {
|
||||
Sdf04Request requestPayload = new Sdf04Request();
|
||||
requestPayload.setGroupId(sdf04GroupId);
|
||||
|
||||
//ACT
|
||||
addRecordToKafka((MockConsumer) eventsReceiver.getConsumer(), TOPIC_SDF04_PROCESS,
|
||||
PARTITION, times, getJsonStringForUPDATE(requestPayload, sdf04GroupId));
|
||||
|
||||
//waiting for paymentImdgs update
|
||||
verify(paymentImdgsMock, timeout(30_000L).times(times))
|
||||
.update(settingResult.capture());
|
||||
|
||||
//ASSERT
|
||||
assertEquals(key, settingResult.getValue().getTransactionStatus());
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue