Index: Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Service.Test/DuneErosionBoundaryCalculationServiceTest.cs =================================================================== diff -u -rd843e2dbc351616dc406fb595edf6ae257ebe274 -re42e447f875924e651c5b3359450ae145216c149 --- Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Service.Test/DuneErosionBoundaryCalculationServiceTest.cs (.../DuneErosionBoundaryCalculationServiceTest.cs) (revision d843e2dbc351616dc406fb595edf6ae257ebe274) +++ Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Service.Test/DuneErosionBoundaryCalculationServiceTest.cs (.../DuneErosionBoundaryCalculationServiceTest.cs) (revision e42e447f875924e651c5b3359450ae145216c149) @@ -30,6 +30,9 @@ using Ringtoets.Common.Data.Contribution; using Ringtoets.DuneErosion.Data; using Ringtoets.DuneErosion.Data.TestUtil; +using Ringtoets.HydraRing.Calculation.Calculator.Factory; +using Ringtoets.HydraRing.Calculation.Data.Input.Hydraulics; +using Ringtoets.HydraRing.Calculation.TestUtil.Calculator; namespace Ringtoets.DuneErosion.Service.Test { @@ -62,15 +65,14 @@ mocks.ReplayAll(); var duneLocation = new TestDuneLocation(); - var service = new DuneErosionBoundaryCalculationService(); bool exceptionThrown = false; // Call Action call = () => { try { - service.Calculate(duneLocation, failureMechanism, assessmentSection, validFilePath); + new DuneErosionBoundaryCalculationService().Calculate(duneLocation, failureMechanism, assessmentSection, validFilePath); } catch (Exception) { @@ -93,19 +95,20 @@ } [Test] - public void Calculate_ValidData_CalculationRan() + public void Calculate_ValidData_CalculationStartedWithRightParameters() { // Setup const double norm = 1.0 / 200; const double contribution = 10; + const string ringId = "1"; var failureMechanism = new DuneErosionFailureMechanism { Contribution = contribution }; var mocks = new MockRepository(); - var assessmentSection = mocks.Stub(); - assessmentSection.Stub(a => a.Id).Return("1"); + var assessmentSection = mocks.Stub(); + assessmentSection.Stub(a => a.Id).Return(ringId); assessmentSection.Stub(a => a.GetFailureMechanisms()).Return(new[] { failureMechanism @@ -116,24 +119,38 @@ }, 1, norm)); mocks.ReplayAll(); - var duneLocation = new DuneLocation(1300001, "tast", new Point2D(0, 0), 3, 0, 0, 0.000007); - var service = new DuneErosionBoundaryCalculationService(); - bool exceptionThrown = false; + var duneLocation = new DuneLocation(1300001, "test", new Point2D(0, 0), 3, 0, 0, 0.000007); - // Call - Action call = () => service.Calculate(duneLocation, failureMechanism, assessmentSection, validFilePath); - - // Assert - TestHelper.AssertLogMessages(call, messages => + using (new HydraRingCalculatorFactoryConfig()) { - var msgs = messages.ToArray(); - Assert.AreEqual(2, msgs.Length); - var name = duneLocation.Name; - StringAssert.StartsWith(string.Format("Berekening van '{0}' gestart om: ", name), msgs[0]); - StringAssert.StartsWith(string.Format("Berekening van '{0}' beƫindigd om: ", name), msgs[1]); - }); - Assert.IsFalse(exceptionThrown); + var testCalculator = ((TestHydraRingCalculatorFactory) HydraRingCalculatorFactory.Instance).DunesBoundaryConditionsCalculator; + + // Call + new DuneErosionBoundaryCalculationService().Calculate(duneLocation, failureMechanism, assessmentSection, validFilePath); + + // Assert + Assert.AreEqual(testDataPath, testCalculator.HydraulicBoundaryDatabaseDirectory); + Assert.AreEqual(ringId, testCalculator.RingId); + + var expectedInput = CreateInput(duneLocation, failureMechanism.GetMechanismSpecificNorm(assessmentSection)); + AssertInput(expectedInput, testCalculator.ReceivedInputs.First()); + Assert.IsFalse(testCalculator.IsCanceled); + } + mocks.VerifyAll(); } + + private static void AssertInput(DunesBoundaryConditionsCalculationInput expectedInput, DunesBoundaryConditionsCalculationInput actualInput) + { + Assert.AreEqual(expectedInput.Section.SectionId, actualInput.Section.SectionId); + Assert.AreEqual(expectedInput.Section.CrossSectionNormal, actualInput.Section.CrossSectionNormal); + Assert.AreEqual(expectedInput.HydraulicBoundaryLocationId, actualInput.HydraulicBoundaryLocationId); + Assert.AreEqual(expectedInput.Beta, actualInput.Beta); + } + + private static DunesBoundaryConditionsCalculationInput CreateInput(DuneLocation duneLocation, double norm) + { + return new DunesBoundaryConditionsCalculationInput(1, duneLocation.Id, norm, duneLocation.Orientation); + } } } \ No newline at end of file Index: Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Service.Test/Ringtoets.DuneErosion.Service.Test.csproj =================================================================== diff -u -rd843e2dbc351616dc406fb595edf6ae257ebe274 -re42e447f875924e651c5b3359450ae145216c149 --- Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Service.Test/Ringtoets.DuneErosion.Service.Test.csproj (.../Ringtoets.DuneErosion.Service.Test.csproj) (revision d843e2dbc351616dc406fb595edf6ae257ebe274) +++ Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Service.Test/Ringtoets.DuneErosion.Service.Test.csproj (.../Ringtoets.DuneErosion.Service.Test.csproj) (revision e42e447f875924e651c5b3359450ae145216c149) @@ -80,6 +80,10 @@ {888d4097-8bc2-4703-9fb1-8744c94d525e} Ringtoets.HydraRing.Calculation + + {74CBA865-9338-447F-BAD9-28312446AE84} + Ringtoets.HydraRing.Calculation.TestUtil + {D1068432-C172-4AA6-847B-D9DEB4C6DE26} Ringtoets.DuneErosion.Data