Пример #1
0
        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);
            });
        }
Пример #2
0
        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);
        }
Пример #5
0
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="transaction">TransactionDraft</param>
 public AddTransactionAction(TransactionDraft transaction)
 {
     this.Action      = "addTransaction";
     this.Transaction = transaction;
 }