Index: Riskeer/AssemblyTool/src/Riskeer.AssemblyTool.Forms/DisplayFailureMechanismSectionAssemblyGroupConverter.cs =================================================================== diff -u --- Riskeer/AssemblyTool/src/Riskeer.AssemblyTool.Forms/DisplayFailureMechanismSectionAssemblyGroupConverter.cs (revision 0) +++ Riskeer/AssemblyTool/src/Riskeer.AssemblyTool.Forms/DisplayFailureMechanismSectionAssemblyGroupConverter.cs (revision 56770e50f789f2ff08d4862c1ff6fcd7110afe7e) @@ -0,0 +1,82 @@ +// Copyright (C) Stichting Deltares 2021. All rights reserved. +// +// This file is part of Riskeer. +// +// Riskeer 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.ComponentModel; +using Riskeer.AssemblyTool.Data; + +namespace Riskeer.AssemblyTool.Forms +{ + /// + /// Converter to convert + /// into . + /// + public static class DisplayFailureMechanismSectionAssemblyGroupConverter + { + /// + /// Converts into + /// . + /// + /// The group to convert. + /// The converted . + /// Thrown when + /// is an invalid value. + /// Thrown when + /// is a valid value, but unsupported. + public static DisplayFailureMechanismSectionAssemblyGroup Convert(FailureMechanismSectionAssemblyGroup assemblyGroup) + { + if (!Enum.IsDefined(typeof(FailureMechanismSectionAssemblyGroup), assemblyGroup)) + { + throw new InvalidEnumArgumentException(nameof(assemblyGroup), + (int) assemblyGroup, + typeof(FailureMechanismSectionAssemblyGroup)); + } + + switch (assemblyGroup) + { + case FailureMechanismSectionAssemblyGroup.ND: + return DisplayFailureMechanismSectionAssemblyGroup.ND; + case FailureMechanismSectionAssemblyGroup.III: + return DisplayFailureMechanismSectionAssemblyGroup.III; + case FailureMechanismSectionAssemblyGroup.II: + return DisplayFailureMechanismSectionAssemblyGroup.II; + case FailureMechanismSectionAssemblyGroup.I: + return DisplayFailureMechanismSectionAssemblyGroup.I; + case FailureMechanismSectionAssemblyGroup.ZeroPlus: + return DisplayFailureMechanismSectionAssemblyGroup.ZeroPlus; + case FailureMechanismSectionAssemblyGroup.Zero: + return DisplayFailureMechanismSectionAssemblyGroup.Zero; + case FailureMechanismSectionAssemblyGroup.IMin: + return DisplayFailureMechanismSectionAssemblyGroup.IMin; + case FailureMechanismSectionAssemblyGroup.IIMin: + return DisplayFailureMechanismSectionAssemblyGroup.IIMin; + case FailureMechanismSectionAssemblyGroup.IIIMin: + return DisplayFailureMechanismSectionAssemblyGroup.IIIMin; + case FailureMechanismSectionAssemblyGroup.D: + return DisplayFailureMechanismSectionAssemblyGroup.D; + case FailureMechanismSectionAssemblyGroup.Gr: + return DisplayFailureMechanismSectionAssemblyGroup.GR; + default: + throw new NotSupportedException(); + } + } + } +} \ No newline at end of file Index: Riskeer/AssemblyTool/test/Riskeer.AssemblyTool.Forms.Test/DisplayFailureMechanismSectionAssemblyGroupConverterTest.cs =================================================================== diff -u --- Riskeer/AssemblyTool/test/Riskeer.AssemblyTool.Forms.Test/DisplayFailureMechanismSectionAssemblyGroupConverterTest.cs (revision 0) +++ Riskeer/AssemblyTool/test/Riskeer.AssemblyTool.Forms.Test/DisplayFailureMechanismSectionAssemblyGroupConverterTest.cs (revision 56770e50f789f2ff08d4862c1ff6fcd7110afe7e) @@ -0,0 +1,65 @@ +// Copyright (C) Stichting Deltares 2021. All rights reserved. +// +// This file is part of Riskeer. +// +// Riskeer 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.ComponentModel; +using Core.Common.TestUtil; +using NUnit.Framework; +using Riskeer.AssemblyTool.Data; + +namespace Riskeer.AssemblyTool.Forms.Test +{ + [TestFixture] + public class DisplayFailureMechanismSectionAssemblyGroupConverterTest + { + [Test] + public void Convert_InvalidValue_ThrowsInvalidEnumArgumentException() + { + // Call + void Call() => DisplayFailureMechanismSectionAssemblyGroupConverter.Convert((FailureMechanismSectionAssemblyGroup) 99); + + // Assert + var expectedMessage = $"The value of argument 'assemblyGroup' (99) is invalid for Enum type '{nameof(FailureMechanismSectionAssemblyGroup)}'."; + TestHelper.AssertThrowsArgumentExceptionAndTestMessage(Call, expectedMessage); + } + + [Test] + [TestCase(FailureMechanismSectionAssemblyGroup.ND, DisplayFailureMechanismSectionAssemblyGroup.ND)] + [TestCase(FailureMechanismSectionAssemblyGroup.III, DisplayFailureMechanismSectionAssemblyGroup.III)] + [TestCase(FailureMechanismSectionAssemblyGroup.II, DisplayFailureMechanismSectionAssemblyGroup.II)] + [TestCase(FailureMechanismSectionAssemblyGroup.I, DisplayFailureMechanismSectionAssemblyGroup.I)] + [TestCase(FailureMechanismSectionAssemblyGroup.ZeroPlus, DisplayFailureMechanismSectionAssemblyGroup.ZeroPlus)] + [TestCase(FailureMechanismSectionAssemblyGroup.Zero, DisplayFailureMechanismSectionAssemblyGroup.Zero)] + [TestCase(FailureMechanismSectionAssemblyGroup.IMin, DisplayFailureMechanismSectionAssemblyGroup.IMin)] + [TestCase(FailureMechanismSectionAssemblyGroup.IIMin, DisplayFailureMechanismSectionAssemblyGroup.IIMin)] + [TestCase(FailureMechanismSectionAssemblyGroup.IIIMin, DisplayFailureMechanismSectionAssemblyGroup.IIIMin)] + [TestCase(FailureMechanismSectionAssemblyGroup.D, DisplayFailureMechanismSectionAssemblyGroup.D)] + [TestCase(FailureMechanismSectionAssemblyGroup.Gr, DisplayFailureMechanismSectionAssemblyGroup.GR)] + public void Convert_ValidValue_ReturnsConvertedValue(FailureMechanismSectionAssemblyGroup categoryGroup, + DisplayFailureMechanismSectionAssemblyGroup expectedDisplayCategoryGroup) + { + // Call + DisplayFailureMechanismSectionAssemblyGroup displayAssemblyGroup = DisplayFailureMechanismSectionAssemblyGroupConverter.Convert(categoryGroup); + + // Assert + Assert.AreEqual(expectedDisplayCategoryGroup, displayAssemblyGroup); + } + } +} \ No newline at end of file