Index: Ringtoets/WaveImpactAsphaltCover/src/Ringtoets.WaveImpactAsphaltCover.Plugin/WaveImpactAsphaltCoverPlugin.cs =================================================================== diff -u -ref4b3fac5923a625dc7d6d74238039d6c628c198 -r7979fad76dccece25f59baeb772540e4416adefc --- Ringtoets/WaveImpactAsphaltCover/src/Ringtoets.WaveImpactAsphaltCover.Plugin/WaveImpactAsphaltCoverPlugin.cs (.../WaveImpactAsphaltCoverPlugin.cs) (revision ef4b3fac5923a625dc7d6d74238039d6c628c198) +++ Ringtoets/WaveImpactAsphaltCover/src/Ringtoets.WaveImpactAsphaltCover.Plugin/WaveImpactAsphaltCoverPlugin.cs (.../WaveImpactAsphaltCoverPlugin.cs) (revision 7979fad76dccece25f59baeb772540e4416adefc) @@ -522,6 +522,8 @@ RingtoetsCommonDataResources.Calculation_DefaultName, c => c.Name) }; + WaveConditionsInputHelper.SetCategoryType(calculation.InputParameters, + nodeData.AssessmentSection.FailureMechanismContribution.NormativeNorm); nodeData.WrappedData.Children.Add(calculation); nodeData.WrappedData.NotifyObservers(); } Index: Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Plugin.Test/TreeNodeInfos/WaveImpactAsphaltCoverWaveConditionsCalculationGroupContextTreeNodeInfoTest.cs =================================================================== diff -u -r413127864a46a671ee8361e152d97d9b04daedca -r7979fad76dccece25f59baeb772540e4416adefc --- Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Plugin.Test/TreeNodeInfos/WaveImpactAsphaltCoverWaveConditionsCalculationGroupContextTreeNodeInfoTest.cs (.../WaveImpactAsphaltCoverWaveConditionsCalculationGroupContextTreeNodeInfoTest.cs) (revision 413127864a46a671ee8361e152d97d9b04daedca) +++ Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Plugin.Test/TreeNodeInfos/WaveImpactAsphaltCoverWaveConditionsCalculationGroupContextTreeNodeInfoTest.cs (.../WaveImpactAsphaltCoverWaveConditionsCalculationGroupContextTreeNodeInfoTest.cs) (revision 7979fad76dccece25f59baeb772540e4416adefc) @@ -39,6 +39,7 @@ using Rhino.Mocks; using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.Calculation; +using Ringtoets.Common.Data.Contribution; using Ringtoets.Common.Data.Hydraulics; using Ringtoets.Common.Data.TestUtil; using Ringtoets.Common.Forms; @@ -1425,6 +1426,65 @@ } [Test] + [TestCase(NormType.Signaling)] + [TestCase(NormType.LowerLimit)] + public void ContextMenuStrip_ClickOnAddCalculationItem_AddCalculationToCalculationGroupAndNotifyObservers( + NormType normType) + { + // Setup + var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); + var group = new CalculationGroup(); + var failureMechanism = new WaveImpactAsphaltCoverFailureMechanism(); + var assessmentSection = new AssessmentSectionStub + { + FailureMechanismContribution = + { + NormativeNorm = normType + } + }; + var nodeData = new WaveImpactAsphaltCoverWaveConditionsCalculationGroupContext(group, + null, + failureMechanism, + assessmentSection); + var calculationItem = new WaveImpactAsphaltCoverWaveConditionsCalculation + { + Name = "Nieuwe berekening" + }; + var observer = mocks.StrictMock(); + observer.Expect(o => o.UpdateObserver()); + + using (var treeViewControl = new TreeViewControl()) + { + gui.Stub(g => g.Get(nodeData, treeViewControl)).Return(menuBuilder); + gui.Stub(g => g.ViewCommands).Return(mocks.Stub()); + gui.Stub(g => g.MainWindow).Return(mocks.Stub()); + mocks.ReplayAll(); + + group.Children.Add(calculationItem); + nodeData.Attach(observer); + + using (ContextMenuStrip contextMenu = info.ContextMenuStrip(nodeData, null, treeViewControl)) + { + // Precondition + Assert.AreEqual(1, group.Children.Count); + + // Call + contextMenu.Items[contextMenuAddCalculationIndexRootGroup].PerformClick(); + + // Assert + Assert.AreEqual(2, group.Children.Count); + ICalculationBase newlyAddedItem = group.Children.Last(); + + var newCalculationItem = newlyAddedItem as WaveImpactAsphaltCoverWaveConditionsCalculation; + Assert.IsNotNull(newCalculationItem); + Assert.AreEqual("Nieuwe berekening (1)", newlyAddedItem.Name, + "An item with the same name default name already exists, therefore '(1)' needs to be appended."); + Assert.AreEqual(GetCategoryTypeFromNormType(normType), newCalculationItem.InputParameters.CategoryType); + } + } + } + + [Test] public void GivenDialogGenerateCalculationButtonClicked_WhenCalculationSelectedAndDialogClosed_ThenUpdateCalculationGroup() { // Given @@ -1852,5 +1912,18 @@ } }; } + + private static AssessmentSectionCategoryType GetCategoryTypeFromNormType(NormType normType) + { + switch (normType) + { + case NormType.LowerLimit: + return AssessmentSectionCategoryType.LowerLimitNorm; + case NormType.Signaling: + return AssessmentSectionCategoryType.SignalingNorm; + default: + throw new NotSupportedException(); + } + } } } \ No newline at end of file