public void GivenViewWithSpecificFailureMechanismData_WhenFailureMechanismNameUpdatedAndNotified_ThenMapDataUpdatedAndObserversNotified()
        {
            // Given
            var mocks    = new MockRepository();
            var observer = mocks.StrictMock <IObserver>();

            observer.Expect(obs => obs.UpdateObserver());
            mocks.ReplayAll();

            var assessmentSection = new AssessmentSectionStub();
            var failureMechanism  = new SpecificFailureMechanism();

            SpecificFailureMechanismView view    = CreateView(failureMechanism, assessmentSection);
            MapDataCollection            mapData = view.Map.Data;

            mapData.Attach(observer);

            // Precondition
            Assert.AreEqual(failureMechanism.Name, mapData.Name);

            // When
            const string newFailureMechanismName = "New Failure Mechanism Name";

            failureMechanism.Name = newFailureMechanismName;
            failureMechanism.NotifyObservers();

            // Then
            Assert.AreEqual(newFailureMechanismName, mapData.Name);
            mocks.VerifyAll();
        }
        private SpecificFailureMechanismView CreateView(SpecificFailureMechanism failureMechanism, IAssessmentSection assessmentSection)
        {
            var view = new SpecificFailureMechanismView(failureMechanism, assessmentSection);

            testForm.Controls.Add(view);
            testForm.Show();

            return(view);
        }
Exemplo n.º 3
0
        public void CloseForData_ViewCorrespondingToRemovedFailureMechanism_ReturnsTrue()
        {
            // Setup
            var failureMechanism  = new SpecificFailureMechanism();
            var assessmentSection = new AssessmentSectionStub();
            var view = new SpecificFailureMechanismView(failureMechanism, assessmentSection);

            // Call
            bool closeForData = info.CloseForData(view, failureMechanism);

            // Assert
            Assert.IsTrue(closeForData);
            mocks.VerifyAll();
        }
        public void GivenViewWithReferenceLineData_WhenReferenceLineUpdatedAndNotified_ThenMapDataUpdatedAndObserversNotified()
        {
            // Given
            var referenceLine = new ReferenceLine();

            referenceLine.SetGeometry(new List <Point2D>
            {
                new Point2D(1.0, 2.0),
                new Point2D(2.0, 1.0)
            });
            var assessmentSection = new AssessmentSectionStub
            {
                ReferenceLine = referenceLine
            };

            var failureMechanism = new SpecificFailureMechanism();
            SpecificFailureMechanismView view = CreateView(failureMechanism, assessmentSection);

            IEnumerable <MapData> mapDataCollection = view.Map.Data.Collection;
            MapData referenceLineMapData            = mapDataCollection.ElementAt(referenceLineIndex);

            var mocks = new MockRepository();

            IObserver[] observers = AttachMapDataObservers(mocks, mapDataCollection);
            observers[referenceLineIndex].Expect(obs => obs.UpdateObserver());
            mocks.ReplayAll();

            // Precondition
            MapDataTestHelper.AssertReferenceLineMapData(assessmentSection.ReferenceLine, referenceLineMapData);

            // When
            referenceLine.SetGeometry(new List <Point2D>
            {
                new Point2D(2.0, 5.0),
                new Point2D(4.0, 3.0)
            });
            referenceLine.NotifyObservers();

            // Then
            MapDataTestHelper.AssertReferenceLineMapData(assessmentSection.ReferenceLine, referenceLineMapData);
            mocks.VerifyAll();
        }
Exemplo n.º 5
0
        public void CloseForData_ViewNotCorrespondingToRemovedContext_ReturnsFalse()
        {
            // Setup
            var otherAssessmentSection = mocks.Stub <IAssessmentSection>();

            mocks.ReplayAll();

            var failureMechanism  = new SpecificFailureMechanism();
            var assessmentSection = new AssessmentSectionStub();
            var view = new SpecificFailureMechanismView(failureMechanism, assessmentSection);

            var context = new SpecificFailureMechanismContext(new SpecificFailureMechanism(), otherAssessmentSection);

            // Call
            bool closeForData = info.CloseForData(view, context);

            // Assert
            Assert.IsFalse(closeForData);
            mocks.VerifyAll();
        }
Exemplo n.º 6
0
        public void CloseForData_ViewNotCorrespondingToRemovedAssessmentSection_ReturnsFalse()
        {
            // Setup
            var otherAssessmentSection = mocks.Stub <IAssessmentSection>();

            otherAssessmentSection.Stub(ass => ass.SpecificFailureMechanisms).Return(new ObservableList <SpecificFailureMechanism>());
            otherAssessmentSection.Stub(ass => ass.GetFailureMechanisms()).Return(Enumerable.Empty <IFailureMechanism>());
            mocks.ReplayAll();

            var failureMechanism  = new SpecificFailureMechanism();
            var assessmentSection = new AssessmentSectionStub();
            var view = new SpecificFailureMechanismView(failureMechanism, assessmentSection);

            // Call
            bool closeForData = info.CloseForData(view, otherAssessmentSection);

            // Assert
            Assert.IsFalse(closeForData);
            mocks.VerifyAll();
        }
        public void Constructor_WithArguments_ExpectedValues()
        {
            // Setup
            var assessmentSection = new AssessmentSectionStub();
            var failureMechanism  = new SpecificFailureMechanism();

            // Call
            SpecificFailureMechanismView view = CreateView(failureMechanism, assessmentSection);

            // Assert
            Assert.IsInstanceOf <CloseForFailureMechanismView>(view);
            Assert.IsInstanceOf <IMapView>(view);
            Assert.IsNull(view.Data);
            Assert.AreSame(failureMechanism, view.FailureMechanism);

            Assert.AreEqual(1, view.Controls.Count);
            Assert.IsInstanceOf <RiskeerMapControl>(view.Controls[0]);
            Assert.AreSame(view.Map, ((RiskeerMapControl)view.Controls[0]).MapControl);
            Assert.AreEqual(DockStyle.Fill, ((Control)view.Map).Dock);
            AssertEmptyMapData(failureMechanism, view.Map.Data);
        }
        public void GivenViewWithFailureMechanismSectionData_WhenFailureMechanismsUpdatedAndNotified_ThenMapDataUpdatedAndObserversNotified()
        {
            // Given
            var assessmentSection = new AssessmentSectionStub();
            var failureMechanism  = new SpecificFailureMechanism();

            SpecificFailureMechanismView view = CreateView(failureMechanism, assessmentSection);

            IEnumerable <MapData> mapDataCollection  = view.Map.Data.Collection;
            IEnumerable <MapData> sectionsCollection = ((MapDataCollection)mapDataCollection.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, mapDataCollection);
            observers[sectionsCollectionIndex + sectionsIndex].Expect(obs => obs.UpdateObserver());
            observers[sectionsCollectionIndex + sectionsStartPointIndex].Expect(obs => obs.UpdateObserver());
            observers[sectionsCollectionIndex + sectionsEndPointIndex].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 UpdateObserver_DataUpdated_MapLayersSameOrder()
        {
            // Given
            const int updatedReferenceLineLayerIndex              = referenceLineIndex + hydraulicBoundaryLocationsIndex;
            const int updatedSectionsCollectionLayerIndex         = sectionsCollectionIndex - 1;
            const int updatedHydraulicBoundaryLocationsLayerIndex = hydraulicBoundaryLocationsIndex - 1;
            const int updatedAssemblyResultsIndex = assemblyResultsIndex - 1;

            var assessmentSection = new AssessmentSectionStub();
            var failureMechanism  = new SpecificFailureMechanism();

            SpecificFailureMechanismView view = CreateView(failureMechanism, assessmentSection);

            MapDataCollection     mapData           = view.Map.Data;
            IEnumerable <MapData> mapDataCollection = mapData.Collection;

            MapData dataToMove = mapDataCollection.ElementAt(referenceLineIndex);

            mapData.Remove(dataToMove);
            mapData.Add(dataToMove);

            // Precondition
            MapData referenceLineData = mapDataCollection.ElementAt(updatedReferenceLineLayerIndex);

            Assert.AreEqual("Referentielijn", referenceLineData.Name);

            MapData sectionsData = mapDataCollection.ElementAt(updatedSectionsCollectionLayerIndex);

            Assert.AreEqual("Vakindeling", sectionsData.Name);

            var assemblyResultsData = (MapLineData)mapDataCollection.ElementAt(updatedAssemblyResultsIndex);

            Assert.AreEqual("Duidingsklasse per vak", assemblyResultsData.Name);

            MapData hydraulicBoundaryLocationsData = mapDataCollection.ElementAt(updatedHydraulicBoundaryLocationsLayerIndex);

            Assert.AreEqual("Hydraulische belastingen", hydraulicBoundaryLocationsData.Name);

            // When
            var points = new List <Point2D>
            {
                new Point2D(2.0, 5.0),
                new Point2D(4.0, 3.0)
            };
            var referenceLine = new ReferenceLine();

            referenceLine.SetGeometry(points);
            assessmentSection.ReferenceLine = referenceLine;
            assessmentSection.NotifyObservers();

            // Then
            MapData actualReferenceLineData = mapDataCollection.ElementAt(updatedReferenceLineLayerIndex);

            Assert.AreEqual("Referentielijn", actualReferenceLineData.Name);

            MapData actualSectionsData = mapDataCollection.ElementAt(updatedSectionsCollectionLayerIndex);

            Assert.AreEqual("Vakindeling", actualSectionsData.Name);

            var actualAssemblyResultsData = (MapLineData)mapDataCollection.ElementAt(updatedAssemblyResultsIndex);

            Assert.AreEqual("Duidingsklasse per vak", actualAssemblyResultsData.Name);

            MapData actualHydraulicBoundaryLocationsData = mapDataCollection.ElementAt(updatedHydraulicBoundaryLocationsLayerIndex);

            Assert.AreEqual("Hydraulische belastingen", actualHydraulicBoundaryLocationsData.Name);
        }
        public void Constructor_WithAllData_DataUpdatedToCollectionOfFilledMapData()
        {
            // Setup
            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 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 SpecificFailureMechanism();

            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
                SpecificFailureMechanismView view = CreateView(failureMechanism, assessmentSection);

                // Assert
                MapDataCollection mapData     = view.Map.Data;
                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));

                var calculatorFactory = (TestAssemblyToolCalculatorFactory)AssemblyToolCalculatorFactory.Instance;
                FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator;
                MapDataTestHelper.AssertAssemblyMapData(failureMechanism, calculator.FailureMechanismSectionAssemblyResultOutput.AssemblyResult, mapDataList[assemblyResultsIndex]);

                MapDataTestHelper.AssertHydraulicBoundaryLocationsMapData(assessmentSection, mapDataList[hydraulicBoundaryLocationsIndex]);
            }
        }