コード例 #1
0
        public void GivenAssessmentSectionObserversNotified_WhenRefreshingAssemblyResults_ThenDataGridViewDataSourceUpdated()
        {
            // Given
            using (new AssemblyToolCalculatorFactoryConfig())
                using (AssemblyResultTotalView view = ShowAssemblyResultTotalView())
                {
                    ButtonTester buttonTester = GetRefreshAssemblyResultButtonTester();
                    buttonTester.Properties.Enabled = true;

                    DataGridView dataGridView = GetDataGridView();
                    object       dataSource   = dataGridView.DataSource;

                    // Precondition
                    DataGridViewRowCollection rows = dataGridView.Rows;
                    Assert.AreEqual(view.AssessmentSection.GetFailureMechanisms().Count(), rows.Count);
                    AssertAssemblyCells(view.AssessmentSection.Piping, 0.1, rows[0].Cells);

                    // When
                    view.AssessmentSection.Piping = new TestPipingFailureMechanism
                    {
                        InAssembly = false
                    };
                    view.AssessmentSection.NotifyObservers();
                    buttonTester.Click();

                    // Then
                    Assert.AreNotSame(dataSource, dataGridView.DataSource);
                    Assert.AreEqual(view.AssessmentSection.GetFailureMechanisms().Count(), rows.Count);
                    AssertAssemblyCells(view.AssessmentSection.Piping, double.NaN, rows[0].Cells);
                }
        }
コード例 #2
0
        public void GivenFormWithAssemblyResultTotalView_WhenSpecificFailureMechanismRemovedAndRefreshingAssemblyResults_ThenDataGridViewDataSourceAndRowsUpdated()
        {
            // Given
            AssessmentSection assessmentSection = CreateAssessmentSection();

            using (new AssemblyToolCalculatorFactoryConfig())
                using (AssemblyResultTotalView view = ShowAssemblyResultTotalView(assessmentSection))
                {
                    var calculatorFactory = (TestAssemblyToolCalculatorFactory)AssemblyToolCalculatorFactory.Instance;
                    FailureMechanismAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator;

                    DataGridView dataGridView = GetDataGridView();
                    object       dataSource   = dataGridView.DataSource;

                    // Precondition
                    DataGridViewRowCollection rows = dataGridView.Rows;
                    AssertFailureMechanismRows(view.AssessmentSection, calculator.AssemblyResultOutput.AssemblyResult, rows);

                    // When
                    ObservableList <SpecificFailureMechanism> specificFailureMechanisms = assessmentSection.SpecificFailureMechanisms;
                    SpecificFailureMechanism failureMechanismToRemove = specificFailureMechanisms.Last();
                    specificFailureMechanisms.Remove(failureMechanismToRemove);
                    specificFailureMechanisms.NotifyObservers();

                    ButtonTester buttonTester = GetRefreshAssemblyResultButtonTester();
                    buttonTester.Click();

                    // Then
                    Assert.AreNotSame(dataSource, dataGridView.DataSource);
                    AssertFailureMechanismRows(view.AssessmentSection, calculator.AssemblyResultOutput.AssemblyResult, rows);
                }
        }
コード例 #3
0
        public void GivenFormWithAssemblyResultTotalView_WhenCalculationNotifiesObservers_ThenRefreshButtonEnabledAndWarningSet()
        {
            // Given
            AssessmentSection assessmentSection = CreateAssessmentSection();
            var calculation = new TestHeightStructuresCalculationScenario();

            assessmentSection.HeightStructures.CalculationsGroup.Children.Add(calculation);

            using (AssemblyResultTotalView view = ShowAssemblyResultTotalView(assessmentSection))
            {
                // Precondition
                ButtonTester buttonTester = GetRefreshAssemblyResultButtonTester();
                Button       button       = buttonTester.Properties;
                Assert.IsFalse(button.Enabled);
                ErrorProvider warningProvider = GetWarningProvider(view);
                Assert.IsEmpty(warningProvider.GetError(button));

                // When
                calculation.NotifyObservers();

                // Then
                Assert.IsTrue(buttonTester.Properties.Enabled);
                Assert.AreEqual(assemblyResultOutdatedWarning, warningProvider.GetError(button));
            }
        }
コード例 #4
0
        public void GivenFormWithAssemblyResultTotalView_WhenSpecificFailureMechanismNotifiesObservers_ThenRefreshButtonEnabledAndWarningSet()
        {
            // Given
            var failureMechanism = new SpecificFailureMechanism();
            AssessmentSection assessmentSection = CreateAssessmentSection();

            assessmentSection.SpecificFailureMechanisms.Add(failureMechanism);

            using (AssemblyResultTotalView view = ShowAssemblyResultTotalView(assessmentSection))
            {
                // Precondition
                ButtonTester buttonTester = GetRefreshAssemblyResultButtonTester();
                Button       button       = buttonTester.Properties;
                Assert.IsFalse(button.Enabled);
                ErrorProvider warningProvider = GetWarningProvider(view);
                Assert.IsEmpty(warningProvider.GetError(button));

                // When
                failureMechanism.NotifyObservers();

                // Then
                Assert.IsTrue(buttonTester.Properties.Enabled);
                Assert.AreEqual(assemblyResultOutdatedWarning, warningProvider.GetError(button));
            }
        }
コード例 #5
0
        private AssemblyResultTotalView ShowAssemblyResultTotalView(AssessmentSection assessmentSection)
        {
            var view = new AssemblyResultTotalView(assessmentSection);

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

            return(view);
        }
コード例 #6
0
        public void CloseForData_ViewCorrespondingToRemovedAssessmentSection_ReturnsTrue()
        {
            // Setup
            var random            = new Random(21);
            var assessmentSection = new AssessmentSection(random.NextEnumValue <AssessmentSectionComposition>());

            using (var view = new AssemblyResultTotalView(assessmentSection))
            {
                // Call
                bool closeForData = info.CloseForData(view, assessmentSection);

                // Assert
                Assert.IsTrue(closeForData);
            }
        }
コード例 #7
0
        public void GivenFormWithAssemblyResultTotalView_ThenExpectedCellsVisible()
        {
            // Given
            using (new AssemblyToolCalculatorFactoryConfig())
            {
                var calculatorFactory = (TestAssemblyToolCalculatorFactory)AssemblyToolCalculatorFactory.Instance;
                FailureMechanismAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator;

                using (AssemblyResultTotalView view = ShowAssemblyResultTotalView())
                {
                    // Then
                    DataGridView dataGridView = GetDataGridView();
                    AssertFailureMechanismRows(view.AssessmentSection,
                                               calculator.AssemblyResultOutput.AssemblyResult,
                                               dataGridView.Rows);
                }
            }
        }
コード例 #8
0
        public void Constructor_WithAssessmentSection_ExpectedValues()
        {
            // Setup
            var random            = new Random(21);
            var assessmentSection = new AssessmentSection(random.NextEnumValue <AssessmentSectionComposition>());

            // Call
            using (var view = new AssemblyResultTotalView(assessmentSection))
            {
                testForm.Controls.Add(view);
                testForm.Show();

                // Assert
                Assert.AreEqual(4, view.Controls.Count);

                Button button = GetRefreshAssemblyResultButtonTester().Properties;
                Assert.AreEqual("Resultaten verversen", button.Text);
                Assert.IsFalse(button.Enabled);

                var assemblyResultControl = (AssessmentSectionAssemblyResultControl) new ControlTester("assessmentSectionAssemblyControl").TheObject;
                Assert.AreEqual(DockStyle.Top, assemblyResultControl.Dock);

                var label = (Label) new ControlTester("label").TheObject;
                Assert.AreEqual("Samenvatting resultaten per faalmechanisme:", label.Text);

                var dataGridViewControl = (DataGridViewControl) new ControlTester("dataGridViewControl").TheObject;
                Assert.AreEqual(DockStyle.Fill, dataGridViewControl.Dock);

                ErrorProvider warningProvider = GetWarningProvider(view);
                TestHelper.AssertImagesAreEqual(CoreGuiResources.warning.ToBitmap(), warningProvider.Icon.ToBitmap());
                Assert.AreEqual(ErrorBlinkStyle.NeverBlink, warningProvider.BlinkStyle);
                Assert.IsEmpty(warningProvider.GetError(button));
                Assert.AreEqual(4, warningProvider.GetIconPadding(button));

                Assert.IsInstanceOf <IView>(view);
                Assert.IsInstanceOf <UserControl>(view);
                Assert.IsNull(view.Data);
                Assert.AreEqual(new Size(350, 250), view.AutoScrollMinSize);
                Assert.AreSame(assessmentSection, view.AssessmentSection);
            }
        }
コード例 #9
0
        public void GivenFormWithAssemblyResultTotalView_WhenFailureMechanismNotifiesObservers_ThenRefreshButtonEnabledAndWarningSet()
        {
            // Given
            var random = new Random(21);
            AssessmentSection assessmentSection = CreateAssessmentSection();

            using (AssemblyResultTotalView view = ShowAssemblyResultTotalView(assessmentSection))
            {
                // Precondition
                ButtonTester buttonTester = GetRefreshAssemblyResultButtonTester();
                Button       button       = buttonTester.Properties;
                Assert.IsFalse(button.Enabled);
                ErrorProvider warningProvider = GetWarningProvider(view);
                Assert.IsEmpty(warningProvider.GetError(button));

                // When
                IEnumerable <IFailureMechanism> failureMechanisms = assessmentSection.GetFailureMechanisms();
                failureMechanisms.ElementAt(random.Next(failureMechanisms.Count())).NotifyObservers();

                // Then
                Assert.IsTrue(buttonTester.Properties.Enabled);
                Assert.AreEqual(assemblyResultOutdatedWarning, warningProvider.GetError(button));
            }
        }
コード例 #10
0
        public void GivenFormWithAssemblyResultTotalViewWithOutdatedContent_WhenRefreshingAssemblyResults_ThenRefreshButtonDisabledAndWarningCleared()
        {
            // Given
            AssessmentSection assessmentSection = CreateAssessmentSection();

            using (AssemblyResultTotalView view = ShowAssemblyResultTotalView(assessmentSection))
            {
                assessmentSection.NotifyObservers();

                // Precondition
                ButtonTester buttonTester = GetRefreshAssemblyResultButtonTester();
                Button       button       = buttonTester.Properties;
                Assert.IsTrue(button.Enabled);
                ErrorProvider warningProvider = GetWarningProvider(view);
                Assert.AreEqual(assemblyResultOutdatedWarning, warningProvider.GetError(button));

                // When
                buttonTester.Click();

                // Then
                Assert.IsFalse(button.Enabled);
                Assert.IsEmpty(warningProvider.GetError(button));
            }
        }
コード例 #11
0
 private static ErrorProvider GetWarningProvider(AssemblyResultTotalView resultControl)
 {
     return(TypeUtils.GetField <ErrorProvider>(resultControl, "warningProvider"));
 }