public void Create_MultiCurrencyMerchant()
{
gateway = new BraintreeGateway(
"client_id$development$signup_client_id",
"client_secret$development$signup_client_secret"
);
ResultImpl<Merchant> result = gateway.Merchant.Create(new MerchantRequest {
Email = "[email protected]",
CountryCodeAlpha3 = "USA",
PaymentMethods = new string[] {"paypal"},
CompanyName = "Ziarog LTD",
Currencies = new string[] {"GBP", "USD"},
PayPalAccount = new PayPalOnlyAccountRequest {
ClientId = "paypal_client_id",
ClientSecret = "paypal_client_secret"
}
});
Assert.IsTrue(result.IsSuccess());
Assert.IsFalse(string.IsNullOrEmpty(result.Target.Id));
Assert.AreEqual("[email protected]", result.Target.Email);
Assert.AreEqual("Ziarog LTD", result.Target.CompanyName);
Assert.AreEqual("USA", result.Target.CountryCodeAlpha3);
Assert.AreEqual("US", result.Target.CountryCodeAlpha2);
Assert.AreEqual("840", result.Target.CountryCodeNumeric);
Assert.AreEqual("United States of America", result.Target.CountryName);
Assert.IsTrue(result.Target.Credentials.AccessToken.StartsWith("access_token$"));
Assert.IsTrue(result.Target.Credentials.RefreshToken.StartsWith("refresh_token$"));
Assert.IsTrue(result.Target.Credentials.ExpiresAt > DateTime.Now);
Assert.AreEqual("bearer", result.Target.Credentials.TokenType);
Assert.AreEqual(2, result.Target.MerchantAccounts.Length);
var usdMerchantAccount = (from ma in result.Target.MerchantAccounts where ma.Id == "USD" select ma).ToArray()[0];
Assert.AreEqual("USD", usdMerchantAccount.CurrencyIsoCode);
Assert.IsTrue(usdMerchantAccount.IsDefault.Value);
var gbpMerchantAccount = (from ma in result.Target.MerchantAccounts where ma.Id == "GBP" select ma).ToArray()[0];
Assert.AreEqual("GBP", gbpMerchantAccount.CurrencyIsoCode);
Assert.IsFalse(gbpMerchantAccount.IsDefault.Value);
}