示例#1
0
        public void GetViewName_WithContext_ReturnsExpectedViewName(double userDefinedTargetProbability1,
                                                                    double userDefinedTargetProbability2,
                                                                    double userDefinedTargetProbability3,
                                                                    string expectedProbabilityText)
        {
            // Setup
            var calculationsForTargetProbability = new HydraulicBoundaryLocationCalculationsForTargetProbability(userDefinedTargetProbability2);
            var assessmentSection = new AssessmentSectionStub
            {
                WaterLevelCalculationsForUserDefinedTargetProbabilities =
                {
                    new HydraulicBoundaryLocationCalculationsForTargetProbability(userDefinedTargetProbability1),
                    new HydraulicBoundaryLocationCalculationsForTargetProbability(userDefinedTargetProbability3),
                    calculationsForTargetProbability
                }
            };

            var context = new WaterLevelCalculationsForUserDefinedTargetProbabilityContext(calculationsForTargetProbability,
                                                                                           assessmentSection);

            using (var plugin = new RiskeerPlugin())
            {
                ViewInfo info = GetViewInfo(plugin);

                // Call
                string viewName = info.GetViewName(null, context);

                // Assert
                Assert.AreEqual($"Waterstanden bij vrije doelkans - {expectedProbabilityText}", viewName);
            }
        }
        public void CreateFileExporter_WithContext_ReturnFileExporter()
        {
            // Setup
            var mocks             = new MockRepository();
            var assessmentSection = mocks.Stub <IAssessmentSection>();

            mocks.ReplayAll();

            var context = new WaterLevelCalculationsForUserDefinedTargetProbabilityContext(
                new HydraulicBoundaryLocationCalculationsForTargetProbability(0.1), assessmentSection);

            const string filePath = "test";

            using (var plugin = new RiskeerPlugin())
            {
                ExportInfo info = GetExportInfo(plugin);

                // Call
                IFileExporter fileExporter = info.CreateFileExporter(context, filePath);

                // Assert
                Assert.IsInstanceOf <HydraulicBoundaryLocationCalculationsForTargetProbabilityExporter>(fileExporter);
            }

            mocks.VerifyAll();
        }
示例#3
0
        public void CloseViewForData_ForNonMatchingContext_ReturnsFalse()
        {
            // Setup
            const double targetProbability = 0.01;

            var context = new WaterLevelCalculationsForUserDefinedTargetProbabilityContext(
                new HydraulicBoundaryLocationCalculationsForTargetProbability(targetProbability),
                new AssessmentSectionStub());

            var otherCalculations = new ObservableList <HydraulicBoundaryLocationCalculation>();

            using (var view = new DesignWaterLevelCalculationsView(otherCalculations,
                                                                   new AssessmentSectionStub(),
                                                                   () => targetProbability,
                                                                   () => "1/100"))
                using (var plugin = new RiskeerPlugin())
                {
                    view.Data = otherCalculations;

                    ViewInfo info = GetViewInfo(plugin);

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

                    // Assert
                    Assert.IsFalse(closeForData);
                }
        }
        public void CreateInstance_WithContext_SetsDataCorrectly()
        {
            // Setup
            var mockRepository    = new MockRepository();
            var assessmentSection = mockRepository.Stub <IAssessmentSection>();

            mockRepository.ReplayAll();

            var calculationsForTargetProbability = new HydraulicBoundaryLocationCalculationsForTargetProbability(0.1);

            var context = new WaterLevelCalculationsForUserDefinedTargetProbabilityContext(calculationsForTargetProbability,
                                                                                           assessmentSection);

            using (var plugin = new RiskeerPlugin())
            {
                PropertyInfo info = GetInfo(plugin);

                // Call
                IObjectProperties objectProperties = info.CreateInstance(context);

                // Assert
                Assert.IsInstanceOf <WaterLevelCalculationsForUserDefinedTargetProbabilityProperties>(objectProperties);
                Assert.AreSame(calculationsForTargetProbability.HydraulicBoundaryLocationCalculations, objectProperties.Data);
            }

            mockRepository.VerifyAll();
        }
示例#5
0
        public void CanDrop_DraggedDataPartOfGroupContext_ReturnsTrue()
        {
            // Setup
            using (var plugin = new RiskeerPlugin())
            {
                TreeNodeInfo info = GetInfo(plugin);

                var assessmentSectionStub            = new AssessmentSectionStub();
                var calculationsForTargetProbability = new HydraulicBoundaryLocationCalculationsForTargetProbability(0.1);

                var targetData = new WaterLevelCalculationsForUserDefinedTargetProbabilitiesGroupContext(
                    new ObservableList <HydraulicBoundaryLocationCalculationsForTargetProbability>
                {
                    calculationsForTargetProbability
                },
                    assessmentSectionStub);

                var draggedData = new WaterLevelCalculationsForUserDefinedTargetProbabilityContext(
                    calculationsForTargetProbability,
                    assessmentSectionStub);

                // Call
                bool canDrop = info.CanDrop(draggedData, targetData);

                // Assert
                Assert.IsTrue(canDrop);
            }
        }
示例#6
0
        public void OnDrop_DataDroppedToDifferentIndex_DroppedDataCorrectlyMovedAndObserversNotified()
        {
            // Setup
            using (var plugin = new RiskeerPlugin())
            {
                TreeNodeInfo info = GetInfo(plugin);

                var assessmentSectionStub = new AssessmentSectionStub();

                var calculationsForTargetProbability1 = new HydraulicBoundaryLocationCalculationsForTargetProbability(0.1);
                var calculationsForTargetProbability2 = new HydraulicBoundaryLocationCalculationsForTargetProbability(0.01);
                var calculationsForTargetProbability3 = new HydraulicBoundaryLocationCalculationsForTargetProbability(0.001);

                var calculationsForTargetProbabilities = new ObservableList <HydraulicBoundaryLocationCalculationsForTargetProbability>
                {
                    calculationsForTargetProbability1,
                    calculationsForTargetProbability2,
                    calculationsForTargetProbability3
                };

                var parentData = new WaterLevelCalculationsForUserDefinedTargetProbabilitiesGroupContext(
                    calculationsForTargetProbabilities,
                    assessmentSectionStub);

                var droppedData = new WaterLevelCalculationsForUserDefinedTargetProbabilityContext(
                    calculationsForTargetProbability3,
                    assessmentSectionStub);

                var mockRepository = new MockRepository();
                var observer       = mockRepository.StrictMock <IObserver>();
                observer.Expect(o => o.UpdateObserver());
                mockRepository.ReplayAll();

                calculationsForTargetProbabilities.Attach(observer);

                // Call
                info.OnDrop(droppedData, parentData, parentData, 1, null);

                // Assert
                CollectionAssert.AreEqual(new[]
                {
                    calculationsForTargetProbability1,
                    calculationsForTargetProbability3,
                    calculationsForTargetProbability2
                }, calculationsForTargetProbabilities);

                mockRepository.VerifyAll();
            }
        }
示例#7
0
        public void CreateInstance_WithContext_SetsExpectedViewProperties()
        {
            // Setup
            var assessmentSection = new AssessmentSectionStub();
            var context           = new WaterLevelCalculationsForUserDefinedTargetProbabilityContext(new HydraulicBoundaryLocationCalculationsForTargetProbability(0.1),
                                                                                                     assessmentSection);

            using (var plugin = new RiskeerPlugin())
            {
                ViewInfo info = GetViewInfo(plugin);

                // Call
                var view = (DesignWaterLevelCalculationsView)info.CreateInstance(context);

                // Assert
                Assert.AreSame(assessmentSection, view.AssessmentSection);
            }
        }
示例#8
0
        public void CreateInstance_WithContext_SetsExpectedDataGridViewData()
        {
            // Setup
            var random = new Random();

            var calculationsForTargetProbability = new HydraulicBoundaryLocationCalculationsForTargetProbability(0.1)
            {
                HydraulicBoundaryLocationCalculations =
                {
                    new HydraulicBoundaryLocationCalculation(new TestHydraulicBoundaryLocation())
                    {
                        Output = new TestHydraulicBoundaryLocationCalculationOutput(random.NextDouble())
                    },
                    new HydraulicBoundaryLocationCalculation(new TestHydraulicBoundaryLocation())
                    {
                        Output = new TestHydraulicBoundaryLocationCalculationOutput(random.NextDouble())
                    }
                }
            };

            var context = new WaterLevelCalculationsForUserDefinedTargetProbabilityContext(calculationsForTargetProbability, new AssessmentSectionStub());

            using (var plugin = new RiskeerPlugin())
            {
                ViewInfo info = GetViewInfo(plugin);

                // Call
                var view = (DesignWaterLevelCalculationsView)info.CreateInstance(context);

                using (var testForm = new Form())
                {
                    testForm.Controls.Add(view);
                    testForm.Show();

                    // Assert
                    DataGridView calculationsDataGridView = ControlTestHelper.GetDataGridView(view, "DataGridView");
                    DataGridViewRowCollection rows        = calculationsDataGridView.Rows;
                    Assert.AreEqual(2, rows.Count);
                    Assert.AreEqual(calculationsForTargetProbability.HydraulicBoundaryLocationCalculations[0].Output.Result.ToString(), rows[0].Cells[waterLevelColumnIndex].FormattedValue);
                    Assert.AreEqual(calculationsForTargetProbability.HydraulicBoundaryLocationCalculations[1].Output.Result.ToString(), rows[1].Cells[waterLevelColumnIndex].FormattedValue);
                }
            }
        }
示例#9
0
        public void GetViewData_Always_ReturnsHydraulicBoundaryLocationCalculations()
        {
            // Setup
            var assessmentSection = new AssessmentSectionStub();
            var calculationsForTargetProbability = new HydraulicBoundaryLocationCalculationsForTargetProbability(0.1);

            var context = new WaterLevelCalculationsForUserDefinedTargetProbabilityContext(calculationsForTargetProbability, assessmentSection);

            using (var plugin = new RiskeerPlugin())
            {
                ViewInfo info = GetViewInfo(plugin);

                // Call
                object viewData = info.GetViewData(context);

                // Assert
                Assert.AreSame(calculationsForTargetProbability.HydraulicBoundaryLocationCalculations, viewData);
            }
        }
        public void Constructor_ExpectedValues()
        {
            // Setup
            var mockRepository    = new MockRepository();
            var assessmentSection = mockRepository.Stub <IAssessmentSection>();

            mockRepository.ReplayAll();

            var calculationsForTargetProbability = new HydraulicBoundaryLocationCalculationsForTargetProbability(0.1);

            // Call
            var context = new WaterLevelCalculationsForUserDefinedTargetProbabilityContext(calculationsForTargetProbability,
                                                                                           assessmentSection);

            // Assert
            Assert.IsInstanceOf <HydraulicBoundaryLocationCalculationsForUserDefinedTargetProbabilityContext>(context);
            Assert.AreSame(calculationsForTargetProbability, context.WrappedData);
            Assert.AreSame(assessmentSection, context.AssessmentSection);
            mockRepository.VerifyAll();
        }
        public void GivenContextWithObserverAttached_WhenNotifyingObserversOfWaterLevelCalculationsForUserDefinedTargetProbability_ThenObserverCorrectlyNotified()
        {
            // Given
            var mockRepository = new MockRepository();
            var observer       = mockRepository.StrictMock <IObserver>();

            observer.Expect(o => o.UpdateObserver());
            mockRepository.ReplayAll();

            var assessmentSection = new AssessmentSectionStub();
            var calculationsForTargetProbability = new HydraulicBoundaryLocationCalculationsForTargetProbability(0.1);
            var context = new WaterLevelCalculationsForUserDefinedTargetProbabilityContext(calculationsForTargetProbability,
                                                                                           assessmentSection);

            context.Attach(observer);

            // When
            assessmentSection.WaterLevelCalculationsForUserDefinedTargetProbabilities.First().NotifyObservers();

            // Then
            mockRepository.VerifyAll();
        }
示例#12
0
        public void AfterCreate_WithGuiSet_SetsSpecificPropertiesToView()
        {
            // Setup
            var  mocks = new MockRepository();
            IGui gui   = StubFactory.CreateGuiStub(mocks);

            gui.Stub(g => g.ViewCommands).Return(mocks.Stub <IViewCommands>());
            gui.Stub(g => g.MainWindow).Return(mocks.Stub <IMainWindow>());
            gui.Stub(g => g.DocumentViewController).Return(mocks.Stub <IDocumentViewController>());
            gui.Stub(g => g.ProjectStore).Return(mocks.Stub <IStoreProject>());
            mocks.ReplayAll();

            const double targetProbability = 0.01;

            var calculationsForTargetProbability = new HydraulicBoundaryLocationCalculationsForTargetProbability(targetProbability);

            var context = new WaterLevelCalculationsForUserDefinedTargetProbabilityContext(calculationsForTargetProbability, new AssessmentSectionStub());

            using (var view = new DesignWaterLevelCalculationsView(new ObservableList <HydraulicBoundaryLocationCalculation>(),
                                                                   new AssessmentSectionStub(),
                                                                   () => targetProbability,
                                                                   () => "1/100"))

                using (var plugin = new RiskeerPlugin())
                {
                    ViewInfo info = GetViewInfo(plugin);
                    plugin.Gui = gui;
                    plugin.Activate();

                    // Call
                    info.AfterCreate(view, context);

                    // Assert
                    Assert.IsInstanceOf <IHydraulicBoundaryLocationCalculationGuiService>(view.CalculationGuiService);
                }

            mocks.VerifyAll();
        }
        public void Name_WithContext_ReturnsName()
        {
            // Setup
            var mocks             = new MockRepository();
            var assessmentSection = mocks.Stub <IAssessmentSection>();

            mocks.ReplayAll();

            var context = new WaterLevelCalculationsForUserDefinedTargetProbabilityContext(
                new HydraulicBoundaryLocationCalculationsForTargetProbability(0.1), assessmentSection);

            using (var plugin = new RiskeerPlugin())
            {
                ExportInfo info = GetExportInfo(plugin);

                // Call
                string name = info.Name(context);

                // Assert
                Assert.AreEqual("Waterstanden (1/10)", name);
            }

            mocks.VerifyAll();
        }
示例#14
0
        public void CreateInstance_WithContext_SetsExpectedCalculationData()
        {
            // Setup
            var hydraulicBoundaryLocationCalculation = new HydraulicBoundaryLocationCalculation(new TestHydraulicBoundaryLocation());
            var calculationsForTargetProbability     = new HydraulicBoundaryLocationCalculationsForTargetProbability(0.01)
            {
                HydraulicBoundaryLocationCalculations =
                {
                    hydraulicBoundaryLocationCalculation
                }
            };

            var assessmentSection = new AssessmentSectionStub();

            assessmentSection.WaterLevelCalculationsForUserDefinedTargetProbabilities.Add(calculationsForTargetProbability);

            var context = new WaterLevelCalculationsForUserDefinedTargetProbabilityContext(calculationsForTargetProbability, assessmentSection);

            var mockRepository = new MockRepository();
            var guiService     = mockRepository.StrictMock <IHydraulicBoundaryLocationCalculationGuiService>();

            double actualNormValue = double.NaN;
            IEnumerable <HydraulicBoundaryLocationCalculation> performedCalculations = null;

            guiService.Expect(ch => ch.CalculateDesignWaterLevels(null, null, int.MinValue, null)).IgnoreArguments().WhenCalled(
                invocation =>
            {
                performedCalculations = (IEnumerable <HydraulicBoundaryLocationCalculation>)invocation.Arguments[0];
                actualNormValue       = (double)invocation.Arguments[2];
            });

            mockRepository.ReplayAll();

            using (var plugin = new RiskeerPlugin())
            {
                ViewInfo info = GetViewInfo(plugin);

                // Call
                var view = (DesignWaterLevelCalculationsView)info.CreateInstance(context);

                using (var testForm = new Form())
                {
                    view.CalculationGuiService = guiService;
                    testForm.Controls.Add(view);
                    testForm.Show();

                    DataGridView calculationsDataGridView = ControlTestHelper.GetDataGridView(view, "DataGridView");
                    DataGridViewRowCollection rows        = calculationsDataGridView.Rows;
                    rows[0].Cells[calculateColumnIndex].Value = true;

                    view.CalculationGuiService = guiService;
                    var button = new ButtonTester("CalculateForSelectedButton", testForm);

                    button.Click();

                    // Assert
                    Assert.AreEqual(calculationsForTargetProbability.TargetProbability, actualNormValue);
                    Assert.AreSame(hydraulicBoundaryLocationCalculation, performedCalculations.Single());
                }
            }

            mockRepository.VerifyAll();
        }