Search in sources :

Example 1 with TransactionEntity

use of uk.gov.pay.ledger.transaction.entity.TransactionEntity in project pay-ledger by alphagov.

the class TransactionEntityFactory method create.

public TransactionEntity create(EventDigest eventDigest) {
    TransactionState digestTransactionState = eventDigest.getMostRecentSalientEventType().map(TransactionState::fromEventType).orElse(TransactionState.UNDEFINED);
    var eventAggregate = eventDigest.getEventAggregate();
    String transactionDetail = convertToTransactionDetails(eventAggregate);
    TransactionEntity entity = objectMapper.convertValue(eventAggregate, TransactionEntity.class);
    entity.setServiceId(eventDigest.getServiceId());
    entity.setLive(Optional.ofNullable(eventDigest.isLive()).orElse(entity.isLive()));
    entity.setTransactionDetails(transactionDetail);
    entity.setEventCount(eventDigest.getEventCount());
    entity.setState(digestTransactionState);
    entity.setCreatedDate(eventDigest.getEventCreatedDate());
    entity.setExternalId(eventDigest.getResourceExternalId());
    entity.setParentExternalId(eventDigest.getParentResourceExternalId());
    entity.setTransactionType(eventDigest.getResourceType().toString());
    return entity;
}
Also used : TransactionState(uk.gov.pay.ledger.transaction.state.TransactionState) TransactionEntity(uk.gov.pay.ledger.transaction.entity.TransactionEntity)

Example 2 with TransactionEntity

use of uk.gov.pay.ledger.transaction.entity.TransactionEntity in project pay-ledger by alphagov.

the class CancelledByUserEventQueueContractTest method test.

@Test
@PactVerification({ "connector" })
public void test() {
    appRule.getSqsClient().sendMessage(SqsTestDocker.getQueueUrl("event-queue"), new String(currentMessage));
    TransactionDao transactionDao = new TransactionDao(appRule.getJdbi(), mock(LedgerConfig.class));
    await().atMost(1, TimeUnit.SECONDS).until(() -> transactionDao.findTransactionByExternalId(externalId).isPresent());
    Optional<TransactionEntity> transaction = transactionDao.findTransactionByExternalId(externalId);
    assertThat(transaction.isPresent(), is(true));
    assertThat(transaction.get().getExternalId(), is(externalId));
    Map<String, String> transactionDetails = gson.fromJson(transaction.get().getTransactionDetails(), Map.class);
    assertThat(transactionDetails.get("gateway_transaction_id"), is(gatewayTransactionId));
}
Also used : TransactionDao(uk.gov.pay.ledger.transaction.dao.TransactionDao) TransactionEntity(uk.gov.pay.ledger.transaction.entity.TransactionEntity) LedgerConfig(uk.gov.pay.ledger.app.LedgerConfig) PactVerification(au.com.dius.pact.consumer.PactVerification) Test(org.junit.Test)

Example 3 with TransactionEntity

use of uk.gov.pay.ledger.transaction.entity.TransactionEntity in project pay-ledger by alphagov.

the class CaptureConfirmedEventQueueContractTest method test.

@Test
@PactVerification({ "connector" })
public void test() {
    appRule.getSqsClient().sendMessage(SqsTestDocker.getQueueUrl("event-queue"), new String(currentMessage));
    TransactionDao transactionDao = new TransactionDao(appRule.getJdbi(), mock(LedgerConfig.class));
    EventDao eventDao = appRule.getJdbi().onDemand(EventDao.class);
    await().atMost(1, TimeUnit.SECONDS).until(() -> transactionDao.findTransactionByExternalId(externalId).isPresent());
    Optional<TransactionEntity> transaction = transactionDao.findTransactionByExternalId(externalId);
    assertThat(transaction.isPresent(), is(true));
    assertThat(transaction.get().getExternalId(), is(externalId));
    assertThat(transaction.get().getFee(), is(5L));
    assertThat(transaction.get().getNetAmount(), is(1069L));
    Map<String, Object> transactionDetails = new Gson().fromJson(transaction.get().getTransactionDetails(), Map.class);
    assertThat(transactionDetails.get("captured_date"), is("2018-03-12T16:25:01.123456Z"));
    Event event = eventDao.getEventsByResourceExternalId(externalId).get(0);
    Map<String, Object> eventDetails = new Gson().fromJson(event.getEventData(), Map.class);
    assertThat(eventDetails.get("gateway_event_date"), is("2018-03-12T16:25:01.123456Z"));
    assertThat(eventDetails.get("captured_date"), is("2018-03-12T16:25:01.123456Z"));
}
Also used : EventDao(uk.gov.pay.ledger.event.dao.EventDao) TransactionDao(uk.gov.pay.ledger.transaction.dao.TransactionDao) TransactionEntity(uk.gov.pay.ledger.transaction.entity.TransactionEntity) Gson(com.google.gson.Gson) Event(uk.gov.pay.ledger.event.model.Event) LedgerConfig(uk.gov.pay.ledger.app.LedgerConfig) PactVerification(au.com.dius.pact.consumer.PactVerification) Test(org.junit.Test)

Example 4 with TransactionEntity

use of uk.gov.pay.ledger.transaction.entity.TransactionEntity in project pay-ledger by alphagov.

the class CaptureSubmittedEventQueueContractTest method test.

@Test
@PactVerification({ "connector" })
public void test() {
    appRule.getSqsClient().sendMessage(SqsTestDocker.getQueueUrl("event-queue"), new String(currentMessage));
    TransactionDao transactionDao = new TransactionDao(appRule.getJdbi(), mock(LedgerConfig.class));
    await().atMost(1, TimeUnit.SECONDS).until(() -> transactionDao.findTransactionByExternalId(externalId).isPresent());
    Optional<TransactionEntity> transaction = transactionDao.findTransactionByExternalId(externalId);
    assertThat(transaction.isPresent(), is(true));
    assertThat(transaction.get().getExternalId(), is(externalId));
    Map<String, String> transactionDetails = gson.fromJson(transaction.get().getTransactionDetails(), Map.class);
    assertThat(transactionDetails.get("capture_submitted_date"), is(eventDate.toString()));
}
Also used : TransactionDao(uk.gov.pay.ledger.transaction.dao.TransactionDao) TransactionEntity(uk.gov.pay.ledger.transaction.entity.TransactionEntity) LedgerConfig(uk.gov.pay.ledger.app.LedgerConfig) PactVerification(au.com.dius.pact.consumer.PactVerification) Test(org.junit.Test)

Example 5 with TransactionEntity

use of uk.gov.pay.ledger.transaction.entity.TransactionEntity in project pay-ledger by alphagov.

the class Gateway3dsInfoObtainedEventQueueContractTest method test.

@Test
@PactVerification({ "connector" })
public void test() {
    TransactionDao transactionDao = new TransactionDao(appRule.getJdbi(), mock(LedgerConfig.class));
    appRule.getSqsClient().sendMessage(SqsTestDocker.getQueueUrl("event-queue"), new String(currentMessage));
    await().atMost(1, TimeUnit.SECONDS).until(() -> transactionDao.findTransactionByExternalId(externalId).isPresent() && transactionDao.findTransactionByExternalId(externalId).get().getTransactionDetails().contains("\"version_3ds\""));
    Optional<TransactionEntity> transaction = transactionDao.findTransactionByExternalId(externalId);
    assertThat(transaction.isPresent(), is(true));
    assertThat(transaction.get().getExternalId(), is(externalId));
    assertThat(transaction.get().getTransactionDetails(), containsString("\"version_3ds\": \"2.1.0\""));
}
Also used : TransactionDao(uk.gov.pay.ledger.transaction.dao.TransactionDao) TransactionEntity(uk.gov.pay.ledger.transaction.entity.TransactionEntity) LedgerConfig(uk.gov.pay.ledger.app.LedgerConfig) CoreMatchers.containsString(org.hamcrest.CoreMatchers.containsString) PactVerification(au.com.dius.pact.consumer.PactVerification) Test(org.junit.Test)

Aggregations

TransactionEntity (uk.gov.pay.ledger.transaction.entity.TransactionEntity)121 Test (org.junit.jupiter.api.Test)97 TransactionSearchParams (uk.gov.pay.ledger.transaction.search.common.TransactionSearchParams)32 Event (uk.gov.pay.ledger.event.model.Event)29 LedgerConfig (uk.gov.pay.ledger.app.LedgerConfig)18 TransactionDao (uk.gov.pay.ledger.transaction.dao.TransactionDao)18 PactVerification (au.com.dius.pact.consumer.PactVerification)17 Test (org.junit.Test)17 RandomUtils.nextLong (org.apache.commons.lang3.RandomUtils.nextLong)16 CoreMatchers.containsString (org.hamcrest.CoreMatchers.containsString)12 TransactionFixture (uk.gov.pay.ledger.util.fixture.TransactionFixture)11 TransactionFixture.aTransactionFixture (uk.gov.pay.ledger.util.fixture.TransactionFixture.aTransactionFixture)11 JSONObject (org.json.JSONObject)10 ZonedDateTime (java.time.ZonedDateTime)8 EventDao (uk.gov.pay.ledger.event.dao.EventDao)7 EventDigest (uk.gov.pay.ledger.event.model.EventDigest)7 Map (java.util.Map)6 TransactionSearchResponse (uk.gov.pay.ledger.transaction.model.TransactionSearchResponse)6 Transaction (uk.gov.pay.ledger.transaction.model.Transaction)5 TransactionEvent (uk.gov.pay.ledger.transaction.model.TransactionEvent)5