public void Update_UpdatesCustomerAndNestedValuesViaTr()
{
var createRequest = new CustomerRequest()
{
FirstName = "Old First",
LastName = "Old Last",
CreditCard = new CreditCardRequest()
{
Number = "4111111111111111",
ExpirationDate = "10/10",
BillingAddress = new CreditCardAddressRequest()
{
PostalCode = "11111"
}
}
};
Customer customer = gateway.Customer.Create(createRequest).Target;
CreditCard creditCard = customer.CreditCards[0];
Address address = creditCard.BillingAddress;
var trParams = new CustomerRequest()
{
CustomerId = customer.Id,
FirstName = "New First",
LastName = "New Last",
CreditCard = new CreditCardRequest()
{
ExpirationDate = "12/12",
Options = new CreditCardOptionsRequest()
{
UpdateExistingToken = creditCard.Token
},
BillingAddress = new CreditCardAddressRequest()
{
PostalCode = "44444",
CountryName = "Chad",
CountryCodeAlpha2 = "TD",
CountryCodeAlpha3 = "TCD",
CountryCodeNumeric = "148",
Options = new CreditCardAddressOptionsRequest()
{
UpdateExisting = true
}
}
}
};
string queryString = TestHelper.QueryStringForTR(trParams, new CustomerRequest(), gateway.Customer.TransparentRedirectURLForUpdate(), service);
Customer updatedCustomer = gateway.Customer.ConfirmTransparentRedirect(queryString).Target;
CreditCard updatedCreditCard = gateway.CreditCard.Find(creditCard.Token);
Address updatedAddress = gateway.Address.Find(customer.Id, address.Id);
Assert.AreEqual("New First", updatedCustomer.FirstName);
Assert.AreEqual("New Last", updatedCustomer.LastName);
Assert.AreEqual("12/2012", updatedCreditCard.ExpirationDate);
Assert.AreEqual("44444", updatedAddress.PostalCode);
Assert.AreEqual("Chad", updatedAddress.CountryName);
Assert.AreEqual("TD", updatedAddress.CountryCodeAlpha2);
Assert.AreEqual("TCD", updatedAddress.CountryCodeAlpha3);
Assert.AreEqual("148", updatedAddress.CountryCodeNumeric);
}
#pragma warning restore 0618