public void Settle_RefundFailsWithNonSettledTransaction()
{
TransactionRequest request = new TransactionRequest
{
Amount = SandboxValues.TransactionAmount.AUTHORIZE,
CreditCard = new TransactionCreditCardRequest
{
Number = SandboxValues.CreditCardNumber.VISA,
ExpirationDate = "05/2008"
}
};
Transaction transaction = gateway.Transaction.Sale(request).Target;
Assert.AreEqual(TransactionStatus.AUTHORIZED, transaction.Status);
Result<Transaction> result;
try
{
result = gateway.Transaction.Refund(transaction.Id);
}
catch (Exception e)
{
Console.WriteLine("Got exception! " + e.Source);
throw e;
}
Assert.IsFalse(result.IsSuccess());
Assert.AreEqual(ValidationErrorCode.TRANSACTION_CANNOT_REFUND_UNLESS_SETTLED, result.Errors.ForObject("Transaction").OnField("Base")[0].Code);
}