Index: Ringtoets/DuneErosion/src/Ringtoets.DuneErosion.IO/ExportableDuneLocationCalculation.cs =================================================================== diff -u --- Ringtoets/DuneErosion/src/Ringtoets.DuneErosion.IO/ExportableDuneLocationCalculation.cs (revision 0) +++ Ringtoets/DuneErosion/src/Ringtoets.DuneErosion.IO/ExportableDuneLocationCalculation.cs (revision 25fdc8c96c2ea58d4193a09eb2fe50842490093e) @@ -0,0 +1,74 @@ +// 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.DuneErosion.Data; + +namespace Ringtoets.DuneErosion.IO +{ + /// + /// Class that holds all required data to export a . + /// + public class ExportableDuneLocationCalculation + { + /// + /// Creates a new instance of . + /// + /// The will be exported. + /// The norm belonging to the calculation. + /// The display name of the category boundary. + /// Thrown when + /// or is null. + public ExportableDuneLocationCalculation(DuneLocationCalculation calculation, + double norm, + string categoryBoundaryName) + { + if (calculation == null) + { + throw new ArgumentNullException(nameof(calculation)); + } + + if (categoryBoundaryName == null) + { + throw new ArgumentNullException(nameof(categoryBoundaryName)); + } + + Calculation = calculation; + Norm = norm; + CategoryBoundaryName = categoryBoundaryName; + } + + /// + /// Gets the that will be exported. + /// + public DuneLocationCalculation Calculation { get; } + + /// + /// Gets the norm belonging to the calculation. + /// + public double Norm { get; } + + /// + /// Gets the display name of the category boundary. + /// + public string CategoryBoundaryName { get; } + } +} \ No newline at end of file Index: Ringtoets/DuneErosion/src/Ringtoets.DuneErosion.IO/Ringtoets.DuneErosion.IO.csproj =================================================================== diff -u -rbd5cd12c211e63d9ad3be8235234449571c4460c -r25fdc8c96c2ea58d4193a09eb2fe50842490093e --- Ringtoets/DuneErosion/src/Ringtoets.DuneErosion.IO/Ringtoets.DuneErosion.IO.csproj (.../Ringtoets.DuneErosion.IO.csproj) (revision bd5cd12c211e63d9ad3be8235234449571c4460c) +++ Ringtoets/DuneErosion/src/Ringtoets.DuneErosion.IO/Ringtoets.DuneErosion.IO.csproj (.../Ringtoets.DuneErosion.IO.csproj) (revision 25fdc8c96c2ea58d4193a09eb2fe50842490093e) @@ -16,6 +16,7 @@ + @@ -69,6 +70,10 @@ Core.Components.Gis False + + {4D840673-3812-4338-A352-84854E32B8A0} + Ringtoets.Common.Forms + {52ba7627-cbab-4209-be77-3b5f31378277} Ringtoets.Common.IO Index: Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.IO.Test/ExportableDuneLocationCalculationTest.cs =================================================================== diff -u --- Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.IO.Test/ExportableDuneLocationCalculationTest.cs (revision 0) +++ Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.IO.Test/ExportableDuneLocationCalculationTest.cs (revision 25fdc8c96c2ea58d4193a09eb2fe50842490093e) @@ -0,0 +1,74 @@ +// 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 NUnit.Framework; +using Ringtoets.DuneErosion.Data; +using Ringtoets.DuneErosion.Data.TestUtil; + +namespace Ringtoets.DuneErosion.IO.Test +{ + [TestFixture] + public class ExportableDuneLocationCalculationTest + { + [Test] + public void Constructor_CalculationNull_ThrowsArgumentNullException() + { + // Call + TestDelegate call = () => new ExportableDuneLocationCalculation(null, new Random(39).NextDouble(), "Category"); + + // Assert + var exception = Assert.Throws(call); + Assert.AreEqual("calculation", exception.ParamName); + } + + [Test] + public void Constructor_CategoryBoundaryNameNull_ThrowsArgumentNullException() + { + // Call + TestDelegate call = () => new ExportableDuneLocationCalculation(new DuneLocationCalculation(new TestDuneLocation()), + new Random(39).NextDouble(), + null); + + // Assert + var exception = Assert.Throws(call); + Assert.AreEqual("categoryBoundaryName", exception.ParamName); + } + + [Test] + [TestCase("Category")] + public void Constructor_WithValidParameters_ExpectedProperties() + { + // Setup + var calculation = new DuneLocationCalculation(new TestDuneLocation()); + double norm = new Random(39).NextDouble(); + const string categoryBoundaryName = "Category"; + + // Call + var exportableCalculation = new ExportableDuneLocationCalculation(calculation, norm, categoryBoundaryName); + + // Assert + Assert.AreSame(calculation, exportableCalculation.Calculation); + Assert.AreEqual(norm, exportableCalculation.Norm); + Assert.AreEqual(categoryBoundaryName, exportableCalculation.CategoryBoundaryName); + } + } +} \ No newline at end of file Index: Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.IO.Test/Ringtoets.DuneErosion.IO.Test.csproj =================================================================== diff -u -rbd5cd12c211e63d9ad3be8235234449571c4460c -r25fdc8c96c2ea58d4193a09eb2fe50842490093e --- Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.IO.Test/Ringtoets.DuneErosion.IO.Test.csproj (.../Ringtoets.DuneErosion.IO.Test.csproj) (revision bd5cd12c211e63d9ad3be8235234449571c4460c) +++ Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.IO.Test/Ringtoets.DuneErosion.IO.Test.csproj (.../Ringtoets.DuneErosion.IO.Test.csproj) (revision 25fdc8c96c2ea58d4193a09eb2fe50842490093e) @@ -16,6 +16,7 @@ +