public void When_ValidParameters_Then_ReturnDate() { var result = ValidatorExtensions.ConstructDate("01", "02", "2021"); result.Should().NotBeNull(); result.Should().HaveValue(); result.Should().HaveDay(1); result.Should().HaveMonth(2); result.Should().HaveYear(2021); }
public SetSecondaryEpaoEffectiveToDateViewModelValidator() { RuleFor(vm => vm).Custom((vm, context) => { if (vm.Day == null && vm.Month == null && vm.Year == null) { context.AddFailure("Date", "Enter an Effective to date"); } else { int.TryParse(vm.Day, out var day); int.TryParse(vm.Month, out var month); int.TryParse(vm.Year, out var year); if (day == 0) { context.AddFailure("Day", "Effective to date must include a day"); } if (month == 0) { context.AddFailure("Month", "Effective to date must include a month"); } if (year == 0) { context.AddFailure("Year", "Effective to date must include a year"); } if (day != 0 && month != 0 && year != 0) { var date = ValidatorExtensions.ConstructDate(vm.Day, vm.Month, vm.Year); if (date == null) { context.AddFailure("Date", "Effective to date must be a real date"); } else if (date < DateTime.Now.Date) { context.AddFailure("Date", "Effective to date must be in the future"); } } } }); }
public RegisterEditOrganisationStandardViewModelValidator(IOrganisationsApiClient apiClient, IRegisterValidator registerValidator) { _apiClient = apiClient; _registerValidator = registerValidator; var errorInEffectiveFrom = false; RuleFor(vm => vm).Custom((vm, context) => { var validationResultEffectiveFrom = registerValidator.CheckDateIsEmptyOrValid(vm.EffectiveFromDay, vm.EffectiveFromMonth, vm.EffectiveFromYear, "EffectiveFromDay", "EffectiveFromMonth", "EffectiveFromYear", "EffectiveFrom", "Effective From"); errorInEffectiveFrom = validationResultEffectiveFrom.Errors.Count > 0; var validationResultEffectiveTo = registerValidator.CheckDateIsEmptyOrValid(vm.EffectiveToDay, vm.EffectiveToMonth, vm.EffectiveToYear, "EffectiveToDay", "EffectiveToMonth", "EffectiveToYear", "EffectiveTo", "Effective To"); vm.EffectiveFrom = ValidatorExtensions.ConstructDate(vm.EffectiveFromDay, vm.EffectiveFromMonth, vm.EffectiveFromYear); vm.EffectiveTo = ValidatorExtensions.ConstructDate(vm.EffectiveToDay, vm.EffectiveToMonth, vm.EffectiveToYear); CreateFailuresInContext(validationResultEffectiveFrom.Errors, context); CreateFailuresInContext(validationResultEffectiveTo.Errors, context); var deliveryAreas = vm.DeliveryAreas ?? new List <int>(); var validationResultExternals = _apiClient .ValidateUpdateOrganisationStandard(vm.OrganisationId, vm.OrganisationStandardId, vm.StandardId, vm.EffectiveFrom, vm.EffectiveTo, vm.ContactId, deliveryAreas, vm.ActionChoice, vm.Status, vm.OrganisationStatus).Result; if (validationResultExternals.IsValid) { return; } foreach (var error in validationResultExternals.Errors) { if (errorInEffectiveFrom == false || error.Field != "EffectiveFrom") { context.AddFailure(error.Field, error.ErrorMessage); } } }); }
public void When_InvalidParameters_Then_ReturnNull() { var result = ValidatorExtensions.ConstructDate("31", "02", "2021"); result.Should().BeNull(); }