public void SubmitForSettlement_WithValidationError()
{
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;
Result<Transaction> result = gateway.Transaction.SubmitForSettlement(transaction.Id);
Assert.IsTrue(result.IsSuccess());
result = gateway.Transaction.SubmitForSettlement(transaction.Id);
Assert.IsFalse(result.IsSuccess());
Assert.AreEqual(ValidationErrorCode.TRANSACTION_CANNOT_SUBMIT_FOR_SETTLEMENT, result.Errors.ForObject("Transaction").OnField("Base")[0].Code);
Assert.AreEqual("Cannot submit for settlement unless status is authorized.", result.Message);
}