// Copyright (C) Stichting Deltares 2017. All rights reserved. // // This file is part of Ringtoets. // // Ringtoets is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // All names, logos, and references to "Deltares" are registered trademarks of // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. using System; using Assembly.Kernel.Exceptions; using Assembly.Kernel.Interfaces; using Assembly.Kernel.Model; using Assembly.Kernel.Model.AssessmentResultTypes; using Assembly.Kernel.Model.FmSectionTypes; namespace Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Kernels.Assembly { /// /// Failure mechanism section assembly kernel stub for testing purposes. /// public class FailureMechanismSectionAssemblyKernelStub : IAssessmentResultsTranslator { /// /// Gets the input used in . /// public EAssessmentResultTypeE1? AssessmentResultTypeE1Input { get; private set; } /// /// Gets the input used in . /// public EAssessmentResultTypeE2? AssessmentResultTypeE2Input { get; private set; } /// /// Gets the input used in . /// public EAssessmentResultTypeG1? AssessmentResultTypeG1Input { get; private set; } /// /// Gets the input used in . /// public EAssessmentResultTypeG2? AssessmentResultTypeG2Input { get; private set; } /// /// Gets the input used in . /// public EAssessmentResultTypeT1? AssessmentResultTypeT1Input { get; private set; } /// /// Gets the input used in . /// public EAssessmentResultTypeT3? AssessmentResultTypeT3Input { get; private set; } /// /// Gets the input used in . /// public EAssessmentResultTypeT4? AssessmentResultTypeT4Input { get; private set; } /// /// Gets the section category input used as input parameter for assembly methods. /// public EFmSectionCategory? SectionCategoryInput { get; private set; } /// /// Gets the simple assessment result used as input parameter for the combined assembly methods. /// public FmSectionAssemblyDirectResult SimpleAssessmentResultInput { get; private set; } /// /// Gets the detailed assessment result used as input parameter for the combined assembly methods. /// public FmSectionAssemblyDirectResult DetailedAssessmentResultInput { get; private set; } /// /// Gets the tailor made assessment result used as input parameter for the combined assembly methods. /// public FmSectionAssemblyDirectResult TailorMadeAssessmentResultInput { get; private set; } /// /// Gets the used as input parameter for assembly methods. /// public AssessmentSection AssessmentSectionInput { get; private set; } /// /// Gets the used as input parameter for assembly methods. /// public FailureMechanism FailureMechanismInput { get; private set; } /// /// Gets the probability of failure used as input parameter for assembly methods. /// public double? FailureProbabilityInput { get; private set; } /// /// Gets the 'N' parameter used to factor in the 'length effect' which is /// used as input parameter for assembly methods. /// public double? LengthEffectFactorInput { get; private set; } /// /// Gets the used as input parameter for assembly methods. /// public FmSectionCategoryCompliancyResults CategoryCompliancyResultsInput { get; private set; } /// /// Gets or sets the failure mechanism section assembly result. /// public FmSectionAssemblyDirectResult FailureMechanismSectionDirectResult { get; set; } /// /// Gets a value indicating whether a calculation was called or not. /// public bool Calculated { get; private set; } /// /// Sets an indicator whether an must be thrown while performing a calculation. /// public bool ThrowExceptionOnCalculate { private get; set; } /// /// Sets an indicator whether an must be thrown while performing a calculation. /// public bool ThrowAssemblyExceptionOnCalculate { private get; set; } public FmSectionAssemblyDirectResult TranslateAssessmentResultWbi0E1(EAssessmentResultTypeE1 assessment) { ThrowException(); AssessmentResultTypeE1Input = assessment; Calculated = true; return FailureMechanismSectionDirectResult; } public FmSectionAssemblyIndirectResult TranslateAssessmentResultWbi0E2(EAssessmentResultTypeE1 assessment) { throw new NotImplementedException(); } public FmSectionAssemblyDirectResult TranslateAssessmentResultWbi0E3(EAssessmentResultTypeE2 assessment) { ThrowException(); AssessmentResultTypeE2Input = assessment; Calculated = true; return FailureMechanismSectionDirectResult; } public FmSectionAssemblyIndirectResult TranslateAssessmentResultWbi0E4(EAssessmentResultTypeE2 assessment) { throw new NotImplementedException(); } public FmSectionAssemblyDirectResult TranslateAssessmentResultWbi0G1(EAssessmentResultTypeG1 assessment) { ThrowException(); AssessmentResultTypeG1Input = assessment; Calculated = true; return FailureMechanismSectionDirectResult; } public FmSectionAssemblyIndirectResult TranslateAssessmentResultWbi0G2(EAssessmentResultTypeG1 assessment) { throw new NotImplementedException(); } public FmSectionAssemblyDirectResult TranslateAssessmentResultWbi0G3(AssessmentSection section, FailureMechanism failureMechanism, EAssessmentResultTypeG2 assessment, double? failureProbability) { ThrowException(); AssessmentSectionInput = section; FailureMechanismInput = failureMechanism; AssessmentResultTypeG2Input = assessment; FailureProbabilityInput = failureProbability; Calculated = true; return FailureMechanismSectionDirectResult; } public FmSectionAssemblyDirectResult TranslateAssessmentResultWbi0G4(EAssessmentResultTypeG2 assessment, EFmSectionCategory? category) { throw new NotImplementedException(); } public FmSectionAssemblyDirectResult TranslateAssessmentResultWbi0G5(AssessmentSection section, FailureMechanism failureMechanism, double fmSectionLengthEffectFactor, EAssessmentResultTypeG2 assessment, double? failureProbability) { ThrowException(); AssessmentSectionInput = section; FailureMechanismInput = failureMechanism; AssessmentResultTypeG2Input = assessment; FailureProbabilityInput = failureProbability; LengthEffectFactorInput = fmSectionLengthEffectFactor; Calculated = true; return FailureMechanismSectionDirectResult; } public FmSectionAssemblyDirectResult TranslateAssessmentResultWbi0G6(FmSectionCategoryCompliancyResults compliancyResults) { ThrowException(); CategoryCompliancyResultsInput = compliancyResults; Calculated = true; return FailureMechanismSectionDirectResult; } public FmSectionAssemblyDirectResult TranslateAssessmentResultWbi0T1(EAssessmentResultTypeT1 assessment) { ThrowException(); AssessmentResultTypeT1Input = assessment; Calculated = true; return FailureMechanismSectionDirectResult; } public FmSectionAssemblyIndirectResult TranslateAssessmentResultWbi0T2(EAssessmentResultTypeT2 assessment) { throw new NotImplementedException(); } public FmSectionAssemblyDirectResult TranslateAssessmentResultWbi0T3(AssessmentSection section, FailureMechanism failureMechanism, EAssessmentResultTypeT3 assessment, double? failureProbability) { ThrowException(); AssessmentSectionInput = section; FailureMechanismInput = failureMechanism; AssessmentResultTypeT3Input = assessment; FailureProbabilityInput = failureProbability; Calculated = true; return FailureMechanismSectionDirectResult; } public FmSectionAssemblyDirectResult TranslateAssessmentResultWbi0T4(EAssessmentResultTypeT3 assessment, EFmSectionCategory? category) { ThrowException(); AssessmentResultTypeT3Input = assessment; SectionCategoryInput = category; Calculated = true; return FailureMechanismSectionDirectResult; } public FmSectionAssemblyDirectResult TranslateAssessmentResultWbi0T5(AssessmentSection section, FailureMechanism failureMechanism, double fmSectionLengthEffectFactor, EAssessmentResultTypeT3 assessment, double? failureProbability) { ThrowException(); AssessmentSectionInput = section; FailureMechanismInput = failureMechanism; AssessmentResultTypeT3Input = assessment; FailureProbabilityInput = failureProbability; LengthEffectFactorInput = fmSectionLengthEffectFactor; Calculated = true; return FailureMechanismSectionDirectResult; } public FmSectionAssemblyDirectResult TranslateAssessmentResultWbi0T6(FmSectionCategoryCompliancyResults compliancyResults, EAssessmentResultTypeT3 assessment) { throw new NotImplementedException(); } public FmSectionAssemblyDirectResult TranslateAssessmentResultWbi0T7(AssessmentSection section, FailureMechanism failureMechanism, EAssessmentResultTypeT4 assessment, double? failureProbability) { ThrowException(); AssessmentSectionInput = section; FailureMechanismInput = failureMechanism; AssessmentResultTypeT4Input = assessment; FailureProbabilityInput = failureProbability; Calculated = true; return FailureMechanismSectionDirectResult; } public FmSectionAssemblyResult TranslateAssessmentResultWbi0A1(FmSectionAssemblyDirectResult simpleAssessmentResult, FmSectionAssemblyDirectResult detailedAssessmentResult, FmSectionAssemblyDirectResult tailorMadeAssessmentResult) { ThrowException(); SimpleAssessmentResultInput = simpleAssessmentResult; DetailedAssessmentResultInput = detailedAssessmentResult; TailorMadeAssessmentResultInput = tailorMadeAssessmentResult; Calculated = true; return FailureMechanismSectionDirectResult; } public FmSectionAssemblyResult TranslateAssessmentResultWbi0A1(FmSectionAssemblyIndirectResult simpleAssessmentResult, FmSectionAssemblyIndirectResult detailedAssessmentResult, FmSectionAssemblyIndirectResult customAssessmentResult) { throw new NotImplementedException(); } private void ThrowException() { if (ThrowExceptionOnCalculate) { throw new Exception("Message", new Exception()); } if (ThrowAssemblyExceptionOnCalculate) { throw new AssemblyException("entity", EAssemblyErrors.CategoryLowerLimitOutOfRange); } } } }