public void UpdateObserver_FailureMechanismUpdated_MapDataUpdated() { // Setup var failureMechanism = new TestFailureMechanism(); using (StandAloneFailureMechanismView <IFailureMechanism <FailureMechanismSectionResult>, FailureMechanismSectionResult> view = CreateView(failureMechanism, new AssessmentSectionStub())) { IMapControl map = ((RiskeerMapControl)view.Controls[0]).MapControl; IEnumerable <MapData> 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[sectionsObserverIndex].Expect(obs => obs.UpdateObserver()); observers[sectionsStartPointObserverIndex].Expect(obs => obs.UpdateObserver()); observers[sectionsEndPointObserverIndex].Expect(obs => obs.UpdateObserver()); mocks.ReplayAll(); // Call FailureMechanismTestHelper.SetSections(failureMechanism, new[] { new FailureMechanismSection(string.Empty, new[] { new Point2D(1, 2), new Point2D(1, 2) }) }); failureMechanism.NotifyObservers(); // Assert MapDataTestHelper.AssertFailureMechanismSectionsMapData(failureMechanism.Sections, sectionMapData); MapDataTestHelper.AssertFailureMechanismSectionsStartPointMapData(failureMechanism.Sections, sectionStartsMapData); MapDataTestHelper.AssertFailureMechanismSectionsEndPointMapData(failureMechanism.Sections, sectionsEndsMapData); mocks.VerifyAll(); } }
public void GivenViewWithFailureMechanismSectionsData_WhenFailureMechanismUpdatedAndNotified_ThenMapDataUpdated() { // Given var failureMechanism = new StabilityPointStructuresFailureMechanism(); StabilityPointStructuresFailureMechanismView view = CreateView(failureMechanism, new AssessmentSectionStub()); IMapControl map = ((RiskeerMapControl)view.Controls[0]).MapControl; IEnumerable <MapData> 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[sectionsObserverIndex].Expect(obs => obs.UpdateObserver()); observers[sectionsStartPointObserverIndex].Expect(obs => obs.UpdateObserver()); observers[sectionsEndPointObserverIndex].Expect(obs => obs.UpdateObserver()); mocks.ReplayAll(); // When FailureMechanismTestHelper.SetSections(failureMechanism, new[] { new FailureMechanismSection(string.Empty, new[] { new Point2D(1, 2), new Point2D(1, 2) }) }); failureMechanism.NotifyObservers(); // Then MapDataTestHelper.AssertFailureMechanismSectionsMapData(failureMechanism.Sections, sectionMapData); MapDataTestHelper.AssertFailureMechanismSectionsStartPointMapData(failureMechanism.Sections, sectionStartsMapData); MapDataTestHelper.AssertFailureMechanismSectionsEndPointMapData(failureMechanism.Sections, sectionsEndsMapData); mocks.VerifyAll(); }
public void Constructor_WithAllData_DataUpdatedToCollectionOfFilledMapData() { // Setup PipingStochasticSoilModel stochasticSoilModel1 = PipingStochasticSoilModelTestFactory.CreatePipingStochasticSoilModel("name1", new[] { new Point2D(1.0, 2.0), new Point2D(1.1, 2.2) }); PipingStochasticSoilModel stochasticSoilModel2 = PipingStochasticSoilModelTestFactory.CreatePipingStochasticSoilModel("name2", new[] { new Point2D(3.0, 4.0), new Point2D(3.3, 4.4) }); var surfaceLineA = new PipingSurfaceLine("Line A"); surfaceLineA.SetGeometry(new[] { new Point3D(0.0, 0.0, 1.0), new Point3D(3.0, 0.0, 1.7) }); var surfaceLineB = new PipingSurfaceLine("Name B"); surfaceLineB.SetGeometry(new[] { new Point3D(0.0, 0.0, 1.5), new Point3D(3.0, 0.0, 1.8) }); surfaceLineA.ReferenceLineIntersectionWorldPoint = new Point2D(1.3, 1.3); surfaceLineB.ReferenceLineIntersectionWorldPoint = new Point2D(1.5, 1.5); var failureMechanism = new PipingFailureMechanism(); const string arbitraryFilePath = "path"; var geometryPoints = new[] { new Point2D(0.0, 0.0), new Point2D(2.0, 0.0), new Point2D(4.0, 4.0), new Point2D(6.0, 4.0) }; failureMechanism.SurfaceLines.AddRange(new[] { surfaceLineA, surfaceLineB }, arbitraryFilePath); FailureMechanismTestHelper.SetSections(failureMechanism, new[] { new FailureMechanismSection("A", geometryPoints.Take(2)), new FailureMechanismSection("B", geometryPoints.Skip(1).Take(2)), new FailureMechanismSection("C", geometryPoints.Skip(2).Take(2)) }); failureMechanism.StochasticSoilModels.AddRange(new[] { stochasticSoilModel1, stochasticSoilModel2 }, arbitraryFilePath); var hydraulicBoundaryLocation1 = new HydraulicBoundaryLocation(1, "test", 1.0, 2.0); var hydraulicBoundaryLocation2 = new HydraulicBoundaryLocation(2, "test", 3.0, 4.0); var calculationA = SemiProbabilisticPipingCalculationTestFactory.CreateCalculationWithValidInput <SemiProbabilisticPipingCalculationScenario>( hydraulicBoundaryLocation1); var calculationB = ProbabilisticPipingCalculationTestFactory.CreateCalculationWithValidInput <ProbabilisticPipingCalculationScenario>( hydraulicBoundaryLocation2); calculationA.InputParameters.SurfaceLine = surfaceLineA; calculationB.InputParameters.SurfaceLine = surfaceLineB; failureMechanism.CalculationsGroup.Children.Add(calculationA); failureMechanism.CalculationsGroup.Children.Add(calculationB); var referenceLine = new ReferenceLine(); referenceLine.SetGeometry(new[] { new Point2D(0.0, 3.0), new Point2D(3.0, 0.0) }); var assessmentSection = new AssessmentSectionStub { ReferenceLine = referenceLine }; assessmentSection.SetHydraulicBoundaryLocationCalculations(new[] { hydraulicBoundaryLocation1, hydraulicBoundaryLocation2 }); using (new AssemblyToolCalculatorFactoryConfig()) { // Call PipingFailureMechanismView view = CreateView(failureMechanism, assessmentSection); IMapControl map = ((RiskeerMapControl)view.Controls[0]).MapControl; // Assert MapDataCollection mapData = map.Data; Assert.IsInstanceOf <MapDataCollection>(mapData); List <MapData> mapDataList = mapData.Collection.ToList(); Assert.AreEqual(8, mapDataList.Count); MapDataTestHelper.AssertReferenceLineMapData(assessmentSection.ReferenceLine, mapDataList[referenceLineIndex]); AssertSurfaceLinesMapData(failureMechanism.SurfaceLines, mapDataList[surfaceLinesIndex]); IEnumerable <MapData> 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]); AssertProbabilisticCalculationsMapData(failureMechanism.Calculations.OfType <ProbabilisticPipingCalculationScenario>(), mapDataList[probabilisticCalculationsIndex]); AssertSemiProbabilisticCalculationsMapData(failureMechanism.Calculations.OfType <SemiProbabilisticPipingCalculationScenario>(), mapDataList[semiProbabilisticCalculationsIndex]); var calculatorFactory = (TestAssemblyToolCalculatorFactory)AssemblyToolCalculatorFactory.Instance; FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; MapDataTestHelper.AssertAssemblyMapData(failureMechanism, calculator.FailureMechanismSectionAssemblyResultOutput.AssemblyResult, mapDataList[assemblyResultsIndex]); } }
public void Constructor_WithAllData_DataUpdatedToCollectionOfFilledMapData() { // Setup var calculationA = new StructuresCalculationScenario <StabilityPointStructuresInput> { InputParameters = { HydraulicBoundaryLocation = new HydraulicBoundaryLocation(1, string.Empty, 1.3, 2.3), Structure = new TestStabilityPointStructure(new Point2D(1.2, 2.3)) } }; var calculationB = new StructuresCalculationScenario <StabilityPointStructuresInput> { InputParameters = { HydraulicBoundaryLocation = new HydraulicBoundaryLocation(1, string.Empty, 7.7, 12.6), Structure = new TestStabilityPointStructure(new Point2D(2.7, 2.0)) } }; var geometryPoints = new[] { new Point2D(0.0, 0.0), new Point2D(2.0, 0.0), new Point2D(4.0, 4.0), new Point2D(6.0, 4.0) }; var failureMechanism = new StabilityPointStructuresFailureMechanism(); FailureMechanismTestHelper.SetSections(failureMechanism, new[] { new FailureMechanismSection("A", geometryPoints.Take(2)), new FailureMechanismSection("B", geometryPoints.Skip(1).Take(2)), new FailureMechanismSection("C", geometryPoints.Skip(2).Take(2)) }); var profile1 = new TestForeshoreProfile("profile1 ID", new[] { new Point2D(0, 0), new Point2D(1, 1) }); var profile2 = new TestForeshoreProfile("profile2 ID", new[] { new Point2D(2, 2), new Point2D(3, 3) }); failureMechanism.ForeshoreProfiles.AddRange(new[] { profile1, profile2 }, "path"); failureMechanism.CalculationsGroup.Children.Add(calculationA); failureMechanism.CalculationsGroup.Children.Add(calculationB); var referenceLine = new ReferenceLine(); referenceLine.SetGeometry(new[] { new Point2D(1.0, 2.0), new Point2D(2.0, 1.0) }); var assessmentSection = new AssessmentSectionStub { ReferenceLine = referenceLine }; assessmentSection.SetHydraulicBoundaryLocationCalculations(new[] { new HydraulicBoundaryLocation(1, "test", 1.0, 2.0) }); using (new AssemblyToolCalculatorFactoryConfig()) { // Call StabilityPointStructuresFailureMechanismView view = CreateView(failureMechanism, assessmentSection); IMapControl map = ((RiskeerMapControl)view.Controls[0]).MapControl; // Assert MapDataCollection mapData = map.Data; Assert.IsInstanceOf <MapDataCollection>(mapData); List <MapData> mapDataList = mapData.Collection.ToList(); Assert.AreEqual(7, mapDataList.Count); MapDataTestHelper.AssertReferenceLineMapData(assessmentSection.ReferenceLine, mapDataList[referenceLineIndex]); IEnumerable <MapData> 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]); MapDataTestHelper.AssertForeshoreProfilesMapData(failureMechanism.ForeshoreProfiles, mapDataList[foreshoreProfilesIndex]); AssertCalculationsMapData( failureMechanism.Calculations.Cast <StructuresCalculation <StabilityPointStructuresInput> >(), mapDataList[calculationsIndex]); var calculatorFactory = (TestAssemblyToolCalculatorFactory)AssemblyToolCalculatorFactory.Instance; FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; MapDataTestHelper.AssertAssemblyMapData(failureMechanism, calculator.FailureMechanismSectionAssemblyResultOutput.AssemblyResult, mapDataList[assemblyResultsIndex]); } }
public void Constructor_WithAllData_DataUpdatedToCollectionOfFilledMapData() { // Setup var assessmentSection = new AssessmentSectionStub { ReferenceLine = new ReferenceLine() }; assessmentSection.ReferenceLine.SetGeometry(new[] { new Point2D(1.0, 2.0), new Point2D(2.0, 1.0) }); var geometryPoints = new[] { new Point2D(0.0, 0.0), new Point2D(2.0, 0.0), new Point2D(4.0, 4.0), new Point2D(6.0, 4.0) }; var failureMechanism = new DuneErosionFailureMechanism(); failureMechanism.SetDuneLocations(new[] { new TestDuneLocation() }); FailureMechanismTestHelper.SetSections(failureMechanism, new[] { new FailureMechanismSection("A", geometryPoints.Take(2)), new FailureMechanismSection("B", geometryPoints.Skip(1).Take(2)), new FailureMechanismSection("C", geometryPoints.Skip(2).Take(2)) }); using (new AssemblyToolCalculatorFactoryConfig()) { // Call DuneErosionFailureMechanismView view = CreateView(failureMechanism, assessmentSection); IMapControl map = ((RiskeerMapControl)view.Controls[0]).MapControl; // Assert MapDataCollection mapData = map.Data; Assert.IsInstanceOf <MapDataCollection>(mapData); List <MapData> mapDataList = mapData.Collection.ToList(); Assert.AreEqual(4, mapDataList.Count); MapDataTestHelper.AssertReferenceLineMapData(assessmentSection.ReferenceLine, mapDataList[referenceLineIndex]); IEnumerable <MapData> 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)); AssertDuneLocationsMapData(failureMechanism, mapDataList[duneLocationsIndex]); var calculatorFactory = (TestAssemblyToolCalculatorFactory)AssemblyToolCalculatorFactory.Instance; FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; MapDataTestHelper.AssertAssemblyMapData(failureMechanism, calculator.FailureMechanismSectionAssemblyResultOutput.AssemblyResult, mapDataList[assemblyResultsIndex]); } }
public void Constructor_WithAllData_DataUpdatedToCollectionOfFilledMapData() { // Setup var calculationA = new GrassCoverErosionInwardsCalculationScenario { InputParameters = { DikeProfile = DikeProfileTestFactory.CreateDikeProfile(new Point2D(1.3, 1.3)), HydraulicBoundaryLocation = new TestHydraulicBoundaryLocation() } }; var calculationB = new GrassCoverErosionInwardsCalculationScenario { InputParameters = { DikeProfile = DikeProfileTestFactory.CreateDikeProfile(new Point2D(1.5, 1.5)), HydraulicBoundaryLocation = new TestHydraulicBoundaryLocation() } }; var geometryPoints = new[] { new Point2D(0.0, 0.0), new Point2D(2.0, 0.0), new Point2D(4.0, 4.0), new Point2D(6.0, 4.0) }; var failureMechanism = new GrassCoverErosionInwardsFailureMechanism(); FailureMechanismTestHelper.SetSections(failureMechanism, new[] { new FailureMechanismSection("A", geometryPoints.Take(2)), new FailureMechanismSection("B", geometryPoints.Skip(1).Take(2)), new FailureMechanismSection("C", geometryPoints.Skip(2).Take(2)) }); failureMechanism.DikeProfiles.AddRange(new[] { DikeProfileTestFactory.CreateDikeProfile(new[] { new Point2D(0, 0), new Point2D(1, 1) }, "id1"), DikeProfileTestFactory.CreateDikeProfile(new[] { new Point2D(2, 2), new Point2D(3, 3) }, "id2") }, "path"); failureMechanism.CalculationsGroup.Children.Add(calculationA); failureMechanism.CalculationsGroup.Children.Add(calculationB); var referenceLine = new ReferenceLine(); referenceLine.SetGeometry(new[] { new Point2D(1.0, 2.0), new Point2D(2.0, 1.0) }); var assessmentSection = new AssessmentSectionStub { ReferenceLine = referenceLine }; assessmentSection.SetHydraulicBoundaryLocationCalculations(new[] { new HydraulicBoundaryLocation(1, "test", 1.0, 2.0) }); using (new AssemblyToolCalculatorFactoryConfig()) { // Call GrassCoverErosionInwardsFailureMechanismView view = CreateView(failureMechanism, assessmentSection); IMapControl map = ((RiskeerMapControl)view.Controls[0]).MapControl; // Assert MapDataCollection mapData = map.Data; Assert.IsInstanceOf <MapDataCollection>(mapData); List <MapData> mapDataList = mapData.Collection.ToList(); Assert.AreEqual(7, mapDataList.Count); IEnumerable <MapData> 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)); AssertCalculationsMapData(failureMechanism.Calculations.Cast <GrassCoverErosionInwardsCalculationScenario>(), mapDataList[calculationsIndex]); var calculatorFactory = (TestAssemblyToolCalculatorFactory)AssemblyToolCalculatorFactory.Instance; FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; MapDataTestHelper.AssertAssemblyMapData(failureMechanism, calculator.FailureMechanismSectionAssemblyResultOutput.AssemblyResult, mapDataList[assemblyResultsIndex]); } }
public void Constructor_WithAllData_DataUpdatedToCollectionOfFilledMapData() { // Setup var geometryPoints = new[] { new Point2D(0.0, 0.0), new Point2D(2.0, 0.0), new Point2D(4.0, 4.0), new Point2D(6.0, 4.0) }; var referenceLine = new ReferenceLine(); referenceLine.SetGeometry(new[] { new Point2D(1.0, 2.0), new Point2D(2.0, 1.0) }); var assessmentSection = new AssessmentSectionStub { ReferenceLine = referenceLine }; assessmentSection.SetHydraulicBoundaryLocationCalculations(new[] { new HydraulicBoundaryLocation(1, "test", 1.0, 2.0) }); var failureMechanism = new TestFailureMechanism(); FailureMechanismTestHelper.SetSections(failureMechanism, new[] { new FailureMechanismSection("A", geometryPoints.Take(2)), new FailureMechanismSection("B", geometryPoints.Skip(1).Take(2)), new FailureMechanismSection("C", geometryPoints.Skip(2).Take(2)) }); var random = new Random(21); var failureMechanismSectionAssemblyResult = new FailureMechanismSectionAssemblyResult( random.NextDouble(), random.NextDouble(), random.NextDouble(), random.NextEnumValue <FailureMechanismSectionAssemblyGroup>()); // Call using (var view = new StandAloneFailureMechanismView <IFailureMechanism <FailureMechanismSectionResult>, FailureMechanismSectionResult>( failureMechanism, assessmentSection, sr => failureMechanismSectionAssemblyResult)) { IMapControl map = ((RiskeerMapControl)view.Controls[0]).MapControl; // Assert MapDataCollection mapData = map.Data; Assert.IsInstanceOf <MapDataCollection>(mapData); List <MapData> mapDataList = mapData.Collection.ToList(); Assert.AreEqual(4, mapDataList.Count); MapDataTestHelper.AssertReferenceLineMapData(assessmentSection.ReferenceLine, mapDataList[referenceLineIndex]); IEnumerable <MapData> 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]); MapDataTestHelper.AssertAssemblyMapData(failureMechanism, failureMechanismSectionAssemblyResult, mapDataList[assemblyResultsIndex]); } }