public void Create_WithBadAddOnParamsCorrectlyParsesValidationErrors()
{
TestPlan plan = PlanFixture.ADD_ON_DISCOUNT_PLAN;
SubscriptionRequest request = new SubscriptionRequest
{
PaymentMethodToken = creditCard.Token,
PlanId = plan.Id,
AddOns = new AddOnsRequest
{
Update = new UpdateAddOnRequest[]
{
new UpdateAddOnRequest
{
ExistingId = "increase_10",
Amount = -200M
},
new UpdateAddOnRequest
{
ExistingId = "increase_20",
Quantity = -9
}
}
}
};
Result<Subscription> result = gateway.Subscription.Create(request);
Assert.IsFalse(result.IsSuccess());
Assert.AreEqual(ValidationErrorCode.SUBSCRIPTION_MODIFICATION_AMOUNT_IS_INVALID,
result.Errors.ForObject("Subscription").ForObject("AddOns").ForObject("Update").ForIndex(0).OnField("Amount")[0].Code);
Assert.AreEqual(ValidationErrorCode.SUBSCRIPTION_MODIFICATION_QUANTITY_IS_INVALID,
result.Errors.ForObject("Subscription").ForObject("AddOns").ForObject("Update").ForIndex(1).OnField("Quantity")[0].Code);
}