public void HaveError_When_DevolvedSourceOfFundingExist_For_NonRequired_Fundlines(string fundingLine, string devolvedSourceOfFunding) { easRecord.FundingLine = fundingLine; easRecord.DevolvedAreaSourceOfFunding = devolvedSourceOfFunding; _validator = new BusinessRulesValidator(_contractAllocations, _fundingLineContractTypeMappings, paymentTypes, _devolvedContracts, _sofCodeDictionary, dateTimeProviderMock.Object, 1); _validator.ShouldHaveValidationErrorFor(x => x.DevolvedAreaSourceOfFunding, easRecord).WithErrorCode("DevolvedAreaSourceOfFunding_02"); }
public void FundingLine_03_No_Error_WhenContractEndDate_IsNull(string year, string month) { _contractAllocations = new List <ContractAllocation>() { new ContractAllocation() { FundingStreamPeriodCode = "APPS2021", StartDate = new DateTime(2021, 06, 01), EndDate = null } }; var easRecord = new EasCsvRecord() { AdjustmentType = "adjustment", FundingLine = "FundingLine2021", CalendarYear = year, CalendarMonth = month, Value = "10" }; _validator = new BusinessRulesValidator(_contractAllocations, _fundingLineContractTypeMappings, paymentTypes, null, null, dateTimeProviderMock.Object, 1); var result = _validator.Validate(easRecord); Assert.DoesNotContain(result.Errors, x => x.ErrorCode.Equals("FundingLine_03")); }
public void DevolvedAreaSourceOfFunding_04_Error_ContractInvalid() { easRecord.FundingLine = "Adult Education - Eligible for MCA/GLA funding (non-procured)"; easRecord.DevolvedAreaSourceOfFunding = "116"; _validator = new BusinessRulesValidator(_contractAllocations, _fundingLineContractTypeMappings, paymentTypes, _devolvedContracts, _sofCodeDictionary, dateTimeProviderMock.Object, 1); _validator.ShouldHaveValidationErrorFor(x => x.DevolvedAreaSourceOfFunding, easRecord).WithErrorCode("DevolvedAreaSourceOfFunding_04"); }
public void NotHaveError_When_DevolvedSourceOfFunding_DoesNotExist_For_NonRequired_Fundlines(string fundingLine, string devolvedSourceOfFunding) { easRecord.FundingLine = fundingLine; easRecord.DevolvedAreaSourceOfFunding = devolvedSourceOfFunding; _validator = new BusinessRulesValidator(_contractAllocations, _fundingLineContractTypeMappings, paymentTypes, _devolvedContracts, _sofCodeDictionary, dateTimeProviderMock.Object, 1); var result = _validator.Validate(easRecord); Assert.DoesNotContain(result.Errors, x => x.ErrorCode.Equals("DevolvedAreaSourceOfFunding_02")); }
public Credential (string username, string password, string email) { _oldPassword = password; InitializeVars(GuidGenerator.NewSequentialGuid(), username, password, email, 1); var credentialRule = new CreateCredentialRules(); CheckRule(BusinessRulesValidator <Credential> .BuildValidator(credentialRule, this)); }
public Credential (Guid id, string username, string password, string email, int isActive) { _oldPassword = password; InitializeVars(id, username, password, email, isActive); var credentialRule = new UpdateCredentialRules(); CheckRule(BusinessRulesValidator <Credential> .BuildValidator(credentialRule, this)); }
public void DevolvedAreaSourceOfFunding_04_NoError_ContractValid() { easRecord.FundingLine = "Adult Education - Eligible for MCA/GLA funding (non-procured)"; easRecord.CalendarMonth = "10"; easRecord.DevolvedAreaSourceOfFunding = "116"; _validator = new BusinessRulesValidator(_contractAllocations, _fundingLineContractTypeMappings, paymentTypes, _devolvedContracts, _sofCodeDictionary, dateTimeProviderMock.Object, 1); var result = _validator.Validate(easRecord); Assert.DoesNotContain(result.Errors, x => x.ErrorCode.Equals("DevolvedAreaSourceOfFunding_04")); }
public void FundingLine_02_HaveError_When_ContractTypeIsNotFound_For_A_FundingLine() { var easRecord = new EasCsvRecord() { CalendarMonth = "8", CalendarYear = "2020", Value = "1", FundingLine = "FundingLineWithoutContract", AdjustmentType = "adjustmentType" }; _validator = new BusinessRulesValidator(_contractAllocations, _fundingLineContractTypeMappings, paymentTypes, null, null, dateTimeProviderMock.Object, 1); _validator.ShouldHaveValidationErrorFor(x => x.FundingLine, easRecord).WithErrorCode("FundingLine_02"); }
public void HaveError_For_Invalid_FundingLine_Lookup() { var easRecord = new EasCsvRecord() { CalendarMonth = "8", CalendarYear = "2020", Value = "1", FundingLine = paymentTypes[0].FundingLine.Name, AdjustmentType = "InvalidAdjustmentType" }; dateTimeProviderMock.Setup(x => x.GetNowUtc()).Returns(new DateTime(2020, 09, 01)); _validator = new BusinessRulesValidator(null, null, paymentTypes, null, null, dateTimeProviderMock.Object, 1); _validator.ShouldHaveValidationErrorFor(x => x.AdjustmentType, easRecord).WithErrorCode("AdjustmentType_02"); }
public void HaveError_For_Empty_Value(string value) { var easRecord = new EasCsvRecord() { CalendarMonth = "8", CalendarYear = "2018", FundingLine = paymentTypes[0].FundingLine.Name, AdjustmentType = "adjustmentType", Value = value }; dateTimeProviderMock.Setup(x => x.GetNowUtc()).Returns(new DateTime(2018, 09, 01)); _validator = new BusinessRulesValidator(null, null, paymentTypes, null, null, dateTimeProviderMock.Object, 1); _validator.ShouldHaveValidationErrorFor(x => x.Value, easRecord).WithErrorCode("Value_01"); }
public void HaveError_WhenCalendarMonth_Is_NotValid(string calendarMonth) { var easRecord = new EasCsvRecord() { CalendarMonth = calendarMonth, CalendarYear = "2020", Value = "1", AdjustmentType = "AdjustmentType", FundingLine = "FundingLine" }; dateTimeProviderMock.Setup(x => x.GetNowUtc()).Returns(new DateTime(2020, 09, 01)); _validator = new BusinessRulesValidator(null, null, paymentTypes, null, null, dateTimeProviderMock.Object, 1); _validator.ShouldHaveValidationErrorFor(x => x.CalendarMonth, easRecord).WithErrorCode("CalendarMonth_01"); }
public void FundingLine_01_HaveError_When_FundingLine_IsNotFound(string fundingLine) { var easRecord = new EasCsvRecord() { CalendarMonth = "8", CalendarYear = "2020", Value = "1", FundingLine = fundingLine, AdjustmentType = "adjustmentType" }; dateTimeProviderMock.Setup(x => x.GetNowUtc()).Returns(new DateTime(2020, 09, 01)); _validator = new BusinessRulesValidator(null, null, paymentTypes, null, null, dateTimeProviderMock.Object, 1); _validator.ShouldHaveValidationErrorFor(x => x.FundingLine, easRecord).WithErrorCode("FundingLine_01"); }
public void HaveErrorWhenCalendarMonthAndYearAreNotInTheAcademicYear(string calendarMonth, string calendarYear) { var easRecord = new EasCsvRecord() { CalendarMonth = calendarMonth, CalendarYear = calendarYear, Value = "1", AdjustmentType = "AdjustmentType", FundingLine = "FundingLine" }; // Mock future date , so that validation doesn't fail on Calendar Month future date dateTimeProviderMock.Setup(x => x.GetNowUtc()).Returns(new DateTime(2021, 10, 01)); _validator = new BusinessRulesValidator(_contractAllocations, _fundingLineContractTypeMappings, paymentTypes, null, null, dateTimeProviderMock.Object, 1); _validator.ShouldHaveValidationErrorFor(x => x.CalendarMonth, easRecord).WithErrorCode("CalendarYearCalendarMonth_02"); }
public void Not_HaveAnError_WhenCalendarYear_Is_Valid() { var easRecord = new EasCsvRecord() { CalendarMonth = "8", CalendarYear = "2020", Value = "1", AdjustmentType = "AdjustmentType", FundingLine = "FundingLine" }; dateTimeProviderMock.Setup(x => x.GetNowUtc()).Returns(new DateTime(2020, 09, 01)); _validator = new BusinessRulesValidator(_contractAllocations, _fundingLineContractTypeMappings, paymentTypes, null, null, dateTimeProviderMock.Object, 1); var result = _validator.Validate(easRecord); Assert.True(result.IsValid); }
public void FundingLine_03_NotHaveError_When_ContractTypeIsNotRequiredForFundline(string fundline) { var easRecord = new EasCsvRecord() { CalendarMonth = "7", CalendarYear = "2020", Value = "1", FundingLine = fundline, AdjustmentType = "adjustmentType" }; dateTimeProviderMock.Setup(x => x.GetNowUtc()).Returns(new DateTime(2020, 09, 01)); _validator = new BusinessRulesValidator(_contractAllocations, _fundingLineContractTypeMappings, paymentTypes, null, null, dateTimeProviderMock.Object, 1); var result = _validator.Validate(easRecord); Assert.DoesNotContain(result.Errors, x => x.ErrorCode.Equals("FundingLine_03")); }
public void AllowValidAlphaNumericCharacters_When_Validating_AdjustmentType(string adjustmentType) { var easRecord = new EasCsvRecord() { CalendarMonth = "8", CalendarYear = "2020", Value = "1", FundingLine = "Funding-123+.Line", AdjustmentType = adjustmentType }; dateTimeProviderMock.Setup(x => x.GetNowUtc()).Returns(new DateTime(2020, 09, 01)); _validator = new BusinessRulesValidator(_contractAllocations, _fundingLineContractTypeMappings, paymentTypes, null, null, dateTimeProviderMock.Object, 1); var result = _validator.Validate(easRecord); Assert.True(result.IsValid); }
public void NotHaveErrorWhenCalendarMonthAndYearAreInTheAcademicYear(string calendarMonth, string calendarYear) { var easRecord = new EasCsvRecord() { CalendarMonth = calendarMonth, CalendarYear = calendarYear, Value = "1", AdjustmentType = "AdjustmentType", FundingLine = "FundingLine" }; // Mock future date , so that validation doesn't fail on Calendar Month future date dateTimeProviderMock.Setup(x => x.GetNowUtc()).Returns(new DateTime(2021, 10, 01)); _validator = new BusinessRulesValidator(_contractAllocations, _fundingLineContractTypeMappings, paymentTypes, null, null, dateTimeProviderMock.Object, 1); var result = _validator.Validate(easRecord); Assert.False(result?.Errors != null && result.Errors.Any(x => x.ErrorCode == $"CalendarYearCalendarMonth_02")); }
public void HaveError_WhenCalendarYear_Is_NotValid(string calendarYear) { var easRecord = new EasCsvRecord() { CalendarMonth = "12", CalendarYear = calendarYear, Value = "1", AdjustmentType = "AdjustmentType", FundingLine = "FundingLine" }; dateTimeProviderMock.Setup(x => x.GetNowUtc()).Returns(new DateTime(2020, 09, 01)); _validator = new BusinessRulesValidator(null, null, paymentTypes, null, null, dateTimeProviderMock.Object, 1); _validator.ShouldHaveValidationErrorFor(x => x.CalendarYear, easRecord).WithErrorCode("CalendarYear_01"); var result = _validator.Validate(easRecord); //Assert.False(result.IsValid); //Assert.Equal("The CalendarYear is not valid.", result.Errors[0].ErrorMessage); //Assert.Equal("CalendarYear_01", result.Errors[0].ErrorCode); }
private async Task <List <ValidationErrorModel> > ValidateAsync(IEasJobContext easJobContext, IReadOnlyDictionary <string, ValidationErrorRule> validationErrorReferenceData, IEnumerable <EasCsvRecord> easCsvRecords, CancellationToken cancellationToken) { List <ValidationResult> validationResults = new List <ValidationResult>(); List <ValidationResult> businessRulesValidationResults = new List <ValidationResult>(); cancellationToken.ThrowIfCancellationRequested(); List <PaymentType> paymentTypes = await _easPaymentService.GetAllPaymentTypes(cancellationToken); List <ContractAllocation> contractsForProvider = await _fcsDataService.GetContractsForProviderAsync(easJobContext.Ukprn, cancellationToken); List <FundingLineContractTypeMapping> fundingLineContractTypeMappings = await _fundingLineContractTypeMappingDataService.GetAllFundingLineContractTypeMappings(cancellationToken); var devolvedContracts = await _fcsDataService.GetDevolvedContractsForProviderAsync(easJobContext.Ukprn, cancellationToken); var sofCodeMcaShortCodeDictionary = await _postcodesDataService.GetMcaShortCodesForSofCodesAsync(DataServiceConstants.ValidDevolvedSourceOfFundingCodes, cancellationToken); BusinessRulesValidator validator = new BusinessRulesValidator(contractsForProvider, fundingLineContractTypeMappings, paymentTypes, devolvedContracts, sofCodeMcaShortCodeDictionary, _dateTimeProvider, easJobContext.ReturnPeriod); // Business Rule validators foreach (EasCsvRecord easRecord in easCsvRecords) { ValidationResult validate = validator.Validate(easRecord); if (!validate.IsValid) { businessRulesValidationResults.Add(validate); } } // Cross Record Validation var crossRecordValidationResult = new CrossRecordValidator().Validate(easCsvRecords); validationResults.AddRange(businessRulesValidationResults); if (!crossRecordValidationResult.IsValid) { validationResults.Add(crossRecordValidationResult); } var validationErrorList = _validationErrorBuilder.BuildValidationErrors(validationResults, validationErrorReferenceData).ToList(); return(validationErrorList); }
public void FundingLine_02_Have_Error_WhenContractEndDate_IsLessThan_EasRecordDate(string year, string month) { _contractAllocations = new List <ContractAllocation>() { new ContractAllocation() { FundingStreamPeriodCode = "APPS2021", EndDate = new DateTime(2021, 07, 31) } }; var easRecord = new EasCsvRecord() { AdjustmentType = "adjustment", FundingLine = "FundingLine2021", CalendarYear = year, CalendarMonth = month, Value = "10" }; _validator = new BusinessRulesValidator(_contractAllocations, _fundingLineContractTypeMappings, paymentTypes, null, null, dateTimeProviderMock.Object, 1); _validator.ShouldHaveValidationErrorFor(x => x.FundingLine, easRecord).WithErrorCode("FundingLine_02"); }
private void ValidateVars() { var signinRule = new SignInRules(); CheckRule(BusinessRulesValidator <SignInData> .BuildValidator(signinRule, this)); }
/// <summary> /// Validates the specified password policy entity. /// </summary> /// <param name="passwordPolicy">The password policy.</param> private IEnumerable<ValidationMessage> ValidatePasswordPolicy(PasswordPolicy passwordPolicy) { IBusinessRulesValidator validator = new BusinessRulesValidator(); validator.Add(PasswordPolicyValidator, passwordPolicy); return validator.Validate(); }
private IEnumerable<ValidationMessage> ValidateUser(User newUser) { IBusinessRulesValidator businessRuleValidator = new BusinessRulesValidator(); businessRuleValidator.Add(UserModelValidator, newUser); businessRuleValidator.Add(PasswordPolicyRuleValidator, newUser); return businessRuleValidator.Validate(); }