Index: Ringtoets/WaveImpactAsphaltCover/src/Ringtoets.WaveImpactAsphaltCover.Data/WaveImpactAsphaltCoverFailureMechanism.cs =================================================================== diff -u -rbea6e87ff7f6b40ff9fcce4d46ccb55bb3b47535 -r8e97f37e10d4445dfa2aeda2d321f347b5a59921 --- Ringtoets/WaveImpactAsphaltCover/src/Ringtoets.WaveImpactAsphaltCover.Data/WaveImpactAsphaltCoverFailureMechanism.cs (.../WaveImpactAsphaltCoverFailureMechanism.cs) (revision bea6e87ff7f6b40ff9fcce4d46ccb55bb3b47535) +++ Ringtoets/WaveImpactAsphaltCover/src/Ringtoets.WaveImpactAsphaltCover.Data/WaveImpactAsphaltCoverFailureMechanism.cs (.../WaveImpactAsphaltCoverFailureMechanism.cs) (revision 8e97f37e10d4445dfa2aeda2d321f347b5a59921) @@ -20,12 +20,14 @@ // All rights reserved. using System.Collections.Generic; +using System.Linq; using Core.Common.Base; using Ringtoets.Common.Data.Calculation; using Ringtoets.Common.Data.DikeProfiles; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Revetment.Data; using Ringtoets.WaveImpactAsphaltCover.Data.Properties; +using RingtoetsCommonDataResources = Ringtoets.Common.Data.Properties.Resources; namespace Ringtoets.WaveImpactAsphaltCover.Data { @@ -44,6 +46,7 @@ : base(Resources.WaveImpactAsphaltCoverFailureMechanism_DisplayName, Resources.WaveImpactAsphaltCoverFailureMechanism_Code) { sectionResults = new List(); + WaveConditionsCalculationGroup = new CalculationGroup(RingtoetsCommonDataResources.HydraulicBoundaryConditions_DisplayName, false); ForeshoreProfiles = new ObservableList(); GeneralInput = new GeneralWaveConditionsInput(1.0, 0.0, 0.0); } @@ -52,7 +55,7 @@ { get { - yield break; + return WaveConditionsCalculationGroup.GetCalculations().OfType(); } } @@ -66,6 +69,11 @@ /// public GeneralWaveConditionsInput GeneralInput { get; private set; } + /// + /// Gets the container of all wave conditions calculations. + /// + public CalculationGroup WaveConditionsCalculationGroup { get; private set; } + public IEnumerable SectionResults { get Index: Ringtoets/WaveImpactAsphaltCover/src/Ringtoets.WaveImpactAsphaltCover.Forms/Ringtoets.WaveImpactAsphaltCover.Forms.csproj =================================================================== diff -u -r047a56dd0274ea50de6f06ebad47fbe75ba86ba5 -r8e97f37e10d4445dfa2aeda2d321f347b5a59921 --- Ringtoets/WaveImpactAsphaltCover/src/Ringtoets.WaveImpactAsphaltCover.Forms/Ringtoets.WaveImpactAsphaltCover.Forms.csproj (.../Ringtoets.WaveImpactAsphaltCover.Forms.csproj) (revision 047a56dd0274ea50de6f06ebad47fbe75ba86ba5) +++ Ringtoets/WaveImpactAsphaltCover/src/Ringtoets.WaveImpactAsphaltCover.Forms/Ringtoets.WaveImpactAsphaltCover.Forms.csproj (.../Ringtoets.WaveImpactAsphaltCover.Forms.csproj) (revision 8e97f37e10d4445dfa2aeda2d321f347b5a59921) @@ -98,14 +98,17 @@ {70F8CC9C-5BC8-4FB2-B201-EAE7FA8088C2} Ringtoets.HydraRing.Data + False {11F1F874-45AF-43E4-8AE5-15A5C9593E28} Ringtoets.Integration.Data + False {87C2C553-C0BC-40BF-B1EA-B83BFF357F27} Ringtoets.Revetment.Data + False {567E0B69-5280-41CE-ADD6-443725A61C86} Index: Ringtoets/WaveImpactAsphaltCover/src/Ringtoets.WaveImpactAsphaltCover.Plugin/WaveImpactAsphaltCoverPlugin.cs =================================================================== diff -u -r047a56dd0274ea50de6f06ebad47fbe75ba86ba5 -r8e97f37e10d4445dfa2aeda2d321f347b5a59921 --- Ringtoets/WaveImpactAsphaltCover/src/Ringtoets.WaveImpactAsphaltCover.Plugin/WaveImpactAsphaltCoverPlugin.cs (.../WaveImpactAsphaltCoverPlugin.cs) (revision 047a56dd0274ea50de6f06ebad47fbe75ba86ba5) +++ Ringtoets/WaveImpactAsphaltCover/src/Ringtoets.WaveImpactAsphaltCover.Plugin/WaveImpactAsphaltCoverPlugin.cs (.../WaveImpactAsphaltCoverPlugin.cs) (revision 8e97f37e10d4445dfa2aeda2d321f347b5a59921) @@ -139,6 +139,7 @@ return new object[] { new CategoryTreeFolder(RingtoetsCommonFormsResources.FailureMechanism_Inputs_DisplayName, GetInputs(wrappedData, failureMechanismContext.Parent), TreeFolderCategory.Input), + new WaveImpactAsphaltCoverWaveConditionsCalculationGroupContext(wrappedData.WaveConditionsCalculationGroup, wrappedData, failureMechanismContext.Parent), new CategoryTreeFolder(RingtoetsCommonFormsResources.FailureMechanism_Outputs_DisplayName, GetOutputs(wrappedData), TreeFolderCategory.Output) }; } @@ -250,7 +251,9 @@ builder.AddExportItem() .AddSeparator() .AddCreateCalculationGroupItem(group) - .AddCreateCalculationItem(nodeData, AddWaveConditionsCalculation); + // TODO Restore in WTI-819 + //.AddCreateCalculationItem(nodeData, AddWaveConditionsCalculation) + ; if (!isNestedGroup) { @@ -303,8 +306,14 @@ private StrictContextMenuItem CreateGenerateWaveConditionsCalculationsItem(WaveImpactAsphaltCoverWaveConditionsCalculationGroupContext nodeData) { - // TODO WTI-808 - return null; + // TODO : This is a placeholder, so all corrections, improvements and functionality extensions are part of WTI-808. + return new StrictContextMenuItem(RingtoetsCommonFormsResources.CalculationsGroup_Generate_calculations, + "Er is geen hydraulische randvoorwaardendatabase beschikbaar om de randvoorwaardenberekeningen te genereren.", + RingtoetsCommonFormsResources.GenerateScenariosIcon, + (sender, args) => { ShowWaveImpactAsphaltCoverHydraulicBoundaryLocationSelectionDialog(nodeData); }) + { + Enabled = false + }; } private void ShowWaveImpactAsphaltCoverHydraulicBoundaryLocationSelectionDialog(WaveImpactAsphaltCoverWaveConditionsCalculationGroupContext nodeData) @@ -319,14 +328,15 @@ private void AddWaveConditionsCalculation(WaveImpactAsphaltCoverWaveConditionsCalculationGroupContext nodeData) { - var calculation = new WaveImpactAsphaltCoverWaveConditionsCalculation - { - Name = NamingHelper.GetUniqueName(nodeData.WrappedData.Children, - WaveImpactAsphaltCoverDataResources.WaveImpactAsphaltCoverWaveConditionsCalculation_DefaultName, - c => c.Name) - }; - nodeData.WrappedData.Children.Add(calculation); - nodeData.WrappedData.NotifyObservers(); + // TODO WTI-819, also add ViewInfo +// var calculation = new WaveImpactAsphaltCoverWaveConditionsCalculation +// { +// Name = NamingHelper.GetUniqueName(nodeData.WrappedData.Children, +// WaveImpactAsphaltCoverDataResources.WaveImpactAsphaltCoverWaveConditionsCalculation_DefaultName, +// c => c.Name) +// }; +// nodeData.WrappedData.Children.Add(calculation); +// nodeData.WrappedData.NotifyObservers(); } private void ValidateAll(IEnumerable calculations, GeneralWaveConditionsInput generalInput, int norm, HydraulicBoundaryDatabase database) Index: Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Data.Test/Ringtoets.WaveImpactAsphaltCover.Data.Test.csproj =================================================================== diff -u -rbea6e87ff7f6b40ff9fcce4d46ccb55bb3b47535 -r8e97f37e10d4445dfa2aeda2d321f347b5a59921 --- Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Data.Test/Ringtoets.WaveImpactAsphaltCover.Data.Test.csproj (.../Ringtoets.WaveImpactAsphaltCover.Data.Test.csproj) (revision bea6e87ff7f6b40ff9fcce4d46ccb55bb3b47535) +++ Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Data.Test/Ringtoets.WaveImpactAsphaltCover.Data.Test.csproj (.../Ringtoets.WaveImpactAsphaltCover.Data.Test.csproj) (revision 8e97f37e10d4445dfa2aeda2d321f347b5a59921) @@ -41,6 +41,10 @@ ..\..\..\..\packages\NUnit.2.6.4\lib\nunit.framework.dll True + + ..\..\..\..\packages\RhinoMocks.3.6.1\lib\net\Rhino.Mocks.dll + True + Index: Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Data.Test/WaveImpactAsphaltCoverFailureMechanismTest.cs =================================================================== diff -u -rbea6e87ff7f6b40ff9fcce4d46ccb55bb3b47535 -r8e97f37e10d4445dfa2aeda2d321f347b5a59921 --- Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Data.Test/WaveImpactAsphaltCoverFailureMechanismTest.cs (.../WaveImpactAsphaltCoverFailureMechanismTest.cs) (revision bea6e87ff7f6b40ff9fcce4d46ccb55bb3b47535) +++ Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Data.Test/WaveImpactAsphaltCoverFailureMechanismTest.cs (.../WaveImpactAsphaltCoverFailureMechanismTest.cs) (revision 8e97f37e10d4445dfa2aeda2d321f347b5a59921) @@ -19,9 +19,14 @@ // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. +using System.Collections.Generic; using System.Linq; +using Core.Common.Base; using Core.Common.Base.Geometry; using NUnit.Framework; +using Rhino.Mocks; +using Ringtoets.Common.Data.Calculation; +using Ringtoets.Common.Data.DikeProfiles; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Revetment.Data; @@ -40,9 +45,18 @@ Assert.IsInstanceOf(failureMechanism); Assert.AreEqual("Dijken en dammen - Golfklappen op asfaltbekleding", failureMechanism.Name); Assert.AreEqual("AGK", failureMechanism.Code); - CollectionAssert.IsEmpty(failureMechanism.Sections); + + Assert.AreEqual("Hydraulische randvoorwaarden", failureMechanism.WaveConditionsCalculationGroup.Name); + Assert.IsFalse(failureMechanism.WaveConditionsCalculationGroup.IsNameEditable); + CollectionAssert.IsEmpty(failureMechanism.WaveConditionsCalculationGroup.Children); + CollectionAssert.IsEmpty(failureMechanism.ForeshoreProfiles); + Assert.IsInstanceOf(failureMechanism.ForeshoreProfiles); + Assert.IsInstanceOf>(failureMechanism.ForeshoreProfiles); + CollectionAssert.IsEmpty(failureMechanism.Sections); + CollectionAssert.IsEmpty(failureMechanism.Calculations); + Assert.IsInstanceOf(failureMechanism.GeneralInput); } @@ -80,5 +94,35 @@ CollectionAssert.IsEmpty(failureMechanism.Sections); CollectionAssert.IsEmpty(failureMechanism.SectionResults); } + + [Test] + public void Calculations_MultipleChildrenAdded_ReturnWaveImpactAsphaltCoverCalculations() + { + // Setup + var mocks = new MockRepository(); + var failureMechanism = new WaveImpactAsphaltCoverFailureMechanism + { + WaveConditionsCalculationGroup = + { + Children = + { + new CalculationGroup(), + new WaveImpactAsphaltCoverWaveConditionsCalculation(), + mocks.StrictMock(), + new WaveImpactAsphaltCoverWaveConditionsCalculation() + } + } + }; + + mocks.ReplayAll(); + + // Call + var calculations = failureMechanism.Calculations.ToList(); + + // Assert + Assert.AreEqual(2, calculations.Count); + Assert.IsTrue(calculations.All(c => c is WaveImpactAsphaltCoverWaveConditionsCalculation)); + mocks.VerifyAll(); + } } } \ No newline at end of file Index: Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Data.Test/packages.config =================================================================== diff -u -r944d2501b3f780d208e00015a1b850afad4c3aa8 -r8e97f37e10d4445dfa2aeda2d321f347b5a59921 --- Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Data.Test/packages.config (.../packages.config) (revision 944d2501b3f780d208e00015a1b850afad4c3aa8) +++ Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Data.Test/packages.config (.../packages.config) (revision 8e97f37e10d4445dfa2aeda2d321f347b5a59921) @@ -1,4 +1,5 @@  + \ No newline at end of file Index: Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Forms.Test/Ringtoets.WaveImpactAsphaltCover.Forms.Test.csproj =================================================================== diff -u -r047a56dd0274ea50de6f06ebad47fbe75ba86ba5 -r8e97f37e10d4445dfa2aeda2d321f347b5a59921 --- Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Forms.Test/Ringtoets.WaveImpactAsphaltCover.Forms.Test.csproj (.../Ringtoets.WaveImpactAsphaltCover.Forms.Test.csproj) (revision 047a56dd0274ea50de6f06ebad47fbe75ba86ba5) +++ Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Forms.Test/Ringtoets.WaveImpactAsphaltCover.Forms.Test.csproj (.../Ringtoets.WaveImpactAsphaltCover.Forms.Test.csproj) (revision 8e97f37e10d4445dfa2aeda2d321f347b5a59921) @@ -64,6 +64,7 @@ + @@ -76,6 +77,10 @@ {3BBFD65B-B277-4E50-AE6D-BD24C3434609} Core.Common.Base + + {1D27F91F-4E62-4EAF-A0A8-A32708B9A9B1} + Core.Common.Controls.TreeView + {9a2d67e6-26ac-4d17-b11a-2b4372f2f572} Core.Common.Controls @@ -88,6 +93,10 @@ {F49BD8B2-332A-4C91-A196-8CCE0A2C7D98} Core.Common.Utils + + {26214BD0-DAFB-4CFC-8EB2-80C5D53C859E} + Core.Common.Gui.TestUtil + {D749EE4C-CE50-4C17-BF01-9A953028C126} Core.Common.TestUtil @@ -108,6 +117,18 @@ {70F8CC9C-5BC8-4FB2-B201-EAE7FA8088C2} Ringtoets.HydraRing.Data + + {74CBA865-9338-447F-BAD9-28312446AE84} + Ringtoets.HydraRing.Calculation.TestUtil + + + {87C2C553-C0BC-40BF-B1EA-B83BFF357F27} + Ringtoets.Revetment.Data + + + {EA416DD2-1633-439E-8512-B9933E37B9C5} + Ringtoets.Revetment.Service.TestUtil + {567E0B69-5280-41CE-ADD6-443725A61C86} Ringtoets.WaveImpactAsphaltCover.Data @@ -116,6 +137,10 @@ {1AC97B51-88C2-437D-89E6-65C69AB3CCAD} Ringtoets.WaveImpactAsphaltCover.Forms + + {83A782F1-BA78-4D5C-B213-39066605AFD8} + Ringtoets.WaveImpactAsphaltCover.Plugin +