public void AssembleFailureMechanismSection_SectionResultNull_ThrowsArgumentNullException() { // Call void Call() => AssemblyToolHelper.AssembleFailureMechanismSection <FailureMechanismSectionResult>(null, sr => null); // Assert var exception = Assert.Throws <ArgumentNullException>(Call); Assert.AreEqual("sectionResult", exception.ParamName); }
public void AssembleFailureMechanismSection_PerformSectionAssemblyFuncThrowsAssemblyException_ReturnsDefaultFailureMechanismSectionAssemblyResult() { // Setup var sectionResult = new TestFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()); // Call FailureMechanismSectionAssemblyResult assemblyResult = AssemblyToolHelper.AssembleFailureMechanismSection( sectionResult, sr => throw new AssemblyException()); // Assert Assert.IsInstanceOf <DefaultFailureMechanismSectionAssemblyResult>(assemblyResult); }
public void AssembleFailureMechanismSection_PerformSectionAssemblyFuncNull_ThrowsArgumentNullException() { // Setup var sectionResult = new TestFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()); // Call void Call() => AssemblyToolHelper.AssembleFailureMechanismSection(sectionResult, null); // Assert var exception = Assert.Throws <ArgumentNullException>(Call); Assert.AreEqual("performSectionAssemblyFunc", exception.ParamName); }
public void AssembleFailureMechanismSection_WithValidData_ReturnsFailureMechanismSectionAssemblyResult() { // Setup var sectionResult = new TestFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()); var random = new Random(21); var expectedAssemblyResult = new FailureMechanismSectionAssemblyResult( random.NextDouble(), random.NextDouble(), random.NextDouble(), random.NextEnumValue <FailureMechanismSectionAssemblyGroup>()); // Call FailureMechanismSectionAssemblyResult assemblyResult = AssemblyToolHelper.AssembleFailureMechanismSection( sectionResult, sr => new FailureMechanismSectionAssemblyResultWrapper(expectedAssemblyResult, random.NextEnumValue <AssemblyMethod>(), random.NextEnumValue <AssemblyMethod>())); // Assert Assert.AreSame(expectedAssemblyResult, assemblyResult); }
/// <summary> /// Assembles the failure mechanism based on its input arguments. /// </summary> /// <param name="failureMechanism">The failure mechanism to assemble.</param> /// <param name="assessmentSection">The <see cref="IAssessmentSection"/> the <paramref name="failureMechanism"/> /// belongs to.</param> /// <returns>A <see cref="FailureMechanismAssemblyResultWrapper"/> with the assembly result.</returns> /// <exception cref="ArgumentNullException">Thrown when any argument is <c>null</c>.</exception> /// <exception cref="AssemblyException">Thrown when the failure mechanism cannot be assembled.</exception> public static FailureMechanismAssemblyResultWrapper AssembleFailureMechanism(PipingStructureFailureMechanism failureMechanism, IAssessmentSection assessmentSection) { if (failureMechanism == null) { throw new ArgumentNullException(nameof(failureMechanism)); } if (assessmentSection == null) { throw new ArgumentNullException(nameof(assessmentSection)); } Func <NonAdoptableFailureMechanismSectionResult, FailureMechanismSectionAssemblyResultWrapper> performSectionAssemblyFunc = sr => FailureMechanismSectionAssemblyResultFactory.AssembleSection(sr, assessmentSection); return(FailureMechanismAssemblyResultFactory.AssembleFailureMechanism( failureMechanism.GeneralInput.N, failureMechanism.SectionResults.Select(sr => AssemblyToolHelper.AssembleFailureMechanismSection(sr, performSectionAssemblyFunc)) .ToArray(), failureMechanism.GeneralInput.ApplyLengthEffectInSection, failureMechanism.AssemblyResult)); }
/// <summary> /// Assembles the failure mechanism based on its input arguments. /// </summary> /// <param name="failureMechanism">The <see cref="PipingFailureMechanism"/> to assemble.</param> /// <param name="assessmentSection">The <see cref="IAssessmentSection"/> the <paramref name="failureMechanism"/> /// belongs to.</param> /// <returns>A <see cref="FailureMechanismAssemblyResultWrapper"/> with the assembly result.</returns> /// <exception cref="ArgumentNullException">Thrown when any argument is <c>null</c>.</exception> /// <exception cref="AssemblyException">Thrown when the failure mechanism could not be assembled.</exception> public static FailureMechanismAssemblyResultWrapper AssembleFailureMechanism(PipingFailureMechanism failureMechanism, IAssessmentSection assessmentSection) { if (failureMechanism == null) { throw new ArgumentNullException(nameof(failureMechanism)); } if (assessmentSection == null) { throw new ArgumentNullException(nameof(assessmentSection)); } Func <AdoptableWithProfileProbabilityFailureMechanismSectionResult, FailureMechanismSectionAssemblyResultWrapper> performSectionAssemblyFunc = sr => AssembleSection(sr, failureMechanism, assessmentSection); return(FailureMechanismAssemblyResultFactory.AssembleFailureMechanism( failureMechanism.PipingProbabilityAssessmentInput.GetN(assessmentSection.ReferenceLine.Length), failureMechanism.SectionResults.Select(sr => AssemblyToolHelper.AssembleFailureMechanismSection(sr, performSectionAssemblyFunc)) .ToArray(), failureMechanism.GeneralInput.ApplyLengthEffectInSection, failureMechanism.AssemblyResult)); }
/// <summary> /// Assembles the failure mechanism based on its input arguments. /// </summary> /// <param name="failureMechanism">The failure mechanism to assemble.</param> /// <param name="assessmentSection">The <see cref="IAssessmentSection"/> the <paramref name="failureMechanism"/> /// belongs to.</param> /// <returns>A <see cref="FailureMechanismAssemblyResultWrapper"/> with the assembly result.</returns> /// <typeparam name="TFailureMechanism">The type of failure mechanism to assemble.</typeparam> /// <exception cref="ArgumentNullException">Thrown when any argument is <c>null</c>.</exception> /// <exception cref="AssemblyException">Thrown when the failure mechanism cannot be assembled.</exception> public static FailureMechanismAssemblyResultWrapper AssembleFailureMechanism <TFailureMechanism>(TFailureMechanism failureMechanism, IAssessmentSection assessmentSection) where TFailureMechanism : IHasGeneralInput, IFailureMechanism <NonAdoptableWithProfileProbabilityFailureMechanismSectionResult> { if (failureMechanism == null) { throw new ArgumentNullException(nameof(failureMechanism)); } if (assessmentSection == null) { throw new ArgumentNullException(nameof(assessmentSection)); } Func <NonAdoptableWithProfileProbabilityFailureMechanismSectionResult, FailureMechanismSectionAssemblyResultWrapper> performSectionAssemblyFunc = sr => AssembleSection(sr, failureMechanism, assessmentSection); return(FailureMechanismAssemblyResultFactory.AssembleFailureMechanism( failureMechanism.GeneralInput.N, failureMechanism.SectionResults.Select(sr => AssemblyToolHelper.AssembleFailureMechanismSection(sr, performSectionAssemblyFunc)) .ToArray(), failureMechanism.GeneralInput.ApplyLengthEffectInSection, failureMechanism.AssemblyResult)); }
private static IEnumerable <CombinedAssemblyFailureMechanismSection> CreateCombinedSections <TFailureMechanismSectionResult>( IEnumerable <TFailureMechanismSectionResult> sectionResults, AssessmentSection assessmentSection, Func <TFailureMechanismSectionResult, AssessmentSection, FailureMechanismSectionAssemblyResultWrapper> getAssemblyFunc) where TFailureMechanismSectionResult : FailureMechanismSectionResult { double totalSectionsLength = 0; return(sectionResults.Select(sectionResult => { FailureMechanismSectionAssemblyResult failureMechanismSectionAssemblyResult = AssemblyToolHelper.AssembleFailureMechanismSection( sectionResult, sr => getAssemblyFunc(sr, assessmentSection)); CombinedAssemblyFailureMechanismSection section = CreateSection( sectionResult, failureMechanismSectionAssemblyResult.FailureMechanismSectionAssemblyGroup, totalSectionsLength); totalSectionsLength = section.SectionEnd; return section; }) .ToArray()); }