public void Create_HandlesRequiredValidationErrors()
{
var request = new MerchantAccountRequest
{
TosAccepted = true,
MasterMerchantAccountId = "sandbox_master_merchant_account"
};
Result<MerchantAccount> result = gateway.MerchantAccount.Create(request);
Assert.IsFalse(result.IsSuccess());
ValidationErrors errors = result.Errors.ForObject("merchant-account");
Assert.AreEqual(ValidationErrorCode.MERCHANT_ACCOUNT_INDIVIDUAL_FIRST_NAME_IS_REQUIRED,
errors.ForObject("individual").OnField("first-name")[0].Code);
Assert.AreEqual(ValidationErrorCode.MERCHANT_ACCOUNT_INDIVIDUAL_LAST_NAME_IS_REQUIRED,
errors.ForObject("individual").OnField("last-name")[0].Code);
Assert.AreEqual(ValidationErrorCode.MERCHANT_ACCOUNT_INDIVIDUAL_DATE_OF_BIRTH_IS_REQUIRED,
errors.ForObject("individual").OnField("date-of-birth")[0].Code);
Assert.AreEqual(ValidationErrorCode.MERCHANT_ACCOUNT_INDIVIDUAL_EMAIL_IS_REQUIRED,
errors.ForObject("individual").OnField("email")[0].Code);
Assert.AreEqual(ValidationErrorCode.MERCHANT_ACCOUNT_INDIVIDUAL_ADDRESS_STREET_ADDRESS_IS_REQUIRED,
errors.ForObject("individual").ForObject("address").OnField("street-address")[0].Code);
Assert.AreEqual(ValidationErrorCode.MERCHANT_ACCOUNT_INDIVIDUAL_ADDRESS_LOCALITY_IS_REQUIRED,
errors.ForObject("individual").ForObject("address").OnField("locality")[0].Code);
Assert.AreEqual(ValidationErrorCode.MERCHANT_ACCOUNT_INDIVIDUAL_ADDRESS_POSTAL_CODE_IS_REQUIRED,
errors.ForObject("individual").ForObject("address").OnField("postal-code")[0].Code);
Assert.AreEqual(ValidationErrorCode.MERCHANT_ACCOUNT_INDIVIDUAL_ADDRESS_REGION_IS_REQUIRED,
errors.ForObject("individual").ForObject("address").OnField("region")[0].Code);
Assert.AreEqual(ValidationErrorCode.MERCHANT_ACCOUNT_FUNDING_DESTINATION_IS_REQUIRED,
errors.ForObject("funding").OnField("destination")[0].Code);
}