Beispiel #1
0
        public void GivenStructuresFailureMechanismResultView_WhenNestedCalculationInputNotifiesObservers_ThenDataGridViewUpdatedAndAssemblyPerformed()
        {
            // Given
            var failureMechanism            = new TestStructuresFailureMechanism();
            FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection("Section 1");

            FailureMechanismTestHelper.SetSections(failureMechanism, new[]
            {
                section
            });

            var calculationScenario = new TestStructuresCalculationScenario
            {
                InputParameters =
                {
                    Structure = new TestStructure(section.StartPoint)
                }
            };
            var calculationGroup = new CalculationGroup();

            calculationGroup.Children.Add(calculationScenario);
            failureMechanism.CalculationsGroup.Children.Add(calculationGroup);

            int nrOfCalls = 0;
            Func <TestStructuresFailureMechanism, IAssessmentSection, FailureMechanismAssemblyResultWrapper> performFailureMechanismAssemblyFunc = (fm, ass) =>
            {
                nrOfCalls++;
                return(new FailureMechanismAssemblyResultWrapper(double.NaN, AssemblyMethod.BOI1A1));
            };

            using (new AssemblyToolCalculatorFactoryConfig())
                using (ShowFailureMechanismResultsView(failureMechanism, performFailureMechanismAssemblyFunc))
                {
                    var          rowsChanged  = false;
                    DataGridView dataGridView = GetDataGridView();
                    dataGridView.Rows.CollectionChanged += (sender, args) => rowsChanged = true;

                    // Precondition
                    Assert.AreEqual(1, nrOfCalls);
                    Assert.IsFalse(rowsChanged);

                    // When
                    calculationScenario.InputParameters.NotifyObservers();

                    // Then
                    Assert.AreEqual(2, nrOfCalls);
                    Assert.IsTrue(rowsChanged);
                }
        }
Beispiel #2
0
        private StructuresFailureMechanismResultView <TestStructuresFailureMechanism, TestStructuresInput> ShowFailureMechanismResultsView(
            TestStructuresFailureMechanism failureMechanism, IAssessmentSection assessmentSection,
            Func <TestStructuresFailureMechanism, IAssessmentSection, FailureMechanismAssemblyResultWrapper> performFailureMechanismAssemblyFunc)
        {
            var failureMechanismResultView = new StructuresFailureMechanismResultView <TestStructuresFailureMechanism, TestStructuresInput>(
                failureMechanism.SectionResults,
                failureMechanism,
                assessmentSection,
                performFailureMechanismAssemblyFunc);

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

            return(failureMechanismResultView);
        }
Beispiel #3
0
        public void FailureMechanismResultsView_AllDataSet_DataGridViewCorrectlyInitialized()
        {
            // Setup
            FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection("Section 1");

            var failureMechanism = new TestStructuresFailureMechanism();

            FailureMechanismTestHelper.SetSections(failureMechanism, new[]
            {
                section
            });

            failureMechanism.CalculationsGroup.Children.Add(new TestStructuresCalculationScenario
            {
                InputParameters =
                {
                    Structure = new TestStructure(section.StartPoint)
                }
            });

            // Call
            using (new AssemblyToolCalculatorFactoryConfig())
                using (ShowFailureMechanismResultsView(failureMechanism))
                {
                    DataGridView dataGridView = GetDataGridView();

                    // Assert
                    DataGridViewRowCollection rows = dataGridView.Rows;
                    Assert.AreEqual(1, rows.Count);

                    double probability = failureMechanism.SectionResults.First().GetInitialFailureMechanismResultProbability(
                        failureMechanism.Calculations.OfType <TestStructuresCalculationScenario>());

                    DataGridViewCellCollection cells = rows[0].Cells;
                    Assert.AreEqual(columnCount, cells.Count);
                    Assert.AreEqual("Section 1", cells[nameColumnIndex].FormattedValue);
                    Assert.AreEqual(true, cells[isRelevantIndex].Value);
                    Assert.AreEqual(AdoptableInitialFailureMechanismResultType.Adopt, cells[initialFailureMechanismResultTypeIndex].Value);
                    Assert.AreEqual(probability, cells[initialFailureMechanismResultSectionProbabilityIndex].Value);
                    Assert.AreEqual(FailureMechanismSectionResultFurtherAnalysisType.NotNecessary, cells[furtherAnalysisTypeIndex].Value);
                    Assert.AreEqual("-", cells[refinedSectionProbabilityIndex].FormattedValue);
                    Assert.AreEqual("1/10", cells[sectionProbabilityIndex].FormattedValue);
                    Assert.AreEqual("+I", cells[assemblyGroupIndex].FormattedValue);
                }
        }
Beispiel #4
0
        public void Constructor_ExpectedValues()
        {
            // Setup
            var mocks             = new MockRepository();
            var assessmentSection = mocks.Stub <IAssessmentSection>();

            mocks.ReplayAll();

            var failureMechanism = new TestStructuresFailureMechanism();

            // Call
            using (var view = new StructuresFailureMechanismResultView <TestStructuresFailureMechanism, TestStructuresInput>(
                       failureMechanism.SectionResults, failureMechanism, assessmentSection, (fm, section) => new FailureMechanismAssemblyResultWrapper(double.NaN, AssemblyMethod.BOI1A1)))
            {
                // Assert
                Assert.IsInstanceOf <FailureMechanismResultView <AdoptableFailureMechanismSectionResult,
                                                                 AdoptableFailureMechanismSectionResultRow,
                                                                 TestStructuresFailureMechanism> >(view);
                Assert.IsNull(view.Data);
                Assert.AreSame(failureMechanism, view.FailureMechanism);
            }

            mocks.VerifyAll();
        }
Beispiel #5
0
 private StructuresFailureMechanismResultView <TestStructuresFailureMechanism, TestStructuresInput> ShowFailureMechanismResultsView(
     TestStructuresFailureMechanism failureMechanism, IAssessmentSection assessmentSection)
 {
     return(ShowFailureMechanismResultsView(failureMechanism, assessmentSection, (fm, section) => new FailureMechanismAssemblyResultWrapper(1.2345, AssemblyMethod.Manual)));
 }
Beispiel #6
0
 private StructuresFailureMechanismResultView <TestStructuresFailureMechanism, TestStructuresInput> ShowFailureMechanismResultsView(
     TestStructuresFailureMechanism failureMechanism, Func <TestStructuresFailureMechanism, IAssessmentSection, FailureMechanismAssemblyResultWrapper> performFailureMechanismAssemblyFunc)
 {
     return(ShowFailureMechanismResultsView(failureMechanism, new AssessmentSectionStub(), performFailureMechanismAssemblyFunc));
 }
Beispiel #7
0
 private StructuresFailureMechanismResultView <TestStructuresFailureMechanism, TestStructuresInput> ShowFailureMechanismResultsView(
     TestStructuresFailureMechanism failureMechanism)
 {
     return(ShowFailureMechanismResultsView(failureMechanism, new AssessmentSectionStub()));
 }