public void CloseForData_ViewCorrespondingToRemovedAssessmentSection_ReturnsTrue()
        {
            // Setup
            var calculationGroup  = new CalculationGroup();
            var failureMechanism  = new GrassCoverErosionInwardsFailureMechanism();
            var mocks             = new MockRepository();
            var assessmentSection = mocks.Stub <IAssessmentSection>();

            assessmentSection.Stub(asm => asm.GetFailureMechanisms()).Return(new IFailureMechanism[]
            {
                failureMechanism
            });
            assessmentSection.Stub(a => a.HydraulicBoundaryDatabase).Return(new HydraulicBoundaryDatabase
            {
                Locations =
                {
                    new HydraulicBoundaryLocation(1, "Location 1", 1.1, 2.2),
                    new HydraulicBoundaryLocation(2, "Location 2", 3.3, 4.4)
                }
            });
            mocks.ReplayAll();

            using (var view = new GrassCoverErosionInwardsCalculationsView(calculationGroup, failureMechanism, assessmentSection))
            {
                view.Data = failureMechanism.CalculationsGroup;
                // Call
                bool closeForData = info.CloseForData(view, assessmentSection);

                // Assert
                Assert.IsTrue(closeForData);
            }

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

            ConfigureHydraulicBoundaryDatabase(assessmentSection);
            mocks.ReplayAll();

            GrassCoverErosionInwardsFailureMechanism failureMechanism = ConfigureFailureMechanism();
            CalculationGroup calculationGroup = ConfigureCalculationGroup(failureMechanism, assessmentSection);

            GrassCoverErosionInwardsCalculationsView view = ShowCalculationsView(calculationGroup, failureMechanism, assessmentSection);

            var dataGridView = (DataGridView) new ControlTester("dataGridView").TheObject;

            dataGridView.CurrentCell = dataGridView.Rows[selectedRow].Cells[0];

            // Call
            object selection = view.Selection;

            // Assert
            Assert.IsInstanceOf <GrassCoverErosionInwardsInputContext>(selection);
            var dataRow = (GrassCoverErosionInwardsCalculationRow)dataGridView.Rows[selectedRow].DataBoundItem;

            Assert.AreSame(dataRow.Calculation, ((GrassCoverErosionInwardsInputContext)selection).Calculation);
            mocks.VerifyAll();
        }
        private GrassCoverErosionInwardsCalculationsView ShowCalculationsView(CalculationGroup calculationGroup, GrassCoverErosionInwardsFailureMechanism failureMechanism, IAssessmentSection assessmentSection)
        {
            var calculationsView = new GrassCoverErosionInwardsCalculationsView(calculationGroup, failureMechanism, assessmentSection);

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

            return(calculationsView);
        }
        public void Constructor_ExpectedValues()
        {
            // Call
            GrassCoverErosionInwardsCalculationsView view = ShowCalculationsView(new CalculationGroup(), new GrassCoverErosionInwardsFailureMechanism(), new AssessmentSectionStub());

            // Assert
            Assert.IsInstanceOf <CalculationsView <GrassCoverErosionInwardsCalculationScenario, GrassCoverErosionInwardsInput, GrassCoverErosionInwardsCalculationRow, GrassCoverErosionInwardsFailureMechanism> >(view);

            var button = (Button) new ControlTester("generateButton").TheObject;

            Assert.AreEqual("Genereer &berekeningen...", button.Text);
        }
        public void CloseForData_ViewNotCorrespondingToRemovedAssessmentSection_ReturnsFalse()
        {
            // Setup
            var assessmentSection = new AssessmentSectionStub();

            using (var calculationsView = new GrassCoverErosionInwardsCalculationsView(new CalculationGroup(), new GrassCoverErosionInwardsFailureMechanism(), assessmentSection))
            {
                bool closeForData = info.CloseForData(calculationsView, assessmentSection);

                // Assert
                Assert.IsFalse(closeForData);
            }
        }
        public void CloseForData_ViewCorrespondingToRemovedFailureMechanismContext_ReturnsTrue()
        {
            // Setup
            var assessmentSection = new AssessmentSectionStub();

            using (var calculationsView = new GrassCoverErosionInwardsCalculationsView(new CalculationGroup(), new GrassCoverErosionInwardsFailureMechanism(), assessmentSection))
            {
                var failureMechanism = new GrassCoverErosionInwardsFailureMechanism();
                var context          = new GrassCoverErosionInwardsFailureMechanismContext(failureMechanism, assessmentSection);

                calculationsView.Data = failureMechanism.CalculationsGroup;

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

                // Assert
                Assert.IsTrue(closeForData);
            }
        }