Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Ringtoets.Integration.Forms.Test.csproj =================================================================== diff -u -rc399d2d0b6ce75c643c256bf605b748fc1dea88b -rfe0ccc4dc7ed40356bd77aae1531d073af8d8f85 --- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Ringtoets.Integration.Forms.Test.csproj (.../Ringtoets.Integration.Forms.Test.csproj) (revision c399d2d0b6ce75c643c256bf605b748fc1dea88b) +++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Ringtoets.Integration.Forms.Test.csproj (.../Ringtoets.Integration.Forms.Test.csproj) (revision fe0ccc4dc7ed40356bd77aae1531d073af8d8f85) @@ -190,6 +190,10 @@ {318ba582-88c9-4816-a54a-a7e431461de3} Core.Components.Gis + + {73E7E100-C015-4874-A548-AD6E33E7955E} + Ringtoets.Common.Service.TestUtil + {74CBA865-9338-447F-BAD9-28312446AE84} Ringtoets.HydraRing.Calculation.TestUtil @@ -202,10 +206,6 @@ {1AC97B51-88C2-437D-89E6-65C69AB3CCAD} Ringtoets.WaveImpactAsphaltCover.Forms - - {83A782F1-BA78-4D5C-B213-39066605AFD8} - Ringtoets.WaveImpactAsphaltCover.Plugin - {d4200f43-3f72-4f42-af0a-8ced416a38ec} Ringtoets.Common.Data @@ -290,6 +290,10 @@ {C8383B76-B3F1-4E6E-B56C-527B469FA20A} Ringtoets.Integration.Plugin + + {28811C4A-6C18-42C1-88B2-A03A3784E2D0} + Ringtoets.Integration.Service + Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/TreeNodeInfos/DesignWaterLevelLocationsContextTreeNodeInfoTest.cs =================================================================== diff -u -rc399d2d0b6ce75c643c256bf605b748fc1dea88b -rfe0ccc4dc7ed40356bd77aae1531d073af8d8f85 --- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/TreeNodeInfos/DesignWaterLevelLocationsContextTreeNodeInfoTest.cs (.../DesignWaterLevelLocationsContextTreeNodeInfoTest.cs) (revision c399d2d0b6ce75c643c256bf605b748fc1dea88b) +++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/TreeNodeInfos/DesignWaterLevelLocationsContextTreeNodeInfoTest.cs (.../DesignWaterLevelLocationsContextTreeNodeInfoTest.cs) (revision fe0ccc4dc7ed40356bd77aae1531d073af8d8f85) @@ -37,11 +37,13 @@ using Rhino.Mocks; using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.TestUtil; -using Ringtoets.HydraRing.Calculation.TestUtil; +using Ringtoets.Common.Service; +using Ringtoets.Common.Service.TestUtil; using Ringtoets.HydraRing.Data; using Ringtoets.Integration.Data; using Ringtoets.Integration.Forms.PresentationObjects; using Ringtoets.Integration.Plugin; +using Ringtoets.Integration.Service.MessageProviders; using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources; namespace Ringtoets.Integration.Forms.Test.TreeNodeInfos @@ -300,51 +302,6 @@ } [Test] - public void ForeColor_ContextHasNoHydraulicBoundaryDatabase_ReturnDisabledColor() - { - // Setup - var assessmentSectionMock = mockRepository.Stub(); - mockRepository.ReplayAll(); - - var context = new DesignWaterLevelLocationsContext(assessmentSectionMock); - - using (var plugin = new RingtoetsPlugin()) - { - TreeNodeInfo info = GetInfo(plugin); - - // Call - Color color = info.ForeColor(context); - - // Assert - Assert.AreEqual(Color.FromKnownColor(KnownColor.GrayText), color); - } - mockRepository.VerifyAll(); - } - - [Test] - public void ForeColor_ContextHasHydraulicBoundaryDatabase_ReturnControlColor() - { - // Setup - var assessmentSectionMock = mockRepository.Stub(); - assessmentSectionMock.HydraulicBoundaryDatabase = new HydraulicBoundaryDatabase(); - mockRepository.ReplayAll(); - - var context = new DesignWaterLevelLocationsContext(assessmentSectionMock); - - using (var plugin = new RingtoetsPlugin()) - { - TreeNodeInfo info = GetInfo(plugin); - - // Call - Color color = info.ForeColor(context); - - // Assert - Assert.AreEqual(Color.FromKnownColor(KnownColor.ControlText), color); - } - mockRepository.VerifyAll(); - } - - [Test] [RequiresSTA] public void GivenHydraulicBoundaryLocationThatFails_CalculatingAssessmentLevelFromContextMenu_ThenLogMessagesAddedPreviousOutputNotAffected() { @@ -386,30 +343,70 @@ plugin.Activate(); using (ContextMenuStrip contextMenuAdapter = info.ContextMenuStrip(context, null, treeViewControl)) - using (new HydraRingCalculationServiceConfig()) { - // When - Action action = () => { contextMenuAdapter.Items[contextMenuRunAssessmentLevelCalculationsIndex].PerformClick(); }; - - // Then - TestHelper.AssertLogMessages(action, messages => + using (new DesignWaterLevelCalculationServiceConfig()) { - var msgs = messages.ToArray(); - Assert.AreEqual(6, msgs.Length); - StringAssert.StartsWith(string.Format("Validatie van 'Toetspeil berekenen voor locatie '{0}'' gestart om:", locationName), msgs[0]); - StringAssert.StartsWith(string.Format("Validatie van 'Toetspeil berekenen voor locatie '{0}'' beƫindigd om:", locationName), msgs[1]); - StringAssert.StartsWith(string.Format("Berekening van 'Toetspeil berekenen voor locatie '{0}'' gestart om:", locationName), msgs[2]); - StringAssert.StartsWith(string.Format("Er is een fout opgetreden tijdens de toetspeil berekening '{0}': inspecteer het logbestand.", locationName), msgs[3]); - StringAssert.StartsWith(string.Format("Berekening van 'Toetspeil berekenen voor locatie '{0}'' beƫindigd om:", locationName), msgs[4]); - StringAssert.StartsWith(string.Format("Uitvoeren van 'Toetspeil berekenen voor locatie '{0}'' is mislukt.", locationName), msgs[5]); - }); - Assert.AreEqual(CalculationConvergence.NotCalculated, location.DesignWaterLevelCalculationConvergence); + var testService = (TestDesignWaterLevelCalculationService) DesignWaterLevelCalculationService.Instance; + testService.SetCalculationConvergenceOutput = CalculationConvergence.NotCalculated; + + // When + contextMenuAdapter.Items[contextMenuRunAssessmentLevelCalculationsIndex].PerformClick(); + + // Then + Assert.IsInstanceOf(testService.MessageProvider); + Assert.AreEqual(CalculationConvergence.NotCalculated, location.DesignWaterLevelCalculationConvergence); + } } } } mockRepository.VerifyAll(); } + [Test] + public void ForeColor_ContextHasNoHydraulicBoundaryDatabase_ReturnDisabledColor() + { + // Setup + var assessmentSectionMock = mockRepository.Stub(); + mockRepository.ReplayAll(); + + var context = new DesignWaterLevelLocationsContext(assessmentSectionMock); + + using (var plugin = new RingtoetsPlugin()) + { + TreeNodeInfo info = GetInfo(plugin); + + // Call + Color color = info.ForeColor(context); + + // Assert + Assert.AreEqual(Color.FromKnownColor(KnownColor.GrayText), color); + } + mockRepository.VerifyAll(); + } + + [Test] + public void ForeColor_ContextHasHydraulicBoundaryDatabase_ReturnControlColor() + { + // Setup + var assessmentSectionMock = mockRepository.Stub(); + assessmentSectionMock.HydraulicBoundaryDatabase = new HydraulicBoundaryDatabase(); + mockRepository.ReplayAll(); + + var context = new DesignWaterLevelLocationsContext(assessmentSectionMock); + + using (var plugin = new RingtoetsPlugin()) + { + TreeNodeInfo info = GetInfo(plugin); + + // Call + Color color = info.ForeColor(context); + + // Assert + Assert.AreEqual(Color.FromKnownColor(KnownColor.ControlText), color); + } + mockRepository.VerifyAll(); + } + private static TreeNodeInfo GetInfo(RingtoetsPlugin plugin) { return plugin.GetTreeNodeInfos().First(tni => tni.TagType == typeof(DesignWaterLevelLocationsContext)); Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Views/DesignWaterLevelLocationsViewTest.cs =================================================================== diff -u -r06b2840a2bb64c0960c8ac29322b5a0971c73c77 -rfe0ccc4dc7ed40356bd77aae1531d073af8d8f85 --- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Views/DesignWaterLevelLocationsViewTest.cs (.../DesignWaterLevelLocationsViewTest.cs) (revision 06b2840a2bb64c0960c8ac29322b5a0971c73c77) +++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Views/DesignWaterLevelLocationsViewTest.cs (.../DesignWaterLevelLocationsViewTest.cs) (revision fe0ccc4dc7ed40356bd77aae1531d073af8d8f85) @@ -33,8 +33,10 @@ using Ringtoets.Common.Data.Contribution; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Common.Forms.GuiServices; +using Ringtoets.Common.Service.MessageProviders; using Ringtoets.HydraRing.Data; using Ringtoets.Integration.Forms.Views; +using Ringtoets.Integration.Service.MessageProviders; namespace Ringtoets.Integration.Forms.Test.Views { @@ -215,9 +217,14 @@ var mockRepository = new MockRepository(); var guiServiceMock = mockRepository.StrictMock(); + ICalculationMessageProvider messageProvider = null; IEnumerable locations = null; guiServiceMock.Expect(ch => ch.CalculateDesignWaterLevels(null, null, null, null, null, 1)).IgnoreArguments().WhenCalled( - invocation => { locations = (IEnumerable) invocation.Arguments[3]; }); + invocation => + { + messageProvider = (ICalculationMessageProvider) invocation.Arguments[0]; + locations = (IEnumerable) invocation.Arguments[3]; + }); mockRepository.ReplayAll(); view.CalculationGuiService = guiServiceMock; @@ -227,10 +234,12 @@ buttonTester.Click(); // Assert + Assert.IsInstanceOf(messageProvider); var hydraulicBoundaryLocations = locations.ToArray(); Assert.AreEqual(1, hydraulicBoundaryLocations.Length); HydraulicBoundaryLocation expectedLocation = assessmentSection.HydraulicBoundaryDatabase.Locations.First(); Assert.AreEqual(expectedLocation, hydraulicBoundaryLocations.First()); + mockRepository.VerifyAll(); }