Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingCalculationsView.cs =================================================================== diff -u -rbff183a6d323111affe69f3afa19b9ada02c9375 -r3c32d100da48791a0e606457fba7910818bd26fa --- Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingCalculationsView.cs (.../PipingCalculationsView.cs) (revision bff183a6d323111affe69f3afa19b9ada02c9375) +++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingCalculationsView.cs (.../PipingCalculationsView.cs) (revision 3c32d100da48791a0e606457fba7910818bd26fa) @@ -295,7 +295,7 @@ .Select(pc => new PipingCalculationRow(pc)) .ToList(); - FillComboBoxListItems(); + UpdateSoilProfileColumn(); updatingDataSource = false; } @@ -319,17 +319,6 @@ } } - private void FillComboBoxListItems() - { - using (new SuspendDataGridViewColumnResizes(soilProfileColumn)) - { - foreach (DataGridViewRow dataGridViewRow in dataGridView.Rows) - { - FillAvailableSoilProfilesList(dataGridViewRow); - } - } - } - private void FillAvailableSoilProfilesList(DataGridViewRow dataGridViewRow) { var rowData = (PipingCalculationRow)dataGridViewRow.DataBoundItem; Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingCalculationsViewTest.cs =================================================================== diff -u -r8a814ce0f31d8b408d01d80087a36ca1b8db094a -r3c32d100da48791a0e606457fba7910818bd26fa --- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingCalculationsViewTest.cs (.../PipingCalculationsViewTest.cs) (revision 8a814ce0f31d8b408d01d80087a36ca1b8db094a) +++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingCalculationsViewTest.cs (.../PipingCalculationsViewTest.cs) (revision 3c32d100da48791a0e606457fba7910818bd26fa) @@ -19,8 +19,10 @@ // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. +using System.Collections.Generic; using System.Linq; using System.Windows.Forms; +using Core.Common.Base.Geometry; using Core.Common.Controls.Views; using Core.Common.Gui.Selection; using NUnit.Extensions.Forms; @@ -30,14 +32,14 @@ using Ringtoets.HydraRing.Data; using Ringtoets.Piping.Data; using Ringtoets.Piping.Forms.Views; +using Ringtoets.Piping.Primitives; namespace Ringtoets.Piping.Forms.Test.Views { [TestFixture] public class PipingCalculationsViewTest { private Form testForm; - private const int hydraulicBoundaryLocationColumnIndex = 2; [SetUp] public void Setup() @@ -69,15 +71,13 @@ [Test] public void Constructor_DataGridViewCorrectlyInitialized() { - // Setup - var pipingCalculationsView = new PipingCalculationsView(); + // Setup & Call + ShowPipingCalculationsView(); - // Call - ShowPipingCalculationsView(pipingCalculationsView); - // Assert var dataGridView = (DataGridView) new ControlTester("dataGridView").TheObject; + Assert.IsFalse(dataGridView.AutoGenerateColumns); Assert.AreEqual(7, dataGridView.ColumnCount); foreach (var column in dataGridView.Columns.OfType()) @@ -92,7 +92,11 @@ Assert.AreEqual(DataGridViewContentAlignment.MiddleCenter, column.HeaderCell.Style.Alignment); } - var hydraulicBoundaryLocationCombobox = (DataGridViewComboBoxColumn) dataGridView.Columns[hydraulicBoundaryLocationColumnIndex]; + var soilProfilesCombobox = (DataGridViewComboBoxColumn) dataGridView.Columns[soilProfilesColumnIndex]; + var soilProfilesComboboxItems = soilProfilesCombobox.Items; + Assert.AreEqual(0, soilProfilesComboboxItems.Count); // Row dependend + + var hydraulicBoundaryLocationCombobox = (DataGridViewComboBoxColumn) dataGridView.Columns[hydraulicBoundaryLocationsColumnIndex]; var hydraulicBoundaryLocationComboboxItems = hydraulicBoundaryLocationCombobox.Items; Assert.AreEqual(1, hydraulicBoundaryLocationComboboxItems.Count); Assert.AreEqual("", hydraulicBoundaryLocationComboboxItems[0].ToString()); @@ -107,6 +111,8 @@ var assessmentSection = mocks.StrictMock(); var applicationSelection = mocks.StrictMock(); + mocks.ReplayAll(); + var pipingCalculationsView = new PipingCalculationsView { PipingFailureMechanism = pipingFailureMechanism, @@ -134,18 +140,16 @@ // Setup var mocks = new MockRepository(); var assessmentSection = mocks.StrictMock(); + var pipingCalculationsView = ShowPipingCalculationsView(); + mocks.ReplayAll(); + // Call - var pipingCalculationsView = new PipingCalculationsView - { - AssessmentSection = assessmentSection - }; + pipingCalculationsView.AssessmentSection = assessmentSection; - ShowPipingCalculationsView(pipingCalculationsView); - // Assert var dataGridView = (DataGridView) new ControlTester("dataGridView").TheObject; - var hydraulicBoundaryLocationCombobox = (DataGridViewComboBoxColumn) dataGridView.Columns[hydraulicBoundaryLocationColumnIndex]; + var hydraulicBoundaryLocationCombobox = (DataGridViewComboBoxColumn) dataGridView.Columns[hydraulicBoundaryLocationsColumnIndex]; var hydraulicBoundaryLocationComboboxItems = hydraulicBoundaryLocationCombobox.Items; Assert.AreEqual(1, hydraulicBoundaryLocationComboboxItems.Count); Assert.AreEqual("", hydraulicBoundaryLocationComboboxItems[0].ToString()); @@ -159,32 +163,201 @@ var assessmentSection = mocks.StrictMock(); var hydraulicBoundaryDatabase = mocks.StrictMock(); + mocks.ReplayAll(); + assessmentSection.HydraulicBoundaryDatabase = hydraulicBoundaryDatabase; hydraulicBoundaryDatabase.Locations.Add(new HydraulicBoundaryLocation(1, "Location 1", 1.1, 2.2)); hydraulicBoundaryDatabase.Locations.Add(new HydraulicBoundaryLocation(2, "Location 2", 3.3, 4.4)); + var pipingCalculationsView = ShowPipingCalculationsView(); + // Call - var pipingCalculationsView = new PipingCalculationsView - { - AssessmentSection = assessmentSection - }; + pipingCalculationsView.AssessmentSection = assessmentSection; - ShowPipingCalculationsView(pipingCalculationsView); - // Assert var dataGridView = (DataGridView) new ControlTester("dataGridView").TheObject; - var hydraulicBoundaryLocationCombobox = (DataGridViewComboBoxColumn) dataGridView.Columns[hydraulicBoundaryLocationColumnIndex]; + var hydraulicBoundaryLocationCombobox = (DataGridViewComboBoxColumn) dataGridView.Columns[hydraulicBoundaryLocationsColumnIndex]; var hydraulicBoundaryLocationComboboxItems = hydraulicBoundaryLocationCombobox.Items; Assert.AreEqual(3, hydraulicBoundaryLocationComboboxItems.Count); Assert.AreEqual("", hydraulicBoundaryLocationComboboxItems[0].ToString()); Assert.AreEqual("Location 1", hydraulicBoundaryLocationComboboxItems[1].ToString()); Assert.AreEqual("Location 2", hydraulicBoundaryLocationComboboxItems[2].ToString()); } - private void ShowPipingCalculationsView(PipingCalculationsView pipingCalculationsView) + [Test] + public void PipingCalculationsView_CalculationsWithCorrespondingSoilProfiles_SoilProfilesComboboxCorrectlyInitialized() { + // Setup & Call + ShowConfiguredPipingCalculationsView(); + + // Assert + var dataGridView = (DataGridView) new ControlTester("dataGridView").TheObject; + + var soilProfilesComboboxItems = ((DataGridViewComboBoxCell) dataGridView.Rows[0].Cells[soilProfilesColumnIndex]).Items; + Assert.AreEqual(3, soilProfilesComboboxItems.Count); + Assert.AreEqual("", soilProfilesComboboxItems[0].ToString()); + Assert.AreEqual("Profile 1", soilProfilesComboboxItems[1].ToString()); + Assert.AreEqual("Profile 2", soilProfilesComboboxItems[2].ToString()); + + soilProfilesComboboxItems = ((DataGridViewComboBoxCell) dataGridView.Rows[1].Cells[soilProfilesColumnIndex]).Items; + Assert.AreEqual(4, soilProfilesComboboxItems.Count); + Assert.AreEqual("", soilProfilesComboboxItems[0].ToString()); + Assert.AreEqual("Profile 1", soilProfilesComboboxItems[1].ToString()); + Assert.AreEqual("Profile 2", soilProfilesComboboxItems[2].ToString()); + Assert.AreEqual("Profile 5", soilProfilesComboboxItems[3].ToString()); + } + + private const int soilProfilesColumnIndex = 1; + private const int hydraulicBoundaryLocationsColumnIndex = 2; + + private PipingCalculationsView ShowConfiguredPipingCalculationsView() + { + var surfaceLine1 = new RingtoetsPipingSurfaceLine + { + ReferenceLineIntersectionWorldPoint = new Point2D(0.0, 0.0) + }; + + surfaceLine1.SetGeometry(new[] + { + new Point3D(0.0, 5.0, 0.0), + new Point3D(0.0, 0.0, 1.0), + new Point3D(0.0, -5.0, 0.0) + }); + + var surfaceLine2 = new RingtoetsPipingSurfaceLine + { + ReferenceLineIntersectionWorldPoint = new Point2D(5.0, 0.0) + }; + + surfaceLine2.SetGeometry(new[] + { + new Point3D(5.0, 5.0, 0.0), + new Point3D(5.0, 0.0, 1.0), + new Point3D(5.0, -5.0, 0.0) + }); + + var pipingFailureMechanism = new PipingFailureMechanism(); + + pipingFailureMechanism.AddSection(new FailureMechanismSection("Section", new List + { + new Point2D(0.0, 0.0), + new Point2D(5.0, 0.0) + })); + + pipingFailureMechanism.StochasticSoilModels.Add(new StochasticSoilModel(1, "A", "B") + { + Geometry = + { + new Point2D(0.0, 0.0), new Point2D(5.0, 0.0) + }, + StochasticSoilProfiles = + { + new StochasticSoilProfile(0.3, SoilProfileType.SoilProfile1D, 1) + { + SoilProfile = new PipingSoilProfile("Profile 1", -10.0, new[] + { + new PipingSoilLayer(-5.0), + new PipingSoilLayer(-2.0), + new PipingSoilLayer(1.0) + }, 1) + }, + new StochasticSoilProfile(0.7, SoilProfileType.SoilProfile1D, 2) + { + SoilProfile = new PipingSoilProfile("Profile 2", -8.0, new[] + { + new PipingSoilLayer(-4.0), + new PipingSoilLayer(0.0), + new PipingSoilLayer(4.0) + }, 2) + } + } + }); + + pipingFailureMechanism.StochasticSoilModels.Add(new StochasticSoilModel(1, "C", "D") + { + Geometry = + { + new Point2D(1.0, 0.0), new Point2D(4.0, 0.0) + }, + StochasticSoilProfiles = + { + new StochasticSoilProfile(0.3, SoilProfileType.SoilProfile1D, 1) + { + SoilProfile = new PipingSoilProfile("Profile 3", -10.0, new[] + { + new PipingSoilLayer(-5.0), + new PipingSoilLayer(-2.0), + new PipingSoilLayer(1.0) + }, 1) + }, + new StochasticSoilProfile(0.7, SoilProfileType.SoilProfile1D, 2) + { + SoilProfile = new PipingSoilProfile("Profile 4", -8.0, new[] + { + new PipingSoilLayer(-4.0), + new PipingSoilLayer(0.0), + new PipingSoilLayer(4.0) + }, 2) + } + } + }); + + pipingFailureMechanism.StochasticSoilModels.Add(new StochasticSoilModel(1, "E", "F") + { + Geometry = + { + new Point2D(1.0, 0.0), new Point2D(6.0, 0.0) + }, + StochasticSoilProfiles = + { + new StochasticSoilProfile(0.3, SoilProfileType.SoilProfile1D, 1) + { + SoilProfile = new PipingSoilProfile("Profile 5", -10.0, new[] + { + new PipingSoilLayer(-5.0), + new PipingSoilLayer(-2.0), + new PipingSoilLayer(1.0) + }, 1) + } + } + }); + + var pipingCalculationsView = ShowPipingCalculationsView(); + + pipingCalculationsView.Data = new PipingCalculationGroup("Group", true) + { + Children = + { + new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput()) + { + InputParameters = + { + SurfaceLine = surfaceLine1 + } + }, + new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput()) + { + InputParameters = + { + SurfaceLine = surfaceLine2 + } + } + } + }; + + pipingCalculationsView.PipingFailureMechanism = pipingFailureMechanism; + + return pipingCalculationsView; + } + + private PipingCalculationsView ShowPipingCalculationsView() + { + var pipingCalculationsView = new PipingCalculationsView(); + testForm.Controls.Add(pipingCalculationsView); testForm.Show(); + + return pipingCalculationsView; } } -} +} \ No newline at end of file