public void Update_MakeExistingCreditCardPaymentMethodTheDefaultUsingOptions()
{
Customer customer = gateway.Customer.Create(new CustomerRequest()).Target;
var creditCardToken1 = GenerateToken();
var creditCardCreateRequest1 = new PaymentMethodRequest
{
CustomerId = customer.Id,
PaymentMethodNonce = Nonce.TransactableMasterCard,
Token = creditCardToken1
};
PaymentMethod creditCardPaymentMethod1 = gateway.PaymentMethod.Create(creditCardCreateRequest1).Target;
customer = gateway.Customer.Find(customer.Id);
Assert.AreEqual(customer.DefaultPaymentMethod.Token, creditCardToken1);
var creditCardToken2 = GenerateToken();
var creditCardCreateRequest2 = new PaymentMethodRequest()
{
CustomerId = customer.Id,
PaymentMethodNonce = Nonce.TransactableVisa,
Token = creditCardToken2
};
PaymentMethod creditCardPaymentMethod2 = gateway.PaymentMethod.Create(creditCardCreateRequest2).Target;
customer = gateway.Customer.Find(customer.Id);
Assert.AreNotEqual(customer.DefaultPaymentMethod.Token, creditCardToken2);
Assert.AreEqual(customer.DefaultPaymentMethod.Token, creditCardToken1);
var updateRequest = new CustomerRequest
{
CreditCard = new CreditCardRequest()
{
Options = new CreditCardOptionsRequest()
{
UpdateExistingToken = creditCardToken2,
MakeDefault = true
}
}
};
gateway.Customer.Update(customer.Id, updateRequest);
customer = gateway.Customer.Find(customer.Id);
Assert.AreEqual(customer.DefaultPaymentMethod.Token, creditCardToken2);
}