public void Refund_WithABasicTransaction()
{
TransactionRequest request = new TransactionRequest
{
Amount = SandboxValues.TransactionAmount.AUTHORIZE,
CreditCard = new TransactionCreditCardRequest
{
Number = SandboxValues.CreditCardNumber.VISA,
ExpirationDate = "05/2008"
},
Options = new TransactionOptionsRequest
{
SubmitForSettlement = true
}
};
Transaction transaction = gateway.Transaction.Sale(request).Target;
gateway.TestTransaction.Settle(transaction.Id);
Result<Transaction> result;
try
{
result = gateway.Transaction.Refund(transaction.Id);
}
catch (Exception e)
{
Console.WriteLine("Got exception! " + e.Source);
throw e;
}
Assert.IsTrue(result.IsSuccess());
var refund = result.Target;
Assert.AreEqual(TransactionType.CREDIT, refund.Type);
Assert.AreEqual(transaction.Amount, refund.Amount);
Transaction firstTransaction = gateway.Transaction.Find(transaction.Id);
Assert.AreEqual(refund.Id, firstTransaction.RefundId);
Assert.AreEqual(firstTransaction.Id, refund.RefundedTransactionId);
}
#pragma warning restore 0618