public void UpdateDetails_WithInvalidDescriptor()
{
TransactionRequest request = new TransactionRequest
{
Amount = SandboxValues.TransactionAmount.AUTHORIZE,
CreditCard = new TransactionCreditCardRequest
{
Number = SandboxValues.CreditCardNumber.VISA,
ExpirationDate = "05/2008"
},
Options = new TransactionOptionsRequest
{
SubmitForSettlement = true
}
};
Transaction transaction = gateway.Transaction.Sale(request).Target;
TransactionRequest updateRequest = new TransactionRequest
{
Descriptor = new DescriptorRequest
{
Name = "invalid name",
Phone = "invalid phone",
Url = "invalid url that is too long to be valid"
}
};
Result<Transaction> result = gateway.Transaction.UpdateDetails(transaction.Id, updateRequest);
Assert.IsFalse(result.IsSuccess());
Assert.AreEqual(ValidationErrorCode.DESCRIPTOR_NAME_FORMAT_IS_INVALID, result.Errors.ForObject("Transaction").ForObject("Descriptor").OnField("Name")[0].Code);
Assert.AreEqual(ValidationErrorCode.DESCRIPTOR_PHONE_FORMAT_IS_INVALID, result.Errors.ForObject("Transaction").ForObject("Descriptor").OnField("Phone")[0].Code);
Assert.AreEqual(ValidationErrorCode.DESCRIPTOR_URL_FORMAT_IS_INVALID, result.Errors.ForObject("Transaction").ForObject("Descriptor").OnField("Url")[0].Code);
}