public void PaymentAmount_Is_Zero_Generates_Error() { // Arrange var validator = new RecurringPaymentValidator <RecurringPayment>(); var recurringPayment = new RecurringPayment { PaymentAmount = 0.00M }; // Act var result = validator.Validate(recurringPayment); // Assert Assert.True(result.Errors.Any(e => e.ErrorMessage == "PaymentAmount must be greater than 0")); }
public void PaymentAmount_Is_One_Is_Valid() { // Arrange var validator = new RecurringPaymentValidator <RecurringPayment>(); var recurringPayment = new RecurringPayment { PaymentAmount = 0.01M }; // Act var result = validator.Validate(recurringPayment); // Assert Assert.False(result.Errors.Any(e => e.ErrorMessage == "PaymentAmount must be greater than 0")); }
public void ExecutionFrequencyType_Is_BiWeekly_ExecutionFrequencyParameter_Is_7_Generates_Error() { // Arrange var validator = new RecurringPaymentValidator <RecurringPayment>(); var recurringPayment = new RecurringPayment { ExecutionFrequencyType = ExecutionFrequencyType.BiWeekly, ExecutionFrequencyParameter = 7 }; // Act var result = validator.Validate(recurringPayment); // Assert Assert.False(result.Errors.Any(e => e.ErrorMessage == "ExecutionFrequencyParameter must be a value 1-7 (Sunday - Saturday), when ExecutionFrequencyType is Weekly or BiWeekly")); }
public void Description_Is_Empty_Is_Valid() { // Arrange var validator = new RecurringPaymentValidator <RecurringPayment>(); var recurringPayment = new RecurringPayment { Description = "" }; // Act var result = validator.Validate(recurringPayment); // Assert Assert.False(result.Errors.Any(e => e.ErrorMessage == "Description can not exceed 2048 characters")); }
public void ExecutionFrequencyType_Is_SpecificDayOfMonth_ExecutionFrequencyParameter_Is_31_Is_Valid() { // Arrange var validator = new RecurringPaymentValidator <RecurringPayment>(); var recurringPayment = new RecurringPayment { ExecutionFrequencyType = ExecutionFrequencyType.SpecificDayOfMonth, ExecutionFrequencyParameter = 31 }; // Act var result = validator.Validate(recurringPayment); // Assert Assert.False(result.Errors.Any(e => e.ErrorMessage == "ExecutionFrequencyParameter must be a value 1-7 (Sunday - Saturday), when ExecutionFrequencyType is SpecificDayOfMonth. Note: If you want to bill on the 30th or 31st, use the LastDayOfMonth ExecutionFrequencyType")); }
public void FirstPaymentDate_In_The_Future_Is_Valid() { // Arrange var validator = new RecurringPaymentValidator <RecurringPayment>(); var recurringPayment = new RecurringPayment { FirstPaymentDate = DateTime.Now.AddDays(2), StartDate = DateTime.Now.AddDays(3) }; // Act var result = validator.Validate(recurringPayment); // Assert Assert.False(result.Errors.Any(e => e.ErrorMessage == "FirstPaymentDate must be a current or future date and must be a date before StartDate")); }
public void AccountId_Is_One_Is_Valid() { // Arrange var validator = new RecurringPaymentValidator <RecurringPayment>(); var recurringPayment = new RecurringPayment { AccountId = 1 }; // Act var result = validator.Validate(recurringPayment); // Assert Assert.False(result.Errors.Any(e => e.ErrorMessage == "AccountId is required")); }
public void OrderId_Is_Empty_Is_Valid() { // Arrange var validator = new RecurringPaymentValidator <RecurringPayment>(); var recurringPayment = new RecurringPayment { OrderId = "" }; // Act var result = validator.Validate(recurringPayment); // Assert Assert.False(result.Errors.Any(e => e.ErrorMessage == "OrderId cannot exceed 50 characters")); }
public void AccountId_Is_Zero_Generates_Error() { // Arrange var validator = new RecurringPaymentValidator <RecurringPayment>(); var recurringPayment = new RecurringPayment { AccountId = 0 }; // Act var result = validator.Validate(recurringPayment); // Assert Assert.True(result.Errors.Any(e => e.ErrorMessage == "AccountId is required")); }
public void OrderId_Exceeds_50_Characters_Generates_Error() { // Arrange var validator = new RecurringPaymentValidator <RecurringPayment>(); var recurringPayment = new RecurringPayment { OrderId = "kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk" }; // Act var result = validator.Validate(recurringPayment); // Assert Assert.True(result.Errors.Any(e => e.ErrorMessage == "OrderId cannot exceed 50 characters")); }
public void EndDate_Is_After_StartDate_Is_Valid() { // Arrange var validator = new RecurringPaymentValidator <RecurringPayment>(); var recurringPayment = new RecurringPayment { StartDate = DateTime.Now.AddDays(3), EndDate = DateTime.Now.AddDays(4) }; // Act var result = validator.Validate(recurringPayment); // Assert Assert.False(result.Errors.Any(e => e.ErrorMessage == "EndDate must be after StartDate")); }
public void EndDate_Is_Empty_Is_Valid() { // Arrange var validator = new RecurringPaymentValidator <RecurringPayment>(); var recurringPayment = new RecurringPayment { EndDate = null }; // Act var result = validator.Validate(recurringPayment); // Assert Assert.False(result.Errors.Any(e => e.ErrorMessage == "EndDate must be after StartDate")); }
public void StartDate_In_The_Future_Is_Valid() { // Arrange var validator = new RecurringPaymentValidator <RecurringPayment>(); var recurringPayment = new RecurringPayment { StartDate = DateTime.Now.AddDays(1) }; // Act var result = validator.Validate(recurringPayment); // Assert Assert.False(result.Errors.Any(e => e.ErrorMessage == "StartDate must be in the future")); }
public void StartDate_Is_Empty_Generates_Error() { // Arrange var validator = new RecurringPaymentValidator <RecurringPayment>(); var recurringPayment = new RecurringPayment { StartDate = null }; // Act var result = validator.Validate(recurringPayment); // Assert Assert.True(result.Errors.Any(e => e.ErrorMessage == "StartDate is required")); }
public void Description_Exceeds_2048_Characters_Generates_Error() { // Arrange var description = new StringBuilder(); for (int i = 0; i < 2049; i++) { description.Append("k"); } var validator = new RecurringPaymentValidator <RecurringPayment>(); var recurringPayment = new RecurringPayment { Description = description.ToString() }; // Act var result = validator.Validate(recurringPayment); // Assert Assert.True(result.Errors.Any(e => e.ErrorMessage == "Description can not exceed 2048 characters")); }