public void Sale_WithAmexRewardsResponseSucceedsEvenIfCardHasInsufficientPoints()
{
var request = new TransactionRequest
{
Amount = SandboxValues.TransactionAmount.AUTHORIZE,
MerchantAccountId = MerchantAccountIDs.FAKE_AMEX_DIRECT_MERCHANT_ACCOUNT_ID,
CreditCard = new TransactionCreditCardRequest
{
Number = SandboxValues.CreditCardNumber.AmexPayWithPoints.INSUFFICIENT_POINTS,
ExpirationDate = "05/2009",
},
Options = new TransactionOptionsRequest
{
SubmitForSettlement = true,
AmexRewards = new TransactionOptionsAmexRewardsRequest
{
RequestId = "ABC123",
Points = "100",
CurrencyAmount = "1",
CurrencyIsoCode = "USD"
}
}
};
Result<Transaction> result = gateway.Transaction.Sale(request);
Assert.IsTrue(result.IsSuccess());
Transaction transaction = result.Target;
Assert.AreEqual(1000.00, transaction.Amount);
Assert.AreEqual(TransactionType.SALE, transaction.Type);
Assert.AreEqual(TransactionStatus.SUBMITTED_FOR_SETTLEMENT, transaction.Status);
}