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

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

            FailureMechanismSectionResult sectionResult = FailureMechanismSectionResultTestFactory.CreateFailureMechanismSectionResult();

            sectionResult.Attach(observer);

            var row        = new TestFailureMechanismSectionResultRow(sectionResult);
            var rowUpdated = false;

            row.RowUpdated += (sender, args) => rowUpdated = true;

            var rowUpdateDone = false;

            row.RowUpdateDone += (sender, args) => rowUpdateDone = true;

            // Precondition
            Assert.IsFalse(row.Updated);

            // Call
            row.UpdateInternal();

            // Assert
            Assert.IsTrue(row.Updated);
            Assert.IsTrue(rowUpdated);
            Assert.IsTrue(rowUpdateDone);
            mocks.VerifyAll();
        }
        public void Constructor_ExpectedValues()
        {
            // Setup
            FailureMechanismSectionResult sectionResult = FailureMechanismSectionResultTestFactory.CreateFailureMechanismSectionResult();

            // Call
            var row = new TestFailureMechanismSectionResultRow(sectionResult);

            // Assert
            Assert.IsInstanceOf <IHasColumnStateDefinitions>(row);
            Assert.AreEqual(sectionResult.Section.Name, row.Name);
            CollectionAssert.IsEmpty(row.ColumnStateDefinitions);
        }