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;
}
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));
}
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"));
}
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()));
}
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\""));
}
Aggregations