// 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 System.Collections.Generic; using Ringtoets.AssemblyTool.Data; using Ringtoets.AssemblyTool.KernelWrapper.Calculators.Assembly; namespace Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Calculators.Assembly { /// /// Failure mechanism assembly calculator stub for testing purposes. /// public class FailureMechanismAssemblyCalculatorStub : IFailureMechanismAssemblyCalculator { /// /// Gets the collection of . /// public IEnumerable FailureMechanismSectionAssemblies { get; private set; } /// /// Gets the collection of . /// public IEnumerable FailureMechanismSectionCategories { get; private set; } /// /// Gets or sets the output of the failure mechanism assembly without probabilities. /// public FailureMechanismAssemblyCategoryGroup? FailureMechanismAssemblyCategoryGroupOutput { get; set; } /// /// Gets or sets the output of the failure mechanism assembly with probabilities. /// public FailureMechanismAssembly FailureMechanismAssemblyOutput { get; set; } /// /// Gets the assembly categories input used in the assembly calculation methods. /// public AssemblyCategoriesInput AssemblyCategoriesInput { get; private set; } /// /// Sets an indicator whether an exception must be thrown while performing a calculation. /// public bool ThrowExceptionOnCalculate { private get; set; } public FailureMechanismAssemblyCategoryGroup Assemble(IEnumerable sectionCategories) { if (ThrowExceptionOnCalculate) { throw new FailureMechanismAssemblyCalculatorException("Message", new Exception()); } FailureMechanismSectionCategories = sectionCategories; if (FailureMechanismAssemblyCategoryGroupOutput == null) { FailureMechanismAssemblyCategoryGroupOutput = FailureMechanismAssemblyCategoryGroup.IIt; } return FailureMechanismAssemblyCategoryGroupOutput.Value; } public FailureMechanismAssembly Assemble(IEnumerable sectionAssemblies, AssemblyCategoriesInput assemblyCategoriesInput) { if (ThrowExceptionOnCalculate) { throw new FailureMechanismAssemblyCalculatorException("Message", new Exception()); } FailureMechanismSectionAssemblies = sectionAssemblies; AssemblyCategoriesInput = assemblyCategoriesInput; return FailureMechanismAssemblyOutput ?? (FailureMechanismAssemblyOutput = new FailureMechanismAssembly(1.0, FailureMechanismAssemblyCategoryGroup.IIIt)); } } }