Esempio n. 1
0
        public void CreateFailureMechanismSectionAssemblyCalculator_WithKernelFactory_ReturnsCalculator()
        {
            // Setup
            IAssemblyToolCalculatorFactory factory = AssemblyToolCalculatorFactory.Instance;

            using (new AssemblyToolKernelFactoryConfig())
            {
                // Call
                IFailureMechanismSectionAssemblyCalculator calculator =
                    factory.CreateFailureMechanismSectionAssemblyCalculator(AssemblyToolKernelFactory.Instance);

                // Assert
                Assert.IsInstanceOf <FailureMechanismSectionAssemblyCalculator>(calculator);
            }
        }
        /// <summary>
        /// Performs the assembly based on the <see cref="FailureMechanismSectionAssemblyInput"/>.
        /// </summary>
        /// <param name="input">The input to use in the assembly.</param>
        /// <returns>A <see cref="FailureMechanismSectionAssemblyResultWrapper"/>.</returns>
        /// <exception cref="AssemblyException">Thrown when the section could not be successfully assembled.</exception>
        private static FailureMechanismSectionAssemblyResultWrapper PerformAssembly(FailureMechanismSectionAssemblyInput input)
        {
            IFailureMechanismSectionAssemblyCalculator calculator = AssemblyToolCalculatorFactory.Instance.CreateFailureMechanismSectionAssemblyCalculator(
                AssemblyToolKernelFactory.Instance);

            try
            {
                return(input is FailureMechanismSectionWithProfileProbabilityAssemblyInput probabilityAssemblyInput
                           ? calculator.AssembleFailureMechanismSection(probabilityAssemblyInput)
                           : calculator.AssembleFailureMechanismSection(input));
            }
            catch (FailureMechanismSectionAssemblyCalculatorException e)
            {
                throw new AssemblyException(e.Message, e);
            }
        }