Index: Ringtoets/Integration/src/Ringtoets.Integration.IO/Creators/SerializableFailureMechanismSectionAssemblyResultCreator.cs =================================================================== diff -u --- Ringtoets/Integration/src/Ringtoets.Integration.IO/Creators/SerializableFailureMechanismSectionAssemblyResultCreator.cs (revision 0) +++ Ringtoets/Integration/src/Ringtoets.Integration.IO/Creators/SerializableFailureMechanismSectionAssemblyResultCreator.cs (revision 597dfc8dd0177c9739b61f0fc6a983306b0d3aff) @@ -0,0 +1,79 @@ +// 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 Ringtoets.AssemblyTool.IO.Model.DataTypes; +using Ringtoets.AssemblyTool.IO.Model.Enums; +using Ringtoets.Integration.IO.Assembly; + +namespace Ringtoets.Integration.IO.Creators +{ + /// + /// Creator to create instances of + /// + public static class SerializableFailureMechanismSectionAssemblyResultCreator + { + /// + /// Creates an instance of + /// based on a . + /// + /// The type of assessment the + /// represents. + /// The to create a + /// for. + /// A . + /// Thrown when is null. + public static SerializableFailureMechanismSectionAssemblyResult Create(SerializableAssessmentType assessmentType, ExportableSectionAssemblyResult sectionResult) + { + if (sectionResult == null) + { + throw new ArgumentNullException(nameof(sectionResult)); + } + + return new SerializableFailureMechanismSectionAssemblyResult(SerializableAssemblyMethodCreator.Create(sectionResult.AssemblyMethod), + assessmentType, + SerializableFailureMechanismSectionCategoryGroupCreator.Create(sectionResult.AssemblyCategory)); + } + + /// + /// Creates an instance of + /// based on a . + /// + /// The type of assessment the + /// represents. + /// The to create a + /// for. + /// A . + /// Thrown when is null. + public static SerializableFailureMechanismSectionAssemblyResult Create(SerializableAssessmentType assessmentType, ExportableSectionAssemblyResultWithProbability sectionResult) + { + if (sectionResult == null) + { + throw new ArgumentNullException(nameof(sectionResult)); + } + + return new SerializableFailureMechanismSectionAssemblyResult(SerializableAssemblyMethodCreator.Create(sectionResult.AssemblyMethod), + assessmentType, + SerializableFailureMechanismSectionCategoryGroupCreator.Create(sectionResult.AssemblyCategory), + sectionResult.Probability); + } + } +} \ No newline at end of file Index: Ringtoets/Integration/src/Ringtoets.Integration.IO/Ringtoets.Integration.IO.csproj =================================================================== diff -u -ra3924f73a5f753dfc63ab7c195260ea2b79a3b2d -r597dfc8dd0177c9739b61f0fc6a983306b0d3aff --- Ringtoets/Integration/src/Ringtoets.Integration.IO/Ringtoets.Integration.IO.csproj (.../Ringtoets.Integration.IO.csproj) (revision a3924f73a5f753dfc63ab7c195260ea2b79a3b2d) +++ Ringtoets/Integration/src/Ringtoets.Integration.IO/Ringtoets.Integration.IO.csproj (.../Ringtoets.Integration.IO.csproj) (revision 597dfc8dd0177c9739b61f0fc6a983306b0d3aff) @@ -45,6 +45,7 @@ + Index: Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Creators/SerializableFailureMechanismSectionAssemblyResultCreatorTest.cs =================================================================== diff -u --- Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Creators/SerializableFailureMechanismSectionAssemblyResultCreatorTest.cs (revision 0) +++ Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Creators/SerializableFailureMechanismSectionAssemblyResultCreatorTest.cs (revision 597dfc8dd0177c9739b61f0fc6a983306b0d3aff) @@ -0,0 +1,103 @@ +// 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 Core.Common.TestUtil; +using NUnit.Framework; +using Ringtoets.AssemblyTool.IO.Model.DataTypes; +using Ringtoets.AssemblyTool.IO.Model.Enums; +using Ringtoets.Integration.IO.Assembly; +using Ringtoets.Integration.IO.Creators; +using Ringtoets.Integration.IO.TestUtil; + +namespace Ringtoets.Integration.IO.Test.Creators +{ + [TestFixture] + public class SerializableFailureMechanismSectionAssemblyResultCreatorTest + { + [Test] + public void CreateWithExportableSectionAssemblyResult_SectionResultNull_ThrowsArgumentNullException() + { + // Setup + var assessmentType = new Random(21).NextEnumValue(); + + // Call + TestDelegate call = () => SerializableFailureMechanismSectionAssemblyResultCreator.Create(assessmentType, null); + + // Assert + var exception = Assert.Throws(call); + Assert.AreEqual("sectionResult", exception.ParamName); + } + + [Test] + public void Create_WithExportableSectionAssemblyResult_ReturnsSerializableFailureMechanismAssemblyResult() + { + // Setup + var assessmentType = new Random(21).NextEnumValue(); + ExportableSectionAssemblyResult sectionResult = ExportableSectionAssemblyResultTestFactory.CreateSectionAssemblyResult(); + + // Call + SerializableFailureMechanismSectionAssemblyResult serializableResult = + SerializableFailureMechanismSectionAssemblyResultCreator.Create(assessmentType, sectionResult); + + // Assert + Assert.AreEqual(assessmentType, serializableResult.AssessmentType); + + Assert.AreEqual(SerializableAssemblyMethodCreator.Create(sectionResult.AssemblyMethod), serializableResult.AssemblyMethod); + Assert.AreEqual(SerializableFailureMechanismSectionCategoryGroupCreator.Create(sectionResult.AssemblyCategory), serializableResult.CategoryGroup); + Assert.IsNull(serializableResult.Probability); + } + + [Test] + public void CreateWithExportableSectionAssemblyResultWithProbability_SectionResultNull_ThrowsArgumentNullException() + { + // Setup + var assessmentType = new Random(21).NextEnumValue(); + ExportableSectionAssemblyResultWithProbability sectionResult = null; + + // Call + TestDelegate call = () => SerializableFailureMechanismSectionAssemblyResultCreator.Create(assessmentType, sectionResult); + + // Assert + var exception = Assert.Throws(call); + Assert.AreEqual("sectionResult", exception.ParamName); + } + + [Test] + public void Create_WithExportableSectionAssemblyResultWithProbability_ReturnsSerializableFailureMechanismAssemblyResult() + { + // Setup + var assessmentType = new Random(21).NextEnumValue(); + ExportableSectionAssemblyResultWithProbability sectionResult = ExportableSectionAssemblyResultTestFactory.CreateSectionAssemblyResultWithProbability(); + + // Call + SerializableFailureMechanismSectionAssemblyResult serializableResult = + SerializableFailureMechanismSectionAssemblyResultCreator.Create(assessmentType, sectionResult); + + // Assert + Assert.AreEqual(assessmentType, serializableResult.AssessmentType); + + Assert.AreEqual(SerializableAssemblyMethodCreator.Create(sectionResult.AssemblyMethod), serializableResult.AssemblyMethod); + Assert.AreEqual(SerializableFailureMechanismSectionCategoryGroupCreator.Create(sectionResult.AssemblyCategory), serializableResult.CategoryGroup); + Assert.AreEqual(sectionResult.Probability, serializableResult.Probability); + } + } +} \ No newline at end of file Index: Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Ringtoets.Integration.IO.Test.csproj =================================================================== diff -u -ra3924f73a5f753dfc63ab7c195260ea2b79a3b2d -r597dfc8dd0177c9739b61f0fc6a983306b0d3aff --- Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Ringtoets.Integration.IO.Test.csproj (.../Ringtoets.Integration.IO.Test.csproj) (revision a3924f73a5f753dfc63ab7c195260ea2b79a3b2d) +++ Ringtoets/Integration/test/Ringtoets.Integration.IO.Test/Ringtoets.Integration.IO.Test.csproj (.../Ringtoets.Integration.IO.Test.csproj) (revision 597dfc8dd0177c9739b61f0fc6a983306b0d3aff) @@ -1,4 +1,4 @@ - + {06C448C6-CBDE-4579-B5B6-1B8074E022ED} @@ -47,6 +47,7 @@ +