public async Task UpdatePaymentChangeTransactionInteractionId() { var oldInteractionId = TestingUtility.RandomString(); var newInteractionId = TestingUtility.RandomString(); var refundTransaction = new TransactionDraft { Amount = Money.FromDecimal("EUR", TestingUtility.RandomInt(100, 10000)), Type = TransactionType.Refund, Timestamp = DateTime.Now, State = TransactionState.Initial, InteractionId = oldInteractionId }; await WithUpdateablePayment(client, paymentDraft => DefaultPaymentDraftWithTransaction(paymentDraft, refundTransaction), async payment => { Assert.Single(payment.Transactions); Assert.Equal(oldInteractionId, payment.Transactions[0].InteractionId); var action = new ChangeTransactionInteractionIdUpdateAction { TransactionId = payment.Transactions[0].Id, InteractionId = newInteractionId }; var updatedPayment = await client .ExecuteAsync(payment.UpdateById(actions => actions.AddUpdate(action))); Assert.Single(updatedPayment.Transactions); Assert.Equal(newInteractionId, updatedPayment.Transactions[0].InteractionId); return(updatedPayment); }); }
public async Task UpdatePaymentAddTransaction() { await WithUpdateablePayment(client, async payment => { Assert.Empty(payment.Transactions); var refundTransaction = new TransactionDraft { Amount = Money.FromDecimal("EUR", TestingUtility.RandomInt(100, 10000)), Type = TransactionType.Refund, Timestamp = DateTime.Now, State = TransactionState.Initial, InteractionId = TestingUtility.RandomString() }; var action = new AddTransactionUpdateAction { Transaction = refundTransaction }; var updatedPayment = await client .ExecuteAsync(payment.UpdateById(actions => actions.AddUpdate(action))); Assert.Single(updatedPayment.Transactions); Assert.Equal(refundTransaction.InteractionId, updatedPayment.Transactions[0].InteractionId); return(updatedPayment); }); }
public TransactionDraft GetTransactionDraft(DateTime timestamp, TransactionType type, Money amount, string interactionId, TransactionState state) { var transactionDraft = new TransactionDraft { Timestamp = timestamp, State = state, Amount = amount, InteractionId = interactionId, Type = type }; return(transactionDraft); }
public static PaymentDraft DefaultPaymentDraftWithTransaction(PaymentDraft draft, TransactionDraft transactionDraft) { var paymentDraft = DefaultPaymentDraft(draft); paymentDraft.Transactions = new List <TransactionDraft> { transactionDraft }; return(paymentDraft); }
/// <summary> /// Constructor. /// </summary> /// <param name="transaction">TransactionDraft</param> public AddTransactionAction(TransactionDraft transaction) { this.Action = "addTransaction"; this.Transaction = transaction; }