public void AssembleAssessmentSection_AssessmentSectionContainingFailureMechanismsWithRandomInAssemblyState_SetsInputOnCalculator() { // Setup AssessmentSection assessmentSection = CreateAssessmentSectionContainingFailureMechanismsWithRandomInAssemblyState(); using (new AssemblyToolCalculatorFactoryConfig()) { var calculatorFactory = (TestAssemblyToolCalculatorFactory)AssemblyToolCalculatorFactory.Instance; FailureMechanismAssemblyCalculatorStub failureMechanismAssemblyCalculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; AssessmentSectionAssemblyCalculatorStub assessmentSectionAssemblyCalculator = calculatorFactory.LastCreatedAssessmentSectionAssemblyCalculator; // Call AssessmentSectionAssemblyFactory.AssembleAssessmentSection(assessmentSection); // Assert FailureMechanismContribution contribution = assessmentSection.FailureMechanismContribution; Assert.AreEqual(contribution.SignalFloodingProbability, assessmentSectionAssemblyCalculator.SignalFloodingProbability); Assert.AreEqual(contribution.MaximumAllowableFloodingProbability, assessmentSectionAssemblyCalculator.MaximumAllowableFloodingProbabilityInput); int expectedNrOfProbabilities = assessmentSection.GetFailureMechanisms() .Concat(assessmentSection.SpecificFailureMechanisms) .Count(fp => fp.InAssembly); IEnumerable <double> calculatorInput = assessmentSectionAssemblyCalculator.FailureMechanismProbabilitiesInput; Assert.AreEqual(expectedNrOfProbabilities, calculatorInput.Count()); foreach (double failureMechanismProbability in calculatorInput) { Assert.AreEqual(failureMechanismAssemblyCalculator.AssemblyResultOutput.AssemblyResult, failureMechanismProbability); } } }
/// <summary> /// Creates an <see cref="ExportableAssessmentSectionAssemblyResult"/> with the assembly result /// based on <paramref name="assessmentSection"/>. /// </summary> /// <param name="assessmentSection">The assessment section to create an <see cref="ExportableAssessmentSectionAssemblyResult"/> for.</param> /// <returns>An <see cref="ExportableAssessmentSectionAssemblyResult"/> with assembly result.</returns> /// <exception cref="AssemblyException">Thrown when assembly result cannot be created for <paramref name="assessmentSection"/>.</exception> private static ExportableAssessmentSectionAssemblyResult CreateExportableAssessmentSectionAssemblyResult(AssessmentSection assessmentSection) { AssessmentSectionAssemblyResultWrapper assemblyResultWrapper = AssessmentSectionAssemblyFactory.AssembleAssessmentSection(assessmentSection); AssessmentSectionAssemblyResult assemblyResult = assemblyResultWrapper.AssemblyResult; return(new ExportableAssessmentSectionAssemblyResult( assemblyResult.AssemblyGroup, assemblyResult.Probability, ExportableAssemblyMethodFactory.Create(assemblyResultWrapper.AssemblyGroupMethod), ExportableAssemblyMethodFactory.Create(assemblyResultWrapper.ProbabilityMethod))); }
public void AssembleAssessmentSection_AssessmentSectionNull_ThrowsArgumentNullException() { // Call void Call() => AssessmentSectionAssemblyFactory.AssembleAssessmentSection(null); // Assert var exception = Assert.Throws <ArgumentNullException>(Call); Assert.AreEqual("assessmentSection", exception.ParamName); }
private void UpdateTotalAssemblyGroupControl() { assessmentSectionAssemblyControl.ClearAssemblyResult(); assessmentSectionAssemblyControl.ClearErrors(); try { assessmentSectionAssemblyControl.SetAssemblyResult( AssessmentSectionAssemblyFactory.AssembleAssessmentSection(AssessmentSection).AssemblyResult); } catch (AssemblyException e) { assessmentSectionAssemblyControl.SetError(e.Message); } }
public void AssembleAssessmentSection_AssemblyRan_ReturnsOutput() { // Setup AssessmentSection assessmentSection = CreateAssessmentSectionContainingFailureMechanismsWithInAssemblyTrue(); using (new AssemblyToolCalculatorFactoryConfig()) { var calculatorFactory = (TestAssemblyToolCalculatorFactory)AssemblyToolCalculatorFactory.Instance; AssessmentSectionAssemblyCalculatorStub assessmentSectionAssemblyCalculator = calculatorFactory.LastCreatedAssessmentSectionAssemblyCalculator; // Call AssessmentSectionAssemblyResultWrapper result = AssessmentSectionAssemblyFactory.AssembleAssessmentSection(assessmentSection); // Assert Assert.AreSame(assessmentSectionAssemblyCalculator.AssessmentSectionAssemblyResult, result); } }
public void AssembleAssessmentSection_FailureMechanismCalculatorThrowsException_ThrowsAssemblyException() { // Setup using (new AssemblyToolCalculatorFactoryConfig()) { var calculatorFactory = (TestAssemblyToolCalculatorFactory)AssemblyToolCalculatorFactory.Instance; FailureMechanismAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; calculator.ThrowExceptionOnCalculate = true; // Call void Call() => AssessmentSectionAssemblyFactory.AssembleAssessmentSection(CreateAssessmentSectionContainingFailureMechanismsWithInAssemblyTrue()); // Assert var exception = Assert.Throws <AssemblyException>(Call); Exception innerException = exception.InnerException; Assert.IsInstanceOf <AssemblyException>(innerException); Assert.AreEqual("Voor een of meerdere faalmechanismen kan geen assemblageresultaat worden bepaald.", exception.Message); } }
public void AssembleAssessmentSection_CalculatorThrowsException_ThrowsAssemblyException() { // Setup using (new AssemblyToolCalculatorFactoryConfig()) { var calculatorFactory = (TestAssemblyToolCalculatorFactory)AssemblyToolCalculatorFactory.Instance; AssessmentSectionAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedAssessmentSectionAssemblyCalculator; calculator.ThrowExceptionOnCalculate = true; // Call void Call() => AssessmentSectionAssemblyFactory.AssembleAssessmentSection(CreateAssessmentSectionContainingFailureMechanismsWithInAssemblyTrue()); // Assert var exception = Assert.Throws <AssemblyException>(Call); Exception innerException = exception.InnerException; Assert.IsInstanceOf <AssessmentSectionAssemblyCalculatorException>(innerException); Assert.AreEqual(innerException.Message, exception.Message); } }