Index: Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Forms/Views/MacroStabilityInwardsFailureMechanismView.cs =================================================================== diff -u -r2a81f01756e227d5ce93717b21b87e8a5cd5fcbb -rb79d772b4b0bade9ec4ad0e1e26f5b78e2bcc73f --- Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Forms/Views/MacroStabilityInwardsFailureMechanismView.cs (.../MacroStabilityInwardsFailureMechanismView.cs) (revision 2a81f01756e227d5ce93717b21b87e8a5cd5fcbb) +++ Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Forms/Views/MacroStabilityInwardsFailureMechanismView.cs (.../MacroStabilityInwardsFailureMechanismView.cs) (revision b79d772b4b0bade9ec4ad0e1e26f5b78e2bcc73f) @@ -53,6 +53,7 @@ private readonly MapPointData sectionsEndPointMapData; private readonly MapPointData hydraulicBoundaryLocationsMapData; private readonly MapLineData calculationsMapData; + private Observer failureMechanismObserver; private Observer hydraulicBoundaryLocationsObserver; private Observer assessmentSectionObserver; @@ -101,19 +102,25 @@ var mapDataCollection = new MapDataCollection(MacroStabilityInwardsDataResources.MacroStabilityInwardsFailureMechanism_DisplayName); referenceLineMapData = RingtoetsMapDataFactory.CreateReferenceLineMapData(); hydraulicBoundaryLocationsMapData = RingtoetsMapDataFactory.CreateHydraulicBoundaryLocationsMapData(); - sectionsMapData = RingtoetsMapDataFactory.CreateFailureMechanismSectionsMapData(); stochasticSoilModelsMapData = RingtoetsMapDataFactory.CreateStochasticSoilModelsMapData(); surfaceLinesMapData = RingtoetsMapDataFactory.CreateSurfaceLinesMapData(); + + MapDataCollection sectionsMapDataCollection = RingtoetsMapDataFactory.CreateSectionsMapDataCollection(); + sectionsMapData = RingtoetsMapDataFactory.CreateFailureMechanismSectionsMapData(); sectionsStartPointMapData = RingtoetsMapDataFactory.CreateFailureMechanismSectionsStartPointMapData(); sectionsEndPointMapData = RingtoetsMapDataFactory.CreateFailureMechanismSectionsEndPointMapData(); + calculationsMapData = RingtoetsMapDataFactory.CreateCalculationsMapData(); mapDataCollection.Add(referenceLineMapData); mapDataCollection.Add(stochasticSoilModelsMapData); mapDataCollection.Add(surfaceLinesMapData); - mapDataCollection.Add(sectionsMapData); - mapDataCollection.Add(sectionsStartPointMapData); - mapDataCollection.Add(sectionsEndPointMapData); + + sectionsMapDataCollection.Add(sectionsMapData); + sectionsMapDataCollection.Add(sectionsStartPointMapData); + sectionsMapDataCollection.Add(sectionsEndPointMapData); + mapDataCollection.Add(sectionsMapDataCollection); + mapDataCollection.Add(hydraulicBoundaryLocationsMapData); mapDataCollection.Add(calculationsMapData); Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/Views/MacroStabilityInwardsFailureMechanismViewTest.cs =================================================================== diff -u -re051fc6fb26bb69bd092c5da9a7686fbb2fb0736 -rb79d772b4b0bade9ec4ad0e1e26f5b78e2bcc73f --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/Views/MacroStabilityInwardsFailureMechanismViewTest.cs (.../MacroStabilityInwardsFailureMechanismViewTest.cs) (revision e051fc6fb26bb69bd092c5da9a7686fbb2fb0736) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/Views/MacroStabilityInwardsFailureMechanismViewTest.cs (.../MacroStabilityInwardsFailureMechanismViewTest.cs) (revision b79d772b4b0bade9ec4ad0e1e26f5b78e2bcc73f) @@ -52,12 +52,24 @@ private const int referenceLineIndex = 0; private const int stochasticSoilModelsIndex = 1; private const int surfaceLinesIndex = 2; - private const int sectionsIndex = 3; - private const int sectionsStartPointIndex = 4; - private const int sectionsEndPointIndex = 5; - private const int hydraulicBoundaryLocationsIndex = 6; - private const int calculationsIndex = 7; + private const int sectionsCollectionIndex = 3; + private const int hydraulicBoundaryLocationsIndex = 4; + private const int calculationsIndex = 5; + private const int sectionsIndex = 0; + private const int sectionsStartPointIndex = 1; + private const int sectionsEndPointIndex = 2; + + private const int hydraulicBoundaryLocationsObserverIndex = 3; + private const int calculationObserverIndex = 4; + private const int sectionsObserverIndex = 5; + private const int sectionsStartPointObserverIndex = 6; + private const int sectionsEndPointObserverIndex = 7; + private const int simpleAssemblyObserverIndex = 8; + private const int detailedAssemblyObserverIndex = 9; + private const int tailorMadeAssemblyObserverIndex = 10; + private const int combinedAssemblyObserverIndex = 11; + [Test] public void Constructor_FailureMechanismNull_ThrowsArgumentNullException() { @@ -224,12 +236,15 @@ Assert.IsInstanceOf(mapData); List mapDataList = mapData.Collection.ToList(); - Assert.AreEqual(8, mapDataList.Count); + Assert.AreEqual(6, mapDataList.Count); MapDataTestHelper.AssertReferenceLineMapData(assessmentSection.ReferenceLine, mapDataList[referenceLineIndex]); AssertSurfaceLinesMapData(failureMechanism.SurfaceLines, mapDataList[surfaceLinesIndex]); - MapDataTestHelper.AssertFailureMechanismSectionsMapData(failureMechanism.Sections, mapDataList[sectionsIndex]); - MapDataTestHelper.AssertFailureMechanismSectionsStartPointMapData(failureMechanism.Sections, mapDataList[sectionsStartPointIndex]); - MapDataTestHelper.AssertFailureMechanismSectionsEndPointMapData(failureMechanism.Sections, mapDataList[sectionsEndPointIndex]); + + IEnumerable sectionsCollection = ((MapDataCollection) mapDataList[sectionsCollectionIndex]).Collection; + MapDataTestHelper.AssertFailureMechanismSectionsMapData(failureMechanism.Sections, sectionsCollection.ElementAt(sectionsIndex)); + MapDataTestHelper.AssertFailureMechanismSectionsStartPointMapData(failureMechanism.Sections, sectionsCollection.ElementAt(sectionsStartPointIndex)); + MapDataTestHelper.AssertFailureMechanismSectionsEndPointMapData(failureMechanism.Sections, sectionsCollection.ElementAt(sectionsEndPointIndex)); + MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(assessmentSection, mapDataList[hydraulicBoundaryLocationsIndex]); AssertStochasticSoilModelsMapData(failureMechanism.StochasticSoilModels, mapDataList[stochasticSoilModelsIndex]); AssertCalculationsMapData(failureMechanism.Calculations.Cast(), mapDataList[calculationsIndex]); @@ -252,7 +267,7 @@ var mocks = new MockRepository(); IObserver[] observers = AttachMapDataObservers(mocks, map.Data.Collection); - observers[hydraulicBoundaryLocationsIndex].Expect(obs => obs.UpdateObserver()); + observers[hydraulicBoundaryLocationsObserverIndex].Expect(obs => obs.UpdateObserver()); mocks.ReplayAll(); MapData hydraulicBoundaryLocationsMapData = map.Data.Collection.ElementAt(hydraulicBoundaryLocationsIndex); @@ -292,7 +307,7 @@ var mocks = new MockRepository(); IObserver[] observers = AttachMapDataObservers(mocks, map.Data.Collection); - observers[hydraulicBoundaryLocationsIndex].Expect(obs => obs.UpdateObserver()); + observers[hydraulicBoundaryLocationsObserverIndex].Expect(obs => obs.UpdateObserver()); mocks.ReplayAll(); MapData hydraulicBoundaryLocationsMapData = map.Data.Collection.ElementAt(hydraulicBoundaryLocationsIndex); @@ -434,15 +449,16 @@ { IMapControl map = ((RingtoetsMapControl) view.Controls[0]).MapControl; - var sectionMapData = (MapLineData) map.Data.Collection.ElementAt(sectionsIndex); - var sectionStartsMapData = (MapPointData) map.Data.Collection.ElementAt(sectionsStartPointIndex); - var sectionsEndsMapData = (MapPointData) map.Data.Collection.ElementAt(sectionsEndPointIndex); + IEnumerable sectionsCollection = ((MapDataCollection) map.Data.Collection.ElementAt(sectionsCollectionIndex)).Collection; + var sectionMapData = (MapLineData) sectionsCollection.ElementAt(sectionsIndex); + var sectionStartsMapData = (MapPointData) sectionsCollection.ElementAt(sectionsStartPointIndex); + var sectionsEndsMapData = (MapPointData) sectionsCollection.ElementAt(sectionsEndPointIndex); var mocks = new MockRepository(); IObserver[] observers = AttachMapDataObservers(mocks, map.Data.Collection); - observers[sectionsIndex].Expect(obs => obs.UpdateObserver()); - observers[sectionsStartPointIndex].Expect(obs => obs.UpdateObserver()); - observers[sectionsEndPointIndex].Expect(obs => obs.UpdateObserver()); + observers[sectionsObserverIndex].Expect(obs => obs.UpdateObserver()); + observers[sectionsStartPointObserverIndex].Expect(obs => obs.UpdateObserver()); + observers[sectionsEndPointObserverIndex].Expect(obs => obs.UpdateObserver()); mocks.ReplayAll(); // When @@ -535,7 +551,7 @@ var mocks = new MockRepository(); IObserver[] observers = AttachMapDataObservers(mocks, map.Data.Collection); - observers[calculationsIndex].Expect(obs => obs.UpdateObserver()); + observers[calculationObserverIndex].Expect(obs => obs.UpdateObserver()); mocks.ReplayAll(); // When @@ -582,7 +598,7 @@ var mocks = new MockRepository(); IObserver[] observers = AttachMapDataObservers(mocks, map.Data.Collection); - observers[calculationsIndex].Expect(obs => obs.UpdateObserver()); + observers[calculationObserverIndex].Expect(obs => obs.UpdateObserver()); mocks.ReplayAll(); // When @@ -621,7 +637,7 @@ var mocks = new MockRepository(); IObserver[] observers = AttachMapDataObservers(mocks, map.Data.Collection); - observers[calculationsIndex].Expect(obs => obs.UpdateObserver()); + observers[calculationObserverIndex].Expect(obs => obs.UpdateObserver()); mocks.ReplayAll(); // When @@ -638,11 +654,9 @@ public void UpdateObserver_DataUpdated_MapLayersSameOrder() { // Setup - const int updatedReferenceLineLayerIndex = referenceLineIndex + 7; + const int updatedReferenceLineLayerIndex = referenceLineIndex + 5; const int updatedSurfaceLineLayerIndex = surfaceLinesIndex - 1; - const int updatedSectionsLayerIndex = sectionsIndex - 1; - const int updateSectionStartLayerIndex = sectionsStartPointIndex - 1; - const int updatedSectionEndLayerIndex = sectionsEndPointIndex - 1; + const int updatedSectionCollectionIndex = sectionsCollectionIndex - 1; const int updatedHydraulicLocationsLayerIndex = hydraulicBoundaryLocationsIndex - 1; const int updatedStochasticSoilModelsLayerIndex = stochasticSoilModelsIndex - 1; const int updatedCalculationsIndex = calculationsIndex - 1; @@ -668,15 +682,9 @@ var surfaceLineData = (MapLineData) mapDataList[updatedSurfaceLineLayerIndex]; Assert.AreEqual("Profielschematisaties", surfaceLineData.Name); - var sectionsData = (MapLineData) mapDataList[updatedSectionsLayerIndex]; + var sectionsData = (MapDataCollection) mapDataList[updatedSectionCollectionIndex]; Assert.AreEqual("Vakindeling", sectionsData.Name); - var sectionStartsData = (MapPointData) mapDataList[updateSectionStartLayerIndex]; - Assert.AreEqual("Vakindeling (startpunten)", sectionStartsData.Name); - - var sectionEndsData = (MapPointData) mapDataList[updatedSectionEndLayerIndex]; - Assert.AreEqual("Vakindeling (eindpunten)", sectionEndsData.Name); - var hydraulicLocationsData = (MapPointData) mapDataList[updatedHydraulicLocationsLayerIndex]; Assert.AreEqual("Hydraulische belastingen", hydraulicLocationsData.Name); @@ -705,15 +713,9 @@ var actualSurfaceLineData = (MapLineData) mapDataList[updatedSurfaceLineLayerIndex]; Assert.AreEqual("Profielschematisaties", actualSurfaceLineData.Name); - var actualSectionsData = (MapLineData) mapDataList[updatedSectionsLayerIndex]; + var actualSectionsData = (MapDataCollection) mapDataList[updatedSectionCollectionIndex]; Assert.AreEqual("Vakindeling", actualSectionsData.Name); - var actualSectionStartsData = (MapPointData) mapDataList[updateSectionStartLayerIndex]; - Assert.AreEqual("Vakindeling (startpunten)", actualSectionStartsData.Name); - - var actualSectionEndsData = (MapPointData) mapDataList[updatedSectionEndLayerIndex]; - Assert.AreEqual("Vakindeling (eindpunten)", actualSectionEndsData.Name); - var actualHydraulicLocationsData = (MapPointData) mapDataList[updatedHydraulicLocationsLayerIndex]; Assert.AreEqual("Hydraulische belastingen", actualHydraulicLocationsData.Name); @@ -792,43 +794,44 @@ List mapDataList = mapDataCollection.Collection.ToList(); - Assert.AreEqual(8, mapDataList.Count); + Assert.AreEqual(6, mapDataList.Count); var referenceLineMapData = (MapLineData) mapDataList[referenceLineIndex]; - var sectionsMapData = (MapLineData) mapDataList[sectionsIndex]; var stochasticSoilModelsMapData = (MapLineData) mapDataList[stochasticSoilModelsIndex]; var surfaceLinesMapData = (MapLineData) mapDataList[surfaceLinesIndex]; - var sectionsStartPointMapData = (MapPointData) mapDataList[sectionsStartPointIndex]; - var sectionsEndPointMapData = (MapPointData) mapDataList[sectionsEndPointIndex]; var hydraulicBoundaryLocationsMapData = (MapPointData) mapDataList[hydraulicBoundaryLocationsIndex]; var calculationsMapData = (MapLineData) mapDataList[calculationsIndex]; CollectionAssert.IsEmpty(referenceLineMapData.Features); - CollectionAssert.IsEmpty(sectionsMapData.Features); CollectionAssert.IsEmpty(stochasticSoilModelsMapData.Features); CollectionAssert.IsEmpty(surfaceLinesMapData.Features); - CollectionAssert.IsEmpty(sectionsStartPointMapData.Features); - CollectionAssert.IsEmpty(sectionsEndPointMapData.Features); CollectionAssert.IsEmpty(hydraulicBoundaryLocationsMapData.Features); CollectionAssert.IsEmpty(calculationsMapData.Features); Assert.AreEqual("Referentielijn", referenceLineMapData.Name); - Assert.AreEqual("Vakindeling", sectionsMapData.Name); Assert.AreEqual("Stochastische ondergrondmodellen", stochasticSoilModelsMapData.Name); Assert.AreEqual("Profielschematisaties", surfaceLinesMapData.Name); - Assert.AreEqual("Vakindeling (startpunten)", sectionsStartPointMapData.Name); - Assert.AreEqual("Vakindeling (eindpunten)", sectionsEndPointMapData.Name); Assert.AreEqual("Hydraulische belastingen", hydraulicBoundaryLocationsMapData.Name); Assert.AreEqual("Berekeningen", calculationsMapData.Name); + + var sectionsMapDataCollection = (MapDataCollection) mapDataList[sectionsCollectionIndex]; + Assert.AreEqual("Vakindeling", sectionsMapDataCollection.Name); + List sectionsDataList = sectionsMapDataCollection.Collection.ToList(); + Assert.AreEqual(3, sectionsDataList.Count); + + var sectionsMapData = (MapLineData) sectionsDataList[sectionsIndex]; + var sectionsStartPointMapData = (MapPointData) sectionsDataList[sectionsStartPointIndex]; + var sectionsEndPointMapData = (MapPointData) sectionsDataList[sectionsEndPointIndex]; + + CollectionAssert.IsEmpty(sectionsEndPointMapData.Features); + CollectionAssert.IsEmpty(sectionsStartPointMapData.Features); + CollectionAssert.IsEmpty(sectionsMapData.Features); + + Assert.AreEqual("Vakindeling (eindpunten)", sectionsEndPointMapData.Name); + Assert.AreEqual("Vakindeling (startpunten)", sectionsStartPointMapData.Name); + Assert.AreEqual("Vakindeling", sectionsMapData.Name); } - /// - /// Attaches mocked observers to all map data components. - /// - /// The . - /// The map data collection containing the - /// elements. - /// An array of mocked observers attached to the data in . private static IObserver[] AttachMapDataObservers(MockRepository mocks, IEnumerable mapData) { MapData[] mapDataArray = mapData.ToArray(); @@ -842,31 +845,32 @@ var surfaceLinesMapDataObserver = mocks.StrictMock(); mapDataArray[surfaceLinesIndex].Attach(surfaceLinesMapDataObserver); - var sectionsMapDataObserver = mocks.StrictMock(); - mapDataArray[sectionsIndex].Attach(sectionsMapDataObserver); - - var sectionsStartPointMapDataObserver = mocks.StrictMock(); - mapDataArray[sectionsStartPointIndex].Attach(sectionsStartPointMapDataObserver); - - var sectionsEndPointMapDataObserver = mocks.StrictMock(); - mapDataArray[sectionsEndPointIndex].Attach(sectionsEndPointMapDataObserver); - var hydraulicBoundaryLocationsMapDataObserver = mocks.StrictMock(); mapDataArray[hydraulicBoundaryLocationsIndex].Attach(hydraulicBoundaryLocationsMapDataObserver); var calculationsMapDataObserver = mocks.StrictMock(); mapDataArray[calculationsIndex].Attach(calculationsMapDataObserver); + MapData[] sectionsCollection = ((MapDataCollection) mapDataArray[sectionsCollectionIndex]).Collection.ToArray(); + var sectionsMapDataObserver = mocks.StrictMock(); + sectionsCollection[sectionsIndex].Attach(sectionsMapDataObserver); + + var sectionsStartPointMapDataObserver = mocks.StrictMock(); + sectionsCollection[sectionsStartPointIndex].Attach(sectionsStartPointMapDataObserver); + + var sectionsEndPointMapDataObserver = mocks.StrictMock(); + sectionsCollection[sectionsEndPointIndex].Attach(sectionsEndPointMapDataObserver); + return new[] { referenceLineMapDataObserver, stochasticSoilModelsMapDataObserver, surfaceLinesMapDataObserver, + hydraulicBoundaryLocationsMapDataObserver, + calculationsMapDataObserver, sectionsMapDataObserver, sectionsStartPointMapDataObserver, - sectionsEndPointMapDataObserver, - hydraulicBoundaryLocationsMapDataObserver, - calculationsMapDataObserver + sectionsEndPointMapDataObserver }; } } Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingFailureMechanismView.cs =================================================================== diff -u -rdfa13d107a640f87646c62e4dc9b58a7a2b16f64 -rb79d772b4b0bade9ec4ad0e1e26f5b78e2bcc73f --- Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingFailureMechanismView.cs (.../PipingFailureMechanismView.cs) (revision dfa13d107a640f87646c62e4dc9b58a7a2b16f64) +++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingFailureMechanismView.cs (.../PipingFailureMechanismView.cs) (revision b79d772b4b0bade9ec4ad0e1e26f5b78e2bcc73f) @@ -122,11 +122,11 @@ sectionsMapData = RingtoetsMapDataFactory.CreateFailureMechanismSectionsMapData(); sectionsStartPointMapData = RingtoetsMapDataFactory.CreateFailureMechanismSectionsStartPointMapData(); sectionsEndPointMapData = RingtoetsMapDataFactory.CreateFailureMechanismSectionsEndPointMapData(); - + mapDataCollection.Add(referenceLineMapData); mapDataCollection.Add(stochasticSoilModelsMapData); mapDataCollection.Add(surfaceLinesMapData); - + sectionsMapDataCollection.Add(sectionsMapData); sectionsMapDataCollection.Add(sectionsStartPointMapData); sectionsMapDataCollection.Add(sectionsEndPointMapData);