Index: Ringtoets/StabilityStoneCover/test/Ringtoets.StabilityStoneCover.Service.Test/StabilityStoneCoverWaveConditionsCalculationServiceTest.cs =================================================================== diff -u -rde5b52c198ca58cf84409484618c1378d6541f7e -r2b9f000bc1f88cdaf1c348b049d6e9a3a47d48f9 --- Ringtoets/StabilityStoneCover/test/Ringtoets.StabilityStoneCover.Service.Test/StabilityStoneCoverWaveConditionsCalculationServiceTest.cs (.../StabilityStoneCoverWaveConditionsCalculationServiceTest.cs) (revision de5b52c198ca58cf84409484618c1378d6541f7e) +++ Ringtoets/StabilityStoneCover/test/Ringtoets.StabilityStoneCover.Service.Test/StabilityStoneCoverWaveConditionsCalculationServiceTest.cs (.../StabilityStoneCoverWaveConditionsCalculationServiceTest.cs) (revision 2b9f000bc1f88cdaf1c348b049d6e9a3a47d48f9) @@ -48,7 +48,6 @@ [TestFixture] public class StabilityStoneCoverWaveConditionsCalculationServiceTest { - private const double validNorm = 0.005; private static readonly string testDataPath = TestHelper.GetTestDataPath(TestDataPath.Ringtoets.Integration.Service, "HydraRingCalculation"); private static readonly string validFilePath = Path.Combine(testDataPath, "HRD dutch coast south.sqlite"); private static readonly string validPreprocessorDirectory = TestHelper.GetScratchPadPath(); @@ -64,368 +63,6 @@ } [Test] - public void Validate_CalculationNull_ThrowArgumentNullException() - { - // Call - TestDelegate test = () => StabilityStoneCoverWaveConditionsCalculationService.Validate(null, - GetValidAssessmentLevel(), - GetValidHydraulicBoundaryDatabase(), - validNorm); - - // Assert - var exception = Assert.Throws(test); - Assert.AreEqual("calculation", exception.ParamName); - } - - [Test] - public void Validate_HydraulicBoundaryDatabaseNotLinked_LogsValidationMessageAndReturnFalse() - { - // Setup - var mockRepository = new MockRepository(); - var calculatorFactory = mockRepository.StrictMock(); - mockRepository.ReplayAll(); - - StabilityStoneCoverWaveConditionsCalculation calculation = GetDefaultCalculation(new TestHydraulicBoundaryLocation()); - string testFilePath = Path.Combine(testDataPath, "NonExisting.sqlite"); - - var isValid = true; - - using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) - { - // Call - Action call = () => isValid = StabilityStoneCoverWaveConditionsCalculationService.Validate(calculation, - GetValidAssessmentLevel(), - new HydraulicBoundaryDatabase - { - FilePath = testFilePath - }, - validNorm); - - // Assert - TestHelper.AssertLogMessages(call, messages => - { - string[] msgs = messages.ToArray(); - Assert.AreEqual(3, msgs.Length); - CalculationServiceTestHelper.AssertValidationStartMessage(msgs[0]); - Assert.AreEqual("Herstellen van de verbinding met de hydraulische randvoorwaardendatabase is mislukt. " + - $"Fout bij het lezen van bestand '{testFilePath}': het bestand bestaat niet.", msgs[1]); - CalculationServiceTestHelper.AssertValidationEndMessage(msgs[2]); - }); - Assert.IsFalse(isValid); - } - - mockRepository.VerifyAll(); - } - - [Test] - public void Validate_InvalidHydraulicBoundaryDatabase_LogsValidationMessageAndReturnFalse() - { - // Setup - var mockRepository = new MockRepository(); - var calculatorFactory = mockRepository.StrictMock(); - mockRepository.ReplayAll(); - - StabilityStoneCoverWaveConditionsCalculation calculation = GetDefaultCalculation(new TestHydraulicBoundaryLocation()); - string invalidFilePath = Path.Combine(testDataPath, "corruptschema.sqlite"); - - var isValid = true; - - using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) - { - // Call - Action call = () => isValid = StabilityStoneCoverWaveConditionsCalculationService.Validate(calculation, - GetValidAssessmentLevel(), - new HydraulicBoundaryDatabase - { - FilePath = invalidFilePath - }, - validNorm); - - // Assert - TestHelper.AssertLogMessages(call, messages => - { - string[] msgs = messages.ToArray(); - Assert.AreEqual(3, msgs.Length); - CalculationServiceTestHelper.AssertValidationStartMessage(msgs[0]); - Assert.AreEqual("Herstellen van de verbinding met de hydraulische randvoorwaardendatabase is mislukt. " + - $"Fout bij het lezen van bestand '{invalidFilePath}': kon geen locaties verkrijgen van de database.", msgs[1]); - CalculationServiceTestHelper.AssertValidationEndMessage(msgs[2]); - }); - Assert.IsFalse(isValid); - } - - mockRepository.VerifyAll(); - } - - [Test] - public void Validate_InvalidPreprocessorDirectory_LogsValidationMessageAndReturnFalse() - { - // Setup - var mockRepository = new MockRepository(); - var calculatorFactory = mockRepository.StrictMock(); - mockRepository.ReplayAll(); - - StabilityStoneCoverWaveConditionsCalculation calculation = GetDefaultCalculation(new TestHydraulicBoundaryLocation()); - const string invalidPreprocessorDirectory = "NonExistingPreprocessorDirectory"; - - var isValid = true; - - using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) - { - // Call - Action call = () => isValid = StabilityStoneCoverWaveConditionsCalculationService.Validate(calculation, - GetValidAssessmentLevel(), - new HydraulicBoundaryDatabase - { - FilePath = validFilePath, - CanUsePreprocessor = true, - UsePreprocessor = true, - PreprocessorDirectory = invalidPreprocessorDirectory - }, - validNorm); - - // Assert - TestHelper.AssertLogMessages(call, messages => - { - string[] msgs = messages.ToArray(); - Assert.AreEqual(3, msgs.Length); - CalculationServiceTestHelper.AssertValidationStartMessage(msgs[0]); - Assert.AreEqual("De bestandsmap waar de preprocessor bestanden opslaat is ongeldig. De bestandsmap bestaat niet.", msgs[1]); - CalculationServiceTestHelper.AssertValidationEndMessage(msgs[2]); - }); - Assert.IsFalse(isValid); - } - - mockRepository.VerifyAll(); - } - - [Test] - public void Validate_ValidHydraulicBoundaryDatabaseWithoutSettings_LogsValidationMessageAndReturnFalse() - { - // Setup - var mockRepository = new MockRepository(); - var calculatorFactory = mockRepository.StrictMock(); - mockRepository.ReplayAll(); - - StabilityStoneCoverWaveConditionsCalculation calculation = GetDefaultCalculation(new TestHydraulicBoundaryLocation()); - string testFilePath = Path.Combine(testDataPath, "HRD nosettings.sqlite"); - - var isValid = true; - - using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) - { - // Call - Action call = () => isValid = StabilityStoneCoverWaveConditionsCalculationService.Validate(calculation, - GetValidAssessmentLevel(), - new HydraulicBoundaryDatabase - { - FilePath = testFilePath - }, - validNorm); - - // Assert - TestHelper.AssertLogMessages(call, messages => - { - string[] msgs = messages.ToArray(); - Assert.AreEqual(3, msgs.Length); - CalculationServiceTestHelper.AssertValidationStartMessage(msgs[0]); - StringAssert.StartsWith("Herstellen van de verbinding met de hydraulische randvoorwaardendatabase is mislukt. " + - "Fout bij het lezen van bestand", msgs[1]); - CalculationServiceTestHelper.AssertValidationEndMessage(msgs[2]); - }); - Assert.IsFalse(isValid); - } - - mockRepository.VerifyAll(); - } - - [Test] - public void Validate_WithoutImportedHydraulicBoundaryDatabase_LogsValidationMessageAndReturnFalse() - { - // Setup - var mockRepository = new MockRepository(); - var calculatorFactory = mockRepository.StrictMock(); - mockRepository.ReplayAll(); - - StabilityStoneCoverWaveConditionsCalculation calculation = GetDefaultCalculation(new TestHydraulicBoundaryLocation()); - - var isValid = true; - - using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) - { - // Call - Action call = () => isValid = StabilityStoneCoverWaveConditionsCalculationService.Validate(calculation, - GetValidAssessmentLevel(), - new HydraulicBoundaryDatabase(), - validNorm); - - // Assert - TestHelper.AssertLogMessages(call, messages => - { - string[] msgs = messages.ToArray(); - Assert.AreEqual(3, msgs.Length); - CalculationServiceTestHelper.AssertValidationStartMessage(msgs[0]); - Assert.AreEqual("Er is geen hydraulische randvoorwaardendatabase geïmporteerd.", msgs[1]); - CalculationServiceTestHelper.AssertValidationEndMessage(msgs[2]); - }); - Assert.IsFalse(isValid); - } - - mockRepository.VerifyAll(); - } - - [Test] - public void Validate_NoHydraulicBoundaryLocation_LogsValidationMessageAndReturnFalse() - { - // Setup - var mockRepository = new MockRepository(); - var calculatorFactory = mockRepository.StrictMock(); - mockRepository.ReplayAll(); - - StabilityStoneCoverWaveConditionsCalculation calculation = GetDefaultCalculation(null); - - var isValid = true; - - using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) - { - // Call - Action call = () => isValid = StabilityStoneCoverWaveConditionsCalculationService.Validate(calculation, - GetValidAssessmentLevel(), - GetValidHydraulicBoundaryDatabase(), - validNorm); - - // Assert - TestHelper.AssertLogMessages(call, messages => - { - string[] msgs = messages.ToArray(); - Assert.AreEqual(3, msgs.Length); - CalculationServiceTestHelper.AssertValidationStartMessage(msgs[0]); - Assert.AreEqual("Er is geen hydraulische randvoorwaardenlocatie geselecteerd.", msgs[1]); - CalculationServiceTestHelper.AssertValidationEndMessage(msgs[2]); - }); - Assert.IsFalse(isValid); - } - - mockRepository.VerifyAll(); - } - - [Test] - public void Validate_AssessmentLevelNaN_LogsValidationMessageAndReturnFalse() - { - // Setup - var mockRepository = new MockRepository(); - var calculatorFactory = mockRepository.StrictMock(); - mockRepository.ReplayAll(); - - StabilityStoneCoverWaveConditionsCalculation calculation = GetDefaultCalculation(new TestHydraulicBoundaryLocation()); - - var isValid = true; - - using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) - { - // Call - Action call = () => isValid = StabilityStoneCoverWaveConditionsCalculationService.Validate(calculation, - RoundedDouble.NaN, - GetValidHydraulicBoundaryDatabase(), - validNorm); - - // Assert - TestHelper.AssertLogMessages(call, messages => - { - string[] msgs = messages.ToArray(); - Assert.AreEqual(3, msgs.Length); - CalculationServiceTestHelper.AssertValidationStartMessage(msgs[0]); - Assert.AreEqual("Kan het toetspeil niet afleiden op basis van de invoer.", msgs[1]); - CalculationServiceTestHelper.AssertValidationEndMessage(msgs[2]); - }); - Assert.IsFalse(isValid); - } - - mockRepository.VerifyAll(); - } - - [Test] - [TestCase(double.NaN, 10.0)] - [TestCase(1.0, double.NaN)] - public void Validate_NoWaterLevels_LogsValidationMessageAndReturnFalse(double lowerBoundaryRevetment, double upperBoundaryRevetment) - { - // Setup - var mockRepository = new MockRepository(); - var calculatorFactory = mockRepository.StrictMock(); - mockRepository.ReplayAll(); - - StabilityStoneCoverWaveConditionsCalculation calculation = GetDefaultCalculation(new TestHydraulicBoundaryLocation()); - calculation.InputParameters.LowerBoundaryRevetment = (RoundedDouble) lowerBoundaryRevetment; - calculation.InputParameters.UpperBoundaryRevetment = (RoundedDouble) upperBoundaryRevetment; - - var isValid = true; - - using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) - { - // Call - Action call = () => isValid = StabilityStoneCoverWaveConditionsCalculationService.Validate(calculation, - GetValidAssessmentLevel(), - GetValidHydraulicBoundaryDatabase(), - validNorm); - - // Assert - TestHelper.AssertLogMessages(call, messages => - { - string[] msgs = messages.ToArray(); - Assert.AreEqual(3, msgs.Length); - CalculationServiceTestHelper.AssertValidationStartMessage(msgs[0]); - Assert.AreEqual("Kan geen waterstanden afleiden op basis van de invoer. Controleer de opgegeven boven- en ondergrenzen.", msgs[1]); - CalculationServiceTestHelper.AssertValidationEndMessage(msgs[2]); - }); - Assert.IsFalse(isValid); - } - - mockRepository.VerifyAll(); - } - - [Test] - [TestCase(double.NegativeInfinity, TestName = "Validate_CalculationWithForeshoreAndBreakWaterAndInvalidBreakWaterHeight_LogAndReturnsFalse(negativeInfinity)")] - [TestCase(double.PositiveInfinity, TestName = "Validate_CalculationWithForeshoreAndBreakWaterAndInvalidBreakWaterHeight_LogAndReturnsFalse(positiveInfinity)")] - [TestCase(double.NaN, TestName = "Validate_CalculationWithForeshoreAndBreakWaterAndInvalidBreakWaterHeight_LogAndReturnsFalse(NaN)")] - public void Validate_CalculationWithForeshoreAndUsesBreakWaterAndHasInvalidBreakWaterHeight_LogsValidationMessageAndReturnFalse(double breakWaterHeight) - { - // Setup - var mockRepository = new MockRepository(); - var calculatorFactory = mockRepository.StrictMock(); - mockRepository.ReplayAll(); - - StabilityStoneCoverWaveConditionsCalculation calculation = GetDefaultCalculation(new TestHydraulicBoundaryLocation()); - calculation.InputParameters.ForeshoreProfile = new TestForeshoreProfile(new BreakWater(BreakWaterType.Dam, - breakWaterHeight)); - calculation.InputParameters.UseBreakWater = true; - - var isValid = true; - - using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) - { - // Call - Action call = () => isValid = StabilityStoneCoverWaveConditionsCalculationService.Validate(calculation, - GetValidAssessmentLevel(), - GetValidHydraulicBoundaryDatabase(), - validNorm); - - // 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(); - } - - [Test] public void Calculate_CalculationNull_ThrowArgumentNullException() { // Setup @@ -1285,19 +922,6 @@ return calculation; } - private static RoundedDouble GetValidAssessmentLevel() - { - return (RoundedDouble) 9.3; - } - - private static HydraulicBoundaryDatabase GetValidHydraulicBoundaryDatabase() - { - return new HydraulicBoundaryDatabase - { - FilePath = validFilePath - }; - } - private static IEnumerable GetWaterLevels(StabilityStoneCoverWaveConditionsCalculation calculation, IAssessmentSection assessmentSection) { return calculation.InputParameters.GetWaterLevels(assessmentSection.GetAssessmentLevel(