public void Create_HandlesInvalidValidationErrors()
{
var request = new MerchantAccountRequest
{
Individual = new IndividualRequest
{
FirstName = "<>",
LastName = "<>",
Email = "bad",
Phone = "999",
Address = new AddressRequest
{
StreetAddress = "nope",
PostalCode = "1",
Region = "QQ",
},
DateOfBirth = "hah",
Ssn = "12345",
},
Business = new BusinessRequest
{
LegalName = "``{}",
DbaName = "{}``",
TaxId = "bad",
Address = new AddressRequest
{
StreetAddress = "nope",
PostalCode = "1",
Region = "QQ",
},
},
Funding = new FundingRequest
{
Destination = FundingDestination.UNRECOGNIZED,
Email = "BILLFOLD",
MobilePhone = "TRIFOLD",
RoutingNumber = "LEATHER",
AccountNumber = "BACK POCKET",
},
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_INVALID,
errors.ForObject("individual").OnField("first-name")[0].Code);
Assert.AreEqual(ValidationErrorCode.MERCHANT_ACCOUNT_INDIVIDUAL_LAST_NAME_IS_INVALID,
errors.ForObject("individual").OnField("last-name")[0].Code);
Assert.AreEqual(ValidationErrorCode.MERCHANT_ACCOUNT_INDIVIDUAL_DATE_OF_BIRTH_IS_INVALID,
errors.ForObject("individual").OnField("date-of-birth")[0].Code);
Assert.AreEqual(ValidationErrorCode.MERCHANT_ACCOUNT_INDIVIDUAL_PHONE_IS_INVALID,
errors.ForObject("individual").OnField("phone")[0].Code);
Assert.AreEqual(ValidationErrorCode.MERCHANT_ACCOUNT_INDIVIDUAL_SSN_IS_INVALID,
errors.ForObject("individual").OnField("ssn")[0].Code);
Assert.AreEqual(ValidationErrorCode.MERCHANT_ACCOUNT_INDIVIDUAL_EMAIL_IS_INVALID,
errors.ForObject("individual").OnField("email")[0].Code);
Assert.AreEqual(ValidationErrorCode.MERCHANT_ACCOUNT_INDIVIDUAL_ADDRESS_STREET_ADDRESS_IS_INVALID,
errors.ForObject("individual").ForObject("address").OnField("street-address")[0].Code);
Assert.AreEqual(ValidationErrorCode.MERCHANT_ACCOUNT_INDIVIDUAL_ADDRESS_POSTAL_CODE_IS_INVALID,
errors.ForObject("individual").ForObject("address").OnField("postal-code")[0].Code);
Assert.AreEqual(ValidationErrorCode.MERCHANT_ACCOUNT_INDIVIDUAL_ADDRESS_REGION_IS_INVALID,
errors.ForObject("individual").ForObject("address").OnField("region")[0].Code);
Assert.AreEqual(ValidationErrorCode.MERCHANT_ACCOUNT_BUSINESS_DBA_NAME_IS_INVALID,
errors.ForObject("business").OnField("dba-name")[0].Code);
Assert.AreEqual(ValidationErrorCode.MERCHANT_ACCOUNT_BUSINESS_LEGAL_NAME_IS_INVALID,
errors.ForObject("business").OnField("legal-name")[0].Code);
Assert.AreEqual(ValidationErrorCode.MERCHANT_ACCOUNT_BUSINESS_TAX_ID_IS_INVALID,
errors.ForObject("business").OnField("tax-id")[0].Code);
Assert.AreEqual(ValidationErrorCode.MERCHANT_ACCOUNT_BUSINESS_ADDRESS_STREET_ADDRESS_IS_INVALID,
errors.ForObject("business").ForObject("address").OnField("street-address")[0].Code);
Assert.AreEqual(ValidationErrorCode.MERCHANT_ACCOUNT_BUSINESS_ADDRESS_POSTAL_CODE_IS_INVALID,
errors.ForObject("business").ForObject("address").OnField("postal-code")[0].Code);
Assert.AreEqual(ValidationErrorCode.MERCHANT_ACCOUNT_BUSINESS_ADDRESS_REGION_IS_INVALID,
errors.ForObject("business").ForObject("address").OnField("region")[0].Code);
Assert.AreEqual(ValidationErrorCode.MERCHANT_ACCOUNT_FUNDING_DESTINATION_IS_INVALID,
errors.ForObject("funding").OnField("destination")[0].Code);
Assert.AreEqual(ValidationErrorCode.MERCHANT_ACCOUNT_FUNDING_ACCOUNT_NUMBER_IS_INVALID,
errors.ForObject("funding").OnField("account-number")[0].Code);
Assert.AreEqual(ValidationErrorCode.MERCHANT_ACCOUNT_FUNDING_ROUTING_NUMBER_IS_INVALID,
errors.ForObject("funding").OnField("routing-number")[0].Code);
Assert.AreEqual(ValidationErrorCode.MERCHANT_ACCOUNT_FUNDING_EMAIL_IS_INVALID,
errors.ForObject("funding").OnField("email")[0].Code);
Assert.AreEqual(ValidationErrorCode.MERCHANT_ACCOUNT_FUNDING_MOBILE_PHONE_IS_INVALID,
errors.ForObject("funding").OnField("mobile-phone")[0].Code);
}