public void GivenViewWithSections_WhenFailureMechanismNotifiesChangeAndSectionsNotUpdated_ThenDataGridViewNotUpdated()
        {
            // Given
            var failureMechanism = new TestFailureMechanism();

            FailureMechanismTestHelper.SetSections(failureMechanism, new[]
            {
                CreateFailureMechanismSection("a")
            });

            using (FailureMechanismSectionsView view = ShowFailureMechanismSectionsView(failureMechanism.Sections, failureMechanism))
            {
                DataGridView sectionsDataGridView = GetSectionsDataGridView(view);

                var invalidated = false;

                sectionsDataGridView.Invalidated += (s, e) =>
                {
                    invalidated = true;
                };

                // When
                failureMechanism.NotifyObservers();

                // Then
                Assert.IsFalse(invalidated);
            }
        }
        public void Constructor_ValidParameters_InitializesViewCorrectly()
        {
            // Setup
            var mocks            = new MockRepository();
            var failureMechanism = mocks.Stub <IFailureMechanism>();

            mocks.ReplayAll();

            IEnumerable <FailureMechanismSection> sections = Enumerable.Empty <FailureMechanismSection>();

            // Call
            using (FailureMechanismSectionsView view = ShowFailureMechanismSectionsView(sections, failureMechanism))
            {
                // Assert
                Assert.IsInstanceOf <CloseForFailureMechanismView>(view);
                Assert.IsNull(view.Data);
                Assert.AreSame(failureMechanism, view.FailureMechanism);
                Assert.AreEqual(1, view.Controls.Count);

                DataGridViewControl sectionsDataGridViewControl = GetSectionsDataGridViewControl(view);
                Assert.NotNull(sectionsDataGridViewControl);
                Assert.AreEqual(DockStyle.Fill, sectionsDataGridViewControl.Dock);

                DataGridView dataGridView = GetSectionsDataGridView(view);

                Assert.AreEqual(columnCount, dataGridView.ColumnCount);
                Assert.AreEqual("Vaknaam", dataGridView.Columns[nameColumnIndex].HeaderText);
                Assert.AreEqual("Metrering van* [m]", dataGridView.Columns[sectionStartColumnIndex].HeaderText);
                Assert.AreEqual("Metrering tot* [m]", dataGridView.Columns[sectionEndColumnIndex].HeaderText);
                Assert.AreEqual("Lengte* [m]", dataGridView.Columns[lengthColumnIndex].HeaderText);
            }

            mocks.VerifyAll();
        }
        public void GivenViewWithSections_WhenFailureMechanismNotifiesChangeAndSectionsUpdated_ThenDataGridViewUpdated()
        {
            // Given
            var failureMechanism = new TestFailureMechanism();

            FailureMechanismTestHelper.SetSections(failureMechanism, new[]
            {
                CreateFailureMechanismSection("a")
            });

            using (FailureMechanismSectionsView view = ShowFailureMechanismSectionsView(failureMechanism.Sections, failureMechanism))
            {
                DataGridViewControl sectionsDataGridViewControl = GetSectionsDataGridViewControl(view);

                // Precondition
                AssertSectionsDataGridViewControl(failureMechanism.Sections.ToArray(), sectionsDataGridViewControl);

                // When
                FailureMechanismTestHelper.SetSections(failureMechanism, new[]
                {
                    FailureMechanismSectionTestFactory.CreateFailureMechanismSection()
                });
                failureMechanism.NotifyObservers();

                // Then
                AssertSectionsDataGridViewControl(failureMechanism.Sections.ToArray(), sectionsDataGridViewControl);
            }
        }
        public void Constructor_WithSections_CreatesViewWithDataGridViewCorrectlyFilled()
        {
            // Setup
            var mocks            = new MockRepository();
            var failureMechanism = mocks.Stub <IFailureMechanism>();

            mocks.ReplayAll();

            FailureMechanismSection[] sections =
            {
                CreateFailureMechanismSection("a"),
                CreateFailureMechanismSection("b"),
                CreateFailureMechanismSection("c")
            };

            // Call
            using (FailureMechanismSectionsView view = ShowFailureMechanismSectionsView(sections, failureMechanism))
            {
                // Assert
                DataGridViewControl sectionsDataGridViewControl = GetSectionsDataGridViewControl(view);

                AssertSectionsDataGridViewControl(sections, sectionsDataGridViewControl);
            }

            mocks.VerifyAll();
        }
        private FailureMechanismSectionsView ShowFailureMechanismSectionsView(IEnumerable <FailureMechanismSection> sections,
                                                                              IFailureMechanism failureMechanism)
        {
            var view = new FailureMechanismSectionsView(sections, failureMechanism);

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

            return(view);
        }
        public void Constructor_WithoutSections_CreatesViewWithDataGridViewEmpty()
        {
            // Setup
            var mocks            = new MockRepository();
            var failureMechanism = mocks.Stub <IFailureMechanism>();

            mocks.ReplayAll();

            IEnumerable <FailureMechanismSection> sections = Enumerable.Empty <FailureMechanismSection>();

            // Call
            using (FailureMechanismSectionsView view = ShowFailureMechanismSectionsView(sections, failureMechanism))
            {
                // Assert
                CollectionAssert.IsEmpty(GetSectionsDataGridViewControl(view).Rows);
            }

            mocks.VerifyAll();
        }
 private static DataGridView GetSectionsDataGridView(FailureMechanismSectionsView view)
 {
     return(ControlTestHelper.GetControls <DataGridView>(view, "dataGridView").Single());
 }