public void Validate_ValidCalculationInputAndHydraulicBoundaryDatabase_ReturnsTrue() { // Setup var mockRepository = new MockRepository(); IAssessmentSection assessmentSection = AssessmentSectionTestHelper.CreateAssessmentSectionStub(new HeightStructuresFailureMechanism(), mockRepository, validHydraulicBoundaryDatabaseFilePath); mockRepository.ReplayAll(); var calculation = new TestHeightStructuresCalculationScenario { InputParameters = { HydraulicBoundaryLocation = new HydraulicBoundaryLocation(1, "name", 2, 2) } }; // Call var isValid = false; Action call = () => isValid = HeightStructuresCalculationService.Validate(calculation, assessmentSection); // Assert TestHelper.AssertLogMessages(call, messages => { string[] msgs = messages.ToArray(); Assert.AreEqual(2, msgs.Length); CalculationServiceTestHelper.AssertValidationStartMessage(msgs[0]); CalculationServiceTestHelper.AssertValidationEndMessage(msgs[1]); }); Assert.IsTrue(isValid); mockRepository.VerifyAll(); }
private static void ValidateAll(IEnumerable <StructuresCalculation <HeightStructuresInput> > heightStructuresCalculations, IAssessmentSection assessmentSection) { foreach (StructuresCalculation <HeightStructuresInput> calculation in heightStructuresCalculations) { HeightStructuresCalculationService.Validate(calculation, assessmentSection); } }
public void Constructor_ExpectedValues() { // Call var service = new HeightStructuresCalculationService(); // Assert Assert.IsInstanceOf <StructuresCalculationServiceBase <HeightStructuresValidationRulesRegistry, HeightStructuresInput, HeightStructure, GeneralHeightStructuresInput, StructuresOvertoppingCalculationInput> >(service); }
public void Validate_DistributionStandardDeviationInvalid_LogsErrorAndReturnsFalse(double deviationOne, double deviationTwo, double deviationThree, double deviationFour, double deviationFive, string parameterName) { // Setup var mockRepository = new MockRepository(); IAssessmentSection assessmentSection = AssessmentSectionTestHelper.CreateAssessmentSectionStub(new HeightStructuresFailureMechanism(), mockRepository, validHydraulicBoundaryDatabaseFilePath); mockRepository.ReplayAll(); string expectedValidationMessage = $"De standaardafwijking voor '{parameterName}' moet groter zijn dan of gelijk zijn aan 0."; var calculation = new TestHeightStructuresCalculationScenario { InputParameters = { HydraulicBoundaryLocation = new HydraulicBoundaryLocation(1, "name", 2, 2) } }; calculation.InputParameters.ModelFactorSuperCriticalFlow.StandardDeviation = (RoundedDouble)deviationOne; calculation.InputParameters.LevelCrestStructure.StandardDeviation = (RoundedDouble)deviationTwo; calculation.InputParameters.AllowedLevelIncreaseStorage.StandardDeviation = (RoundedDouble)deviationThree; calculation.InputParameters.FlowWidthAtBottomProtection.StandardDeviation = (RoundedDouble)deviationFour; calculation.InputParameters.WidthFlowApertures.StandardDeviation = (RoundedDouble)deviationFive; // Call var isValid = false; Action call = () => isValid = HeightStructuresCalculationService.Validate(calculation, assessmentSection); // Assert TestHelper.AssertLogMessages(call, messages => { string[] msgs = messages.ToArray(); Assert.AreEqual(3, msgs.Length); CalculationServiceTestHelper.AssertValidationStartMessage(msgs[0]); Assert.AreEqual(expectedValidationMessage, msgs[1]); CalculationServiceTestHelper.AssertValidationEndMessage(msgs[2]); }); Assert.IsFalse(isValid); mockRepository.VerifyAll(); }
public void Validate_LogNormalDistributionMeanInvalid_LogsErrorAndReturnsFalse(double meanOne, double meanTwo, double meanThree, double meanFour, double meanFive, string parameterName) { // Setup var mockRepository = new MockRepository(); IAssessmentSection assessmentSection = AssessmentSectionTestHelper.CreateAssessmentSectionStub(new HeightStructuresFailureMechanism(), mockRepository, validHydraulicBoundaryDatabaseFilePath); mockRepository.ReplayAll(); string expectedValidationMessage = $"De verwachtingswaarde voor '{parameterName}' moet een positief getal zijn."; var calculation = new TestHeightStructuresCalculationScenario { InputParameters = { HydraulicBoundaryLocation = new HydraulicBoundaryLocation(1, "name", 2, 2) } }; calculation.InputParameters.StormDuration.Mean = (RoundedDouble)meanOne; calculation.InputParameters.AllowedLevelIncreaseStorage.Mean = (RoundedDouble)meanTwo; calculation.InputParameters.StorageStructureArea.Mean = (RoundedDouble)meanThree; calculation.InputParameters.FlowWidthAtBottomProtection.Mean = (RoundedDouble)meanFour; calculation.InputParameters.CriticalOvertoppingDischarge.Mean = (RoundedDouble)meanFive; // Call var isValid = false; Action call = () => isValid = HeightStructuresCalculationService.Validate(calculation, assessmentSection); // Assert TestHelper.AssertLogMessages(call, messages => { string[] msgs = messages.ToArray(); Assert.AreEqual(3, msgs.Length); CalculationServiceTestHelper.AssertValidationStartMessage(msgs[0]); Assert.AreEqual(expectedValidationMessage, msgs[1]); CalculationServiceTestHelper.AssertValidationEndMessage(msgs[2]); }); Assert.IsFalse(isValid); mockRepository.VerifyAll(); }
public void Validate_DistributionVariationCoefficientInvalid_LogsErrorAndReturnsFalse( double coefficientOne, double coefficientTwo, double coefficientThree, string parameterName) { // Setup var mockRepository = new MockRepository(); IAssessmentSection assessmentSection = AssessmentSectionTestHelper.CreateAssessmentSectionStub(new HeightStructuresFailureMechanism(), mockRepository, validHydraulicBoundaryDatabaseFilePath); mockRepository.ReplayAll(); string expectedValidationMessage = $"De variatiecoëfficiënt voor '{parameterName}' moet groter zijn dan of gelijk zijn aan 0."; var calculation = new TestHeightStructuresCalculationScenario { InputParameters = { HydraulicBoundaryLocation = new HydraulicBoundaryLocation(1, "name", 2, 2) } }; calculation.InputParameters.StormDuration.CoefficientOfVariation = (RoundedDouble)coefficientOne; calculation.InputParameters.StorageStructureArea.CoefficientOfVariation = (RoundedDouble)coefficientTwo; calculation.InputParameters.CriticalOvertoppingDischarge.CoefficientOfVariation = (RoundedDouble)coefficientThree; // Call var isValid = false; Action call = () => isValid = HeightStructuresCalculationService.Validate(calculation, assessmentSection); // Assert TestHelper.AssertLogMessages(call, messages => { string[] msgs = messages.ToArray(); Assert.AreEqual(3, msgs.Length); CalculationServiceTestHelper.AssertValidationStartMessage(msgs[0]); Assert.AreEqual(expectedValidationMessage, msgs[1]); CalculationServiceTestHelper.AssertValidationEndMessage(msgs[2]); }); Assert.IsFalse(isValid); mockRepository.VerifyAll(); }
public void Validate_StructureNormalOrientationInvalid_ReturnsFalse() { // Setup var mockRepository = new MockRepository(); IAssessmentSection assessmentSection = AssessmentSectionTestHelper.CreateAssessmentSectionStub(new HeightStructuresFailureMechanism(), mockRepository, validHydraulicBoundaryDatabaseFilePath); mockRepository.ReplayAll(); const string expectedValidationMessage = "De waarde voor 'Oriëntatie' moet een concreet getal zijn."; var calculation = new TestHeightStructuresCalculationScenario { InputParameters = { HydraulicBoundaryLocation = new HydraulicBoundaryLocation(1, "name", 2, 2), Structure = new TestHeightStructure() } }; calculation.InputParameters.StructureNormalOrientation = RoundedDouble.NaN; // Call var isValid = false; Action call = () => isValid = HeightStructuresCalculationService.Validate(calculation, assessmentSection); // Assert TestHelper.AssertLogMessages(call, messages => { string[] msgs = messages.ToArray(); Assert.AreEqual(3, msgs.Length); CalculationServiceTestHelper.AssertValidationStartMessage(msgs[0]); Assert.AreEqual(expectedValidationMessage, msgs[1]); CalculationServiceTestHelper.AssertValidationEndMessage(msgs[2]); }); Assert.IsFalse(isValid); mockRepository.VerifyAll(); }
public void Validate_UsesBreakWaterAndHasInvalidBreakWaterSettings_LogsErrorAndReturnsFalse(double breakWaterHeight) { // Setup var mockRepository = new MockRepository(); IAssessmentSection assessmentSection = AssessmentSectionTestHelper.CreateAssessmentSectionStub(new HeightStructuresFailureMechanism(), mockRepository, validHydraulicBoundaryDatabaseFilePath); mockRepository.ReplayAll(); var calculation = new TestHeightStructuresCalculationScenario { InputParameters = { HydraulicBoundaryLocation = new HydraulicBoundaryLocation(1, "name", 2, 2), ForeshoreProfile = new TestForeshoreProfile(new BreakWater(BreakWaterType.Dam, breakWaterHeight)), UseBreakWater = true } }; // Call var isValid = false; Action call = () => isValid = HeightStructuresCalculationService.Validate(calculation, assessmentSection); // Assert TestHelper.AssertLogMessages(call, messages => { string[] msgs = messages.ToArray(); Assert.AreEqual(3, msgs.Length); CalculationServiceTestHelper.AssertValidationStartMessage(msgs[0]); Assert.AreEqual("De waarde voor 'hoogte' van de dam moet een concreet getal zijn.", msgs[1]); CalculationServiceTestHelper.AssertValidationEndMessage(msgs[2]); }); Assert.IsFalse(isValid); mockRepository.VerifyAll(); }
private static void Validate(HeightStructuresCalculationScenarioContext context) { HeightStructuresCalculationService.Validate(context.WrappedData, context.AssessmentSection); }