Esempio n. 1
0
        public void GivenRowWithoutAssemblyErrors_WhenUpdatingAndPerformAssemblyThrowsException_ThenShowError()
        {
            // Given
            var mocks         = new MockRepository();
            var errorProvider = mocks.Stub <IFailureMechanismSectionResultRowErrorProvider>();

            mocks.ReplayAll();

            FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
            var result = new NonAdoptableWithProfileProbabilityFailureMechanismSectionResult(section);

            var nrOfCalls = 0;
            FailureMechanismSectionAssemblyResultWrapper assemblyResultWrapper = FailureMechanismSectionAssemblyResultWrapperTestFactory.Create();

            Func <FailureMechanismSectionAssemblyResultWrapper> performAssemblyFunc = () =>
            {
                if (nrOfCalls == 1)
                {
                    throw new AssemblyException();
                }

                nrOfCalls++;
                return(assemblyResultWrapper);
            };

            var row = new NonAdoptableWithProfileProbabilityFailureMechanismSectionResultRow(result, errorProvider, performAssemblyFunc, ConstructionProperties);

            // Precondition
            FailureMechanismSectionAssemblyResult assemblyResult = assemblyResultWrapper.AssemblyResult;

            Assert.AreEqual(assemblyResult.ProfileProbability, row.ProfileProbability);
            Assert.AreEqual(assemblyResult.SectionProbability, row.SectionProbability);
            Assert.AreEqual(assemblyResult.N, row.SectionN, row.SectionN.GetAccuracy());
            Assert.AreEqual(2, row.SectionN.NumberOfDecimalPlaces);
            Assert.AreEqual(EnumDisplayNameHelper.GetDisplayName(assemblyResult.FailureMechanismSectionAssemblyGroup),
                            row.AssemblyGroup);

            // When
            row.InitialFailureMechanismResultType = NonAdoptableInitialFailureMechanismResultType.NoFailureProbability;

            // Then
            var expectedAssemblyResult = new DefaultFailureMechanismSectionAssemblyResult();

            Assert.AreEqual(expectedAssemblyResult.ProfileProbability, row.ProfileProbability);
            Assert.AreEqual(expectedAssemblyResult.SectionProbability, row.SectionProbability);
            Assert.AreEqual(expectedAssemblyResult.N, row.SectionN, row.SectionN.GetAccuracy());
            Assert.AreEqual(2, row.SectionN.NumberOfDecimalPlaces);
            Assert.AreEqual(EnumDisplayNameHelper.GetDisplayName(expectedAssemblyResult.FailureMechanismSectionAssemblyGroup),
                            row.AssemblyGroup);

            mocks.VerifyAll();
        }
        public void Constructor_ExpectedValues()
        {
            // Call
            var result = new DefaultFailureMechanismSectionAssemblyResult();

            // Assert
            Assert.IsInstanceOf <FailureMechanismSectionAssemblyResult>(result);

            Assert.IsNaN(result.ProfileProbability);
            Assert.IsNaN(result.SectionProbability);
            Assert.IsNaN(result.N);
            Assert.AreEqual(FailureMechanismSectionAssemblyGroup.NoResult, result.FailureMechanismSectionAssemblyGroup);
        }
Esempio n. 3
0
        public void GivenRowWithoutAssemblyErrors_WhenUpdatingAndAssemblyThrowsException_ThenAssemblyPropertiesSetToDefault()
        {
            // Given
            var mocks         = new MockRepository();
            var errorProvider = mocks.Stub <IFailureMechanismSectionResultRowWithCalculatedProbabilityErrorProvider>();

            mocks.ReplayAll();

            FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
            var result = new AdoptableFailureMechanismSectionResult(section);

            var nrOfCalls = 0;
            FailureMechanismSectionAssemblyResultWrapper assemblyResultWrapper = FailureMechanismSectionAssemblyResultWrapperTestFactory.Create();

            Func <FailureMechanismSectionAssemblyResultWrapper> performAssemblyFunc = () =>
            {
                if (nrOfCalls == 1)
                {
                    throw new AssemblyException();
                }

                nrOfCalls++;
                return(assemblyResultWrapper);
            };

            var row = new AdoptableFailureMechanismSectionResultRow(result, () => double.NaN, errorProvider,
                                                                    performAssemblyFunc, ConstructionProperties);

            // Precondition
            FailureMechanismSectionAssemblyResult assemblyResult = assemblyResultWrapper.AssemblyResult;

            Assert.AreEqual(assemblyResult.SectionProbability, row.SectionProbability);
            Assert.AreEqual(EnumDisplayNameHelper.GetDisplayName(assemblyResult.FailureMechanismSectionAssemblyGroup),
                            row.AssemblyGroup);

            // When
            row.InitialFailureMechanismResultType = AdoptableInitialFailureMechanismResultType.Manual;

            // Then
            var expectedAssemblyResult = new DefaultFailureMechanismSectionAssemblyResult();

            Assert.AreEqual(expectedAssemblyResult.SectionProbability, row.SectionProbability);
            Assert.AreEqual(EnumDisplayNameHelper.GetDisplayName(expectedAssemblyResult.FailureMechanismSectionAssemblyGroup),
                            row.AssemblyGroup);

            mocks.VerifyAll();
        }
        public void GivenRowWithoutAssemblyErrors_WhenUpdatingAndAssemblyThrowsException_ThenAssemblyPropertiesSetToDefault()
        {
            // Given
            var mocks         = new MockRepository();
            var errorProvider = mocks.Stub <IFailureMechanismSectionResultRowErrorProvider>();

            mocks.ReplayAll();

            FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
            var result = new NonAdoptableFailureMechanismSectionResult(section);

            using (new AssemblyToolCalculatorFactoryConfig())
            {
                var calculatorFactory = (TestAssemblyToolCalculatorFactory)AssemblyToolCalculatorFactory.Instance;
                FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator;

                var row = new NonAdoptableFailureMechanismSectionResultRow(result, errorProvider, new AssessmentSectionStub(), ConstructionProperties);

                // Precondition
                FailureMechanismSectionAssemblyResult calculatorOutput = calculator.FailureMechanismSectionAssemblyResultOutput.AssemblyResult;
                Assert.AreEqual(calculatorOutput.SectionProbability, row.SectionProbability);
                Assert.AreEqual(EnumDisplayNameHelper.GetDisplayName(calculatorOutput.FailureMechanismSectionAssemblyGroup),
                                row.AssemblyGroup);

                // When
                calculator.ThrowExceptionOnCalculate  = true;
                row.InitialFailureMechanismResultType = NonAdoptableInitialFailureMechanismResultType.NoFailureProbability;

                // Then
                var expectedAssemblyResult = new DefaultFailureMechanismSectionAssemblyResult();
                Assert.AreEqual(expectedAssemblyResult.SectionProbability, row.SectionProbability);
                Assert.AreEqual(EnumDisplayNameHelper.GetDisplayName(expectedAssemblyResult.FailureMechanismSectionAssemblyGroup),
                                row.AssemblyGroup);
            }

            mocks.VerifyAll();
        }