public void Update_MakeExistingPaymentMethodTheDefaultUsingDefaultPaymentMethodToken()
{
Customer customer = gateway.Customer.Create(new CustomerRequest()).Target;
var coinbaseToken = GenerateToken();
var coinbaseCreateRequest = new PaymentMethodRequest
{
CustomerId = customer.Id,
PaymentMethodNonce = Nonce.Coinbase,
Token = coinbaseToken
};
PaymentMethod coinbasePaymentMethod = gateway.PaymentMethod.Create(coinbaseCreateRequest).Target;
customer = gateway.Customer.Find(customer.Id);
Assert.AreEqual(customer.DefaultPaymentMethod.Token, coinbaseToken);
var venmoToken = GenerateToken();
var venmoCreateRequest = new PaymentMethodRequest()
{
CustomerId = customer.Id,
PaymentMethodNonce = Nonce.VenmoAccount,
Token = venmoToken
};
PaymentMethod venmoPaymentMethod = gateway.PaymentMethod.Create(venmoCreateRequest).Target;
customer = gateway.Customer.Find(customer.Id);
Assert.AreNotEqual(customer.DefaultPaymentMethod.Token, venmoToken);
Assert.AreEqual(customer.DefaultPaymentMethod.Token, coinbaseToken);
var updateRequest = new CustomerRequest
{
DefaultPaymentMethodToken = venmoToken
};
gateway.Customer.Update(customer.Id, updateRequest);
customer = gateway.Customer.Find(customer.Id);
Assert.AreEqual(customer.DefaultPaymentMethod.Token, venmoToken);
}