Ejemplo n.º 1
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 void UpdatePaymentAddTransaction()
        {
            IClient commerceToolsClient = this.paymentsFixture.GetService <IClient>();
            var     payment             = this.paymentsFixture.CreatePayment();

            Assert.Empty(payment.Transactions);

            var refundMoney       = Money.FromDecimal("EUR", TestingUtility.RandomInt(100, 10000));
            var refundTransaction = this.paymentsFixture.GetTransactionDraft(DateTime.Now, TransactionType.Refund,
                                                                             refundMoney, TestingUtility.RandomString(10), TransactionState.Initial);


            AddTransactionUpdateAction addTransactionUpdateAction = new AddTransactionUpdateAction()
            {
                Transaction = refundTransaction
            };
            var updateActions = new List <UpdateAction <Payment> > {
                addTransactionUpdateAction
            };

            var retrievedPayment = commerceToolsClient
                                   .ExecuteAsync(new UpdateByIdCommand <Payment>(payment.Id, payment.Version, updateActions))
                                   .Result;

            this.paymentsFixture.PaymentsToDelete.Add(retrievedPayment);

            Assert.Single(retrievedPayment.Transactions);
            Assert.Equal(refundTransaction.InteractionId, retrievedPayment.Transactions[0].InteractionId);
        }