Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Read/FailureMechanismEntity.cs =================================================================== diff -u -r070f77d4fa62658c40449c64eac12a85dc51ea41 -r13fcf9943a26918929a3ada0363c2414480db077 --- Application/Ringtoets/src/Application.Ringtoets.Storage/Read/FailureMechanismEntity.cs (.../FailureMechanismEntity.cs) (revision 070f77d4fa62658c40449c64eac12a85dc51ea41) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Read/FailureMechanismEntity.cs (.../FailureMechanismEntity.cs) (revision 13fcf9943a26918929a3ada0363c2414480db077) @@ -86,7 +86,7 @@ /// A new . public FailureMechanismPlaceholder ReadAsFailureMechanismPlaceholder() { - var failureMechanism = new FailureMechanismPlaceholder(string.Empty) + var failureMechanism = new FailureMechanismPlaceholder("temporaryName", "temporaryCode") { StorageId = FailureMechanismEntityId, IsRelevant = IsRelevant == 1 Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/CreateConversionCollectorTest.cs =================================================================== diff -u -r4bb55feac151da4010e81849de3103327f7f40ae -r13fcf9943a26918929a3ada0363c2414480db077 --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/CreateConversionCollectorTest.cs (.../CreateConversionCollectorTest.cs) (revision 4bb55feac151da4010e81849de3103327f7f40ae) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/CreateConversionCollectorTest.cs (.../CreateConversionCollectorTest.cs) (revision 13fcf9943a26918929a3ada0363c2414480db077) @@ -478,7 +478,7 @@ { FailureMechanismEntityId = storageId }; - var model = new FailureMechanismPlaceholder("name"); + var model = new FailureMechanismPlaceholder("name", "code"); collector.Create(entity, model); // Call Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/FailureMechanismBaseCreateExtensions.cs =================================================================== diff -u -r070f77d4fa62658c40449c64eac12a85dc51ea41 -r13fcf9943a26918929a3ada0363c2414480db077 --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/FailureMechanismBaseCreateExtensions.cs (.../FailureMechanismBaseCreateExtensions.cs) (revision 070f77d4fa62658c40449c64eac12a85dc51ea41) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/FailureMechanismBaseCreateExtensions.cs (.../FailureMechanismBaseCreateExtensions.cs) (revision 13fcf9943a26918929a3ada0363c2414480db077) @@ -92,8 +92,7 @@ private class TestFailureMechanism : FailureMechanismBase { - public TestFailureMechanism() - : base("", "") + public TestFailureMechanism() : base("name", "code") { } public override IEnumerable Calculations Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/FailureMechanismPlaceholderCreateExtensionsTest.cs =================================================================== diff -u -r4bb55feac151da4010e81849de3103327f7f40ae -r13fcf9943a26918929a3ada0363c2414480db077 --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/FailureMechanismPlaceholderCreateExtensionsTest.cs (.../FailureMechanismPlaceholderCreateExtensionsTest.cs) (revision 4bb55feac151da4010e81849de3103327f7f40ae) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/FailureMechanismPlaceholderCreateExtensionsTest.cs (.../FailureMechanismPlaceholderCreateExtensionsTest.cs) (revision 13fcf9943a26918929a3ada0363c2414480db077) @@ -36,7 +36,7 @@ public void Create_WithoutCollector_ThrowsArgumentNullException() { // Setup - var failureMechanism = new FailureMechanismPlaceholder("name"); + var failureMechanism = new FailureMechanismPlaceholder("name", "code"); // Call TestDelegate test = () => failureMechanism.Create(FailureMechanismType.DuneErosion, null); @@ -52,7 +52,7 @@ public void Create_WithCollector_ReturnsFailureMechanismEntityWithPropertiesSet(bool isRelevant) { // Setup - var failureMechanism = new FailureMechanismPlaceholder("name") + var failureMechanism = new FailureMechanismPlaceholder("name", "code") { IsRelevant = isRelevant }; @@ -75,7 +75,7 @@ public void Create_WithSections_ReturnsFailureMechanismEntityWithFailureMechanismSectionEntities(bool isRelevant) { // Setup - var failureMechanism = new FailureMechanismPlaceholder(""); + var failureMechanism = new FailureMechanismPlaceholder("name", "code"); failureMechanism.AddSection(new FailureMechanismSection(string.Empty, new[] { new Point2D(0, 0) })); failureMechanism.AddSection(new FailureMechanismSection(string.Empty, new[] { new Point2D(0, 0) })); var collector = new CreateConversionCollector(); Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/FailureMechanismBaseUpdateExtensionsTest.cs =================================================================== diff -u -r45a98c616c6de35bc98ae800d94027d6f9247970 -r13fcf9943a26918929a3ada0363c2414480db077 --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/FailureMechanismBaseUpdateExtensionsTest.cs (.../FailureMechanismBaseUpdateExtensionsTest.cs) (revision 45a98c616c6de35bc98ae800d94027d6f9247970) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/FailureMechanismBaseUpdateExtensionsTest.cs (.../FailureMechanismBaseUpdateExtensionsTest.cs) (revision 13fcf9943a26918929a3ada0363c2414480db077) @@ -168,7 +168,7 @@ } public class TestFailureMechanism : FailureMechanismBase { - public TestFailureMechanism() : base("", "") + public TestFailureMechanism() : base("name", "code") {} public override IEnumerable Calculations Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/FailureMechanismPlaceholderUpdateExtensionsTest.cs =================================================================== diff -u -r4bb55feac151da4010e81849de3103327f7f40ae -r13fcf9943a26918929a3ada0363c2414480db077 --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/FailureMechanismPlaceholderUpdateExtensionsTest.cs (.../FailureMechanismPlaceholderUpdateExtensionsTest.cs) (revision 4bb55feac151da4010e81849de3103327f7f40ae) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/FailureMechanismPlaceholderUpdateExtensionsTest.cs (.../FailureMechanismPlaceholderUpdateExtensionsTest.cs) (revision 13fcf9943a26918929a3ada0363c2414480db077) @@ -41,7 +41,7 @@ public void Update_WithoutContext_ArgumentNullException() { // Setup - var failureMechanism = new FailureMechanismPlaceholder("name"); + var failureMechanism = new FailureMechanismPlaceholder("name", "code"); // Call TestDelegate test = () => failureMechanism.Update(new UpdateConversionCollector(), null); @@ -55,7 +55,7 @@ public void Update_WithoutCollector_ArgumentNullException() { // Setup - var failureMechanism = new FailureMechanismPlaceholder("name"); + var failureMechanism = new FailureMechanismPlaceholder("name", "code"); // Call TestDelegate test = () => @@ -75,7 +75,7 @@ public void Update_ContextWithNoFailureMechanism_EntityNotFoundException() { // Setup - var failureMechanism = new FailureMechanismPlaceholder("name"); + var failureMechanism = new FailureMechanismPlaceholder("name", "code"); // Call TestDelegate test = () => @@ -102,7 +102,7 @@ mocks.ReplayAll(); var storageId = 1; - var failureMechanism = new FailureMechanismPlaceholder("name") + var failureMechanism = new FailureMechanismPlaceholder("name", "code") { StorageId = storageId }; @@ -132,7 +132,7 @@ mocks.ReplayAll(); - var failureMechanism = new FailureMechanismPlaceholder("name") + var failureMechanism = new FailureMechanismPlaceholder("name", "code") { StorageId = 1, IsRelevant = true @@ -164,7 +164,7 @@ mocks.ReplayAll(); - var failureMechanism = new FailureMechanismPlaceholder("name") + var failureMechanism = new FailureMechanismPlaceholder("name", "code") { StorageId = 1 }; @@ -195,7 +195,7 @@ mocks.ReplayAll(); - var failureMechanism = new FailureMechanismPlaceholder("name") + var failureMechanism = new FailureMechanismPlaceholder("name", "code") { StorageId = 1 }; Index: Core/Common/src/Core.Common.Gui/Properties/Resources.Designer.cs =================================================================== diff -u -r684b8c0ca681ea2da3cc988bd60e9223037e5a16 -r13fcf9943a26918929a3ada0363c2414480db077 --- Core/Common/src/Core.Common.Gui/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 684b8c0ca681ea2da3cc988bd60e9223037e5a16) +++ Core/Common/src/Core.Common.Gui/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 13fcf9943a26918929a3ada0363c2414480db077) @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // // This code was generated by a tool. -// Runtime Version:4.0.30319.18444 +// Runtime Version:4.0.30319.34209 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. @@ -588,6 +588,15 @@ } /// + /// Looks up a localized string similar to Label. + /// + public static string FailureMechanismContributionView_GridColumn_AssessmentCode { + get { + return ResourceManager.GetString("FailureMechanismContributionView_GridColumn_AssessmentCode", resourceCulture); + } + } + + /// /// Looks up a localized string similar to Toegestane bijdrage aan faalkans [%]. /// public static string FailureMechanismContributionView_GridColumn_Contribution { Index: Core/Common/src/Core.Common.Gui/Properties/Resources.resx =================================================================== diff -u -r684b8c0ca681ea2da3cc988bd60e9223037e5a16 -r13fcf9943a26918929a3ada0363c2414480db077 --- Core/Common/src/Core.Common.Gui/Properties/Resources.resx (.../Resources.resx) (revision 684b8c0ca681ea2da3cc988bd60e9223037e5a16) +++ Core/Common/src/Core.Common.Gui/Properties/Resources.resx (.../Resources.resx) (revision 13fcf9943a26918929a3ada0363c2414480db077) @@ -691,4 +691,7 @@ Algemeen filter + + Label + \ No newline at end of file Index: Ringtoets/Common/src/Ringtoets.Common.Data/Contribution/FailureMechanismContributionItem.cs =================================================================== diff -u -r8efe7a79774f6a946a58c45f052c975d43304fb3 -r13fcf9943a26918929a3ada0363c2414480db077 --- Ringtoets/Common/src/Ringtoets.Common.Data/Contribution/FailureMechanismContributionItem.cs (.../FailureMechanismContributionItem.cs) (revision 8efe7a79774f6a946a58c45f052c975d43304fb3) +++ Ringtoets/Common/src/Ringtoets.Common.Data/Contribution/FailureMechanismContributionItem.cs (.../FailureMechanismContributionItem.cs) (revision 13fcf9943a26918929a3ada0363c2414480db077) @@ -52,21 +52,43 @@ throw new ArgumentNullException("failureMechanism", CommonResources.FailureMechanismContributionItem_Can_not_create_contribution_item_without_failure_mechanism); } this.failureMechanism = failureMechanism; - Assessment = failureMechanism.Name; - Contribution = failureMechanism.Contribution; + Norm = norm; IsAlwaysRelevant = isFailureMechanismAlwaysRelevant; } /// /// Gets the name of the assessment for which to configure the . /// - public string Assessment { get; private set; } + public string Assessment + { + get + { + return failureMechanism.Name; + } + } /// + /// Returns the code of the assessment for which to configure the + /// + public string AssessmentCode + { + get + { + return failureMechanism.Code; + } + } + + /// /// Gets the amount of contribution as a percentage. /// - public double Contribution { get; private set; } + public double Contribution + { + get + { + return failureMechanism.Contribution; + } + } /// /// Gets or sets the norm of the complete assessment section. @@ -108,7 +130,7 @@ /// relevant. When true, then cannot be set to false. /// public bool IsAlwaysRelevant { get; private set; } - + /// /// Notifies the observers for the wrapped . /// Index: Ringtoets/Common/src/Ringtoets.Common.Data/FailureMechanism/FailureMechanismBase.cs =================================================================== diff -u -rfff12e249602fb700b2854c14a3b7cdd0b73c023 -r13fcf9943a26918929a3ada0363c2414480db077 --- Ringtoets/Common/src/Ringtoets.Common.Data/FailureMechanism/FailureMechanismBase.cs (.../FailureMechanismBase.cs) (revision fff12e249602fb700b2854c14a3b7cdd0b73c023) +++ Ringtoets/Common/src/Ringtoets.Common.Data/FailureMechanism/FailureMechanismBase.cs (.../FailureMechanismBase.cs) (revision 13fcf9943a26918929a3ada0363c2414480db077) @@ -44,8 +44,16 @@ /// /// The name of the failure mechanism. /// The code of the failure mechanism. + /// Thrown when either: + /// + /// is null or empty. + /// is null or empty. + /// + /// protected FailureMechanismBase(string failureMechanismName, string failureMechanismCode) { + ValidateParameters(failureMechanismName, failureMechanismCode); + Name = failureMechanismName; Code = failureMechanismCode; sections = new List(); @@ -122,6 +130,19 @@ sectionResults.Clear(); } + private static void ValidateParameters(string failureMechanismName, string failureMechanismCode) + { + var parameterIsRequired = "Parameter is required."; + if (string.IsNullOrEmpty(failureMechanismName)) + { + throw new ArgumentException(parameterIsRequired, "failureMechanismName"); + } + if (string.IsNullOrEmpty(failureMechanismCode)) + { + throw new ArgumentException(parameterIsRequired, "failureMechanismCode"); + } + } + /// /// Inserts the section to while maintaining connectivity /// order (neighboring have same start and Index: Ringtoets/Common/test/Ringtoets.Common.Data.Test/Contribution/FailureMechanismContributionItemTest.cs =================================================================== diff -u -r8efe7a79774f6a946a58c45f052c975d43304fb3 -r13fcf9943a26918929a3ada0363c2414480db077 --- Ringtoets/Common/test/Ringtoets.Common.Data.Test/Contribution/FailureMechanismContributionItemTest.cs (.../FailureMechanismContributionItemTest.cs) (revision 8efe7a79774f6a946a58c45f052c975d43304fb3) +++ Ringtoets/Common/test/Ringtoets.Common.Data.Test/Contribution/FailureMechanismContributionItemTest.cs (.../FailureMechanismContributionItemTest.cs) (revision 13fcf9943a26918929a3ada0363c2414480db077) @@ -65,6 +65,7 @@ { // Setup string name = "SomeName"; + string code = "SN"; var random = new Random(21); double contribution = random.Next(1, 100); var norm = random.Next(1, int.MaxValue); @@ -73,6 +74,7 @@ var failureMechanism = mockRepository.StrictMock(); failureMechanism.Expect(fm => fm.Name).Return(name); + failureMechanism.Expect(fm => fm.Code).Return(code); failureMechanism.Expect(fm => fm.Contribution).Return(contribution); failureMechanism.Expect(fm => fm.IsRelevant).Return(isRelevant); @@ -84,6 +86,7 @@ // Assert Assert.AreEqual(name, result.Assessment); Assert.AreEqual(contribution, result.Contribution); + Assert.AreEqual(code, result.AssessmentCode); Assert.AreEqual(norm, result.Norm); Assert.IsFalse(result.IsAlwaysRelevant); Assert.AreEqual(isRelevant, result.IsRelevant); @@ -96,13 +99,15 @@ { // Setup string name = "SomeName"; + string code = "SN"; var random = new Random(21); double contribution = random.Next(1, 100); var norm = random.Next(1, int.MaxValue); const bool isRelevant = false; var failureMechanism = mockRepository.StrictMock(); failureMechanism.Expect(fm => fm.Name).Return(name); + failureMechanism.Expect(fm => fm.Code).Return(code); failureMechanism.Expect(fm => fm.Contribution).Return(contribution); failureMechanism.Stub(fm => fm.IsRelevant).Return(isRelevant); @@ -114,6 +119,7 @@ // Assert Assert.AreEqual(name, result.Assessment); Assert.AreEqual(contribution, result.Contribution); + Assert.AreEqual(code, result.AssessmentCode); Assert.AreEqual(norm, result.Norm); Assert.IsTrue(result.IsAlwaysRelevant); Assert.IsTrue(result.IsRelevant); @@ -132,7 +138,6 @@ var failureMechanism = mockRepository.StrictMock(); - failureMechanism.Expect(fm => fm.Name).Return(name); failureMechanism.Expect(fm => fm.Contribution).Return(contribution); mockRepository.ReplayAll(); Index: Ringtoets/Common/test/Ringtoets.Common.Data.Test/Contribution/FailureMechanismContributionTest.cs =================================================================== diff -u -r8efe7a79774f6a946a58c45f052c975d43304fb3 -r13fcf9943a26918929a3ada0363c2414480db077 --- Ringtoets/Common/test/Ringtoets.Common.Data.Test/Contribution/FailureMechanismContributionTest.cs (.../FailureMechanismContributionTest.cs) (revision 8efe7a79774f6a946a58c45f052c975d43304fb3) +++ Ringtoets/Common/test/Ringtoets.Common.Data.Test/Contribution/FailureMechanismContributionTest.cs (.../FailureMechanismContributionTest.cs) (revision 13fcf9943a26918929a3ada0363c2414480db077) @@ -160,7 +160,7 @@ var contribution = random.Next(1, 100); var failureMechanism = mockRepository.StrictMock(); failureMechanism.Expect(fm => fm.Name).Return(name); - failureMechanism.Expect(fm => fm.Contribution).Return(contribution); + failureMechanism.Expect(fm => fm.Contribution).Return(contribution).Repeat.Twice(); failureMechanisms.Add(failureMechanism); failureMechanismNames.Add(name); Index: Ringtoets/Common/test/Ringtoets.Common.Data.Test/FailureMechanism/FailureMechanismBaseTest.cs =================================================================== diff -u -r6f20aae03e9fecf0d90cf930d06ed72bc4633749 -r13fcf9943a26918929a3ada0363c2414480db077 --- Ringtoets/Common/test/Ringtoets.Common.Data.Test/FailureMechanism/FailureMechanismBaseTest.cs (.../FailureMechanismBaseTest.cs) (revision 6f20aae03e9fecf0d90cf930d06ed72bc4633749) +++ Ringtoets/Common/test/Ringtoets.Common.Data.Test/FailureMechanism/FailureMechanismBaseTest.cs (.../FailureMechanismBaseTest.cs) (revision 13fcf9943a26918929a3ada0363c2414480db077) @@ -36,6 +36,32 @@ public class FailureMechanismBaseTest { [Test] + [TestCase("")] + [TestCase(null)] + public void Constructor_NullOrEmptyName_ThrowsArgumentException(string name) + { + // Call + TestDelegate test = () => new SimpleFailureMechanismBase(name, "testCode"); + + // Assert + var paramName = Assert.Throws(test).ParamName; + Assert.AreEqual("failureMechanismName", paramName); + } + + [Test] + [TestCase("")] + [TestCase(null)] + public void Constructor_NullOrEmptyCode_ThrowsArgumentException(string code) + { + // Call + TestDelegate test = () => new SimpleFailureMechanismBase("testName", code); + + // Assert + var paramName = Assert.Throws(test).ParamName; + Assert.AreEqual("failureMechanismCode", paramName); + } + + [Test] public void Constructor_ExpectedValues() { // Setup @@ -63,7 +89,7 @@ public void IsRelevant_SetNewValue_GetNewlySetValue(bool relevant) { // Setup - var failureMechanism = new SimpleFailureMechanismBase("A", string.Empty); + var failureMechanism = new SimpleFailureMechanismBase(); // Call failureMechanism.IsRelevant = relevant; @@ -80,7 +106,7 @@ public void Contribution_ValueOutsideValidRegion_ThrowsArgumentException(double value) { // Setup - var failureMechanism = new SimpleFailureMechanismBase(string.Empty, string.Empty); + var failureMechanism = new SimpleFailureMechanismBase(); // Call TestDelegate test = () => failureMechanism.Contribution = value; @@ -96,7 +122,7 @@ public void Contribution_ValueIntsideValidRegion_DoesNotThrow(double value) { // Setup - var failureMechanism = new SimpleFailureMechanismBase(string.Empty, string.Empty); + var failureMechanism = new SimpleFailureMechanismBase(); // Call TestDelegate test = () => failureMechanism.Contribution = value; @@ -109,7 +135,7 @@ public void AddSection_SectionIsNull_ThrowArgumentNullException() { // Setup - var failureMechanism = new SimpleFailureMechanismBase(string.Empty, string.Empty); + var failureMechanism = new SimpleFailureMechanismBase(); // Call TestDelegate call = () => failureMechanism.AddSection(null); @@ -122,7 +148,7 @@ public void AddSection_FirstSectionAdded_SectionAddedToSections() { // Setup - var failureMechanism = new SimpleFailureMechanismBase(string.Empty, string.Empty); + var failureMechanism = new SimpleFailureMechanismBase(); var section = new FailureMechanismSection("A", new[] { @@ -144,7 +170,7 @@ public void AddSection_SecondSectionEndConnectingToStartOfFirst_Section2InsertedBeforeSection1() { // Setup - var failureMechanism = new SimpleFailureMechanismBase(string.Empty, string.Empty); + var failureMechanism = new SimpleFailureMechanismBase(); const int matchingX = 1; const int matchingY = 2; @@ -176,7 +202,7 @@ public void AddSection_SecondSectionStartConnectingToEndOfFirst_Section2AddedAfterSection1() { // Setup - var failureMechanism = new SimpleFailureMechanismBase(string.Empty, string.Empty); + var failureMechanism = new SimpleFailureMechanismBase(); const int matchingX = 1; const int matchingY = 2; @@ -208,7 +234,7 @@ public void AddSection_SecondSectionDoesNotConnectToFirst_ThrowArgumentException() { // Setup - var failureMechanism = new SimpleFailureMechanismBase(string.Empty, string.Empty); + var failureMechanism = new SimpleFailureMechanismBase(); var section1 = new FailureMechanismSection("A", new[] { @@ -235,7 +261,7 @@ public void AddSection_SectionValid_SectionAddedSectionResults() { // Setup - var failureMechanism = new SimpleFailureMechanismBase(string.Empty, string.Empty); + var failureMechanism = new SimpleFailureMechanismBase(); var section = new FailureMechanismSection("A", new[] { @@ -257,7 +283,7 @@ public void SectionResults_Always_ReturnsExpectedSectionResultsAfterAddingSections() { // Setup - var failureMechanism = new SimpleFailureMechanismBase(string.Empty, string.Empty); + var failureMechanism = new SimpleFailureMechanismBase(); var section = new FailureMechanismSection("A", new[] { @@ -295,7 +321,7 @@ new Point2D(3.3, 4.4) }); - var failureMechanism = new SimpleFailureMechanismBase("A", string.Empty); + var failureMechanism = new SimpleFailureMechanismBase(); failureMechanism.AddSection(section); // Call @@ -307,7 +333,7 @@ private class SimpleFailureMechanismBase : FailureMechanismBase { - public SimpleFailureMechanismBase(string failureMechanismName, string failureMechanismCode) : base(failureMechanismName, failureMechanismCode) {} + public SimpleFailureMechanismBase(string failureMechanismName = "SomeName", string failureMechanismCode = "SomeCode") : base(failureMechanismName, failureMechanismCode) {} public override IEnumerable Calculations { Index: Ringtoets/Integration/src/Ringtoets.Integration.Data/AssessmentSection.cs =================================================================== diff -u -r7206def3cee84d518d3f7ea1b76e05e3163b8aea -r13fcf9943a26918929a3ada0363c2414480db077 --- Ringtoets/Integration/src/Ringtoets.Integration.Data/AssessmentSection.cs (.../AssessmentSection.cs) (revision 7206def3cee84d518d3f7ea1b76e05e3163b8aea) +++ Ringtoets/Integration/src/Ringtoets.Integration.Data/AssessmentSection.cs (.../AssessmentSection.cs) (revision 13fcf9943a26918929a3ada0363c2414480db077) @@ -55,16 +55,16 @@ PipingFailureMechanism = new PipingFailureMechanism(); GrassCoverErosionInwards = new GrassCoverErosionInwardsFailureMechanism(); - MacrostabilityInwards = new FailureMechanismPlaceholder(Resources.MacrostabilityInwardFailureMechanism_DisplayName); - StabilityStoneCover = new FailureMechanismPlaceholder(Resources.StabilityStoneCoverFailureMechanism_DisplayName); - WaveImpactAsphaltCover = new FailureMechanismPlaceholder(Resources.WaveImpactAsphaltCoverFailureMechanism_DisplayName); - GrassCoverErosionOutside = new FailureMechanismPlaceholder(Resources.GrassCoverErosionOutsideFailureMechanism_DisplayName); - GrassCoverSlipOffOutside = new FailureMechanismPlaceholder(Resources.GrassCoverSlipOffOutsideFailureMechanism_DisplayName); - HeightStructure = new FailureMechanismPlaceholder(Resources.HeightStructureFailureMechanism_DisplayName); - ClosingStructure = new FailureMechanismPlaceholder(Resources.ClosingStructureFailureMechanism_DisplayName); - StrengthStabilityPointConstruction = new FailureMechanismPlaceholder(Resources.StrengthStabilityPointConstructionFailureMechanism_DisplayName); - PipingStructure = new FailureMechanismPlaceholder(Resources.PipingStructureFailureMechanism_DisplayName); - DuneErosion = new FailureMechanismPlaceholder(Resources.DuneErosionFailureMechanism_DisplayName); + MacrostabilityInwards = new FailureMechanismPlaceholder(Resources.MacrostabilityInwardFailureMechanism_DisplayName, Resources.MacrostabilityInwardFailureMechanism_Code); + StabilityStoneCover = new FailureMechanismPlaceholder(Resources.StabilityStoneCoverFailureMechanism_DisplayName, Resources.StabilityStoneCoverFailureMechanism_Code); + WaveImpactAsphaltCover = new FailureMechanismPlaceholder(Resources.WaveImpactAsphaltCoverFailureMechanism_DisplayName, Resources.WaveImpactAsphaltCoverFailureMechanism_Code); + GrassCoverErosionOutside = new FailureMechanismPlaceholder(Resources.GrassCoverErosionOutsideFailureMechanism_DisplayName, Resources.GrassCoverErosionOutsideFailureMechanism_Code); + GrassCoverSlipOffOutside = new FailureMechanismPlaceholder(Resources.GrassCoverSlipOffOutsideFailureMechanism_DisplayName, Resources.GrassCoverSlipOffOutsideFailureMechanism_Code); + HeightStructure = new FailureMechanismPlaceholder(Resources.HeightStructureFailureMechanism_DisplayName, Resources.HeightStructureFailureMechanism_Code); + ClosingStructure = new FailureMechanismPlaceholder(Resources.ClosingStructureFailureMechanism_DisplayName, Resources.ClosingStructureFailureMechanism_Code); + StrengthStabilityPointConstruction = new FailureMechanismPlaceholder(Resources.StrengthStabilityPointConstructionFailureMechanism_DisplayName, Resources.StrengthStabilityPointConstructionFailureMechanism_Code); + PipingStructure = new FailureMechanismPlaceholder(Resources.PipingStructureFailureMechanism_DisplayName, Resources.PipingStructureFailureMechanism_Code); + DuneErosion = new FailureMechanismPlaceholder(Resources.DuneErosionFailureMechanism_DisplayName, Resources.DuneErosionFailureMechanism_Code); FailureMechanismContribution = new FailureMechanismContribution(GetFailureMechanisms(), 30, 30000); ChangeComposition(composition); Index: Ringtoets/Integration/src/Ringtoets.Integration.Data/Placeholders/FailureMechanismPlaceholder.cs =================================================================== diff -u -rf5e1194ee412e86277cee388a75c39db189f2b3e -r13fcf9943a26918929a3ada0363c2414480db077 --- Ringtoets/Integration/src/Ringtoets.Integration.Data/Placeholders/FailureMechanismPlaceholder.cs (.../FailureMechanismPlaceholder.cs) (revision f5e1194ee412e86277cee388a75c39db189f2b3e) +++ Ringtoets/Integration/src/Ringtoets.Integration.Data/Placeholders/FailureMechanismPlaceholder.cs (.../FailureMechanismPlaceholder.cs) (revision 13fcf9943a26918929a3ada0363c2414480db077) @@ -19,6 +19,7 @@ // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. +using System; using System.Collections.Generic; using Ringtoets.Common.Data.Calculation; using Ringtoets.Common.Data.FailureMechanism; @@ -35,9 +36,16 @@ /// /// Initializes a new instance of the class. /// - /// The placeholder's name. - public FailureMechanismPlaceholder(string name) - : base(name, string.Empty) + /// The name for the placeholder. + /// The code for the placeholder. + /// Thrown when either: + /// + /// is null or empty. + /// is null or empty. + /// + /// + public FailureMechanismPlaceholder(string name, string code) + : base(name, code) { Locations = new InputPlaceholder(RingtoetsCommonDataResources.FailureMechanism_Locations_DisplayName); BoundaryConditions = new InputPlaceholder(RingtoetsCommonDataResources.FailureMechanism_BoundaryConditions_DisplayName); Index: Ringtoets/Integration/src/Ringtoets.Integration.Data/Properties/Resources.Designer.cs =================================================================== diff -u -r7206def3cee84d518d3f7ea1b76e05e3163b8aea -r13fcf9943a26918929a3ada0363c2414480db077 --- Ringtoets/Integration/src/Ringtoets.Integration.Data/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 7206def3cee84d518d3f7ea1b76e05e3163b8aea) +++ Ringtoets/Integration/src/Ringtoets.Integration.Data/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 13fcf9943a26918929a3ada0363c2414480db077) @@ -70,6 +70,15 @@ } /// + /// Looks up a localized string similar to BSKW. + /// + public static string ClosingStructureFailureMechanism_Code { + get { + return ResourceManager.GetString("ClosingStructureFailureMechanism_Code", resourceCulture); + } + } + + /// /// Looks up a localized string similar to Kunstwerken - Betrouwbaarheid sluiting kunstwerk. /// public static string ClosingStructureFailureMechanism_DisplayName { @@ -79,6 +88,15 @@ } /// + /// Looks up a localized string similar to DA. + /// + public static string DuneErosionFailureMechanism_Code { + get { + return ResourceManager.GetString("DuneErosionFailureMechanism_Code", resourceCulture); + } + } + + /// /// Looks up a localized string similar to Duinwaterkering - Duinafslag. /// public static string DuneErosionFailureMechanism_DisplayName { @@ -97,6 +115,15 @@ } /// + /// Looks up a localized string similar to GEBU. + /// + public static string GrassCoverErosionOutsideFailureMechanism_Code { + get { + return ResourceManager.GetString("GrassCoverErosionOutsideFailureMechanism_Code", resourceCulture); + } + } + + /// /// Looks up a localized string similar to Dijken en dammen - Grasbekleding erosie buitentalud. /// public static string GrassCoverErosionOutsideFailureMechanism_DisplayName { @@ -106,6 +133,15 @@ } /// + /// Looks up a localized string similar to GABU. + /// + public static string GrassCoverSlipOffOutsideFailureMechanism_Code { + get { + return ResourceManager.GetString("GrassCoverSlipOffOutsideFailureMechanism_Code", resourceCulture); + } + } + + /// /// Looks up a localized string similar to Dijken en dammen - Grasbekleding afschuiven buitentalud. /// public static string GrassCoverSlipOffOutsideFailureMechanism_DisplayName { @@ -115,6 +151,15 @@ } /// + /// Looks up a localized string similar to HTKW. + /// + public static string HeightStructureFailureMechanism_Code { + get { + return ResourceManager.GetString("HeightStructureFailureMechanism_Code", resourceCulture); + } + } + + /// /// Looks up a localized string similar to Kunstwerken - Hoogte kunstwerk. /// public static string HeightStructureFailureMechanism_DisplayName { @@ -133,6 +178,15 @@ } /// + /// Looks up a localized string similar to STBI. + /// + public static string MacrostabilityInwardFailureMechanism_Code { + get { + return ResourceManager.GetString("MacrostabilityInwardFailureMechanism_Code", resourceCulture); + } + } + + /// /// Looks up a localized string similar to Dijken en dammen - Macrostabiliteit binnenwaarts. /// public static string MacrostabilityInwardFailureMechanism_DisplayName { @@ -142,6 +196,15 @@ } /// + /// Looks up a localized string similar to PKW. + /// + public static string PipingStructureFailureMechanism_Code { + get { + return ResourceManager.GetString("PipingStructureFailureMechanism_Code", resourceCulture); + } + } + + /// /// Looks up a localized string similar to Kunstwerken - Piping bij kunstwerk. /// public static string PipingStructureFailureMechanism_DisplayName { @@ -151,6 +214,15 @@ } /// + /// Looks up a localized string similar to ZST. + /// + public static string StabilityStoneCoverFailureMechanism_Code { + get { + return ResourceManager.GetString("StabilityStoneCoverFailureMechanism_Code", resourceCulture); + } + } + + /// /// Looks up a localized string similar to Dijken en dammen - Stabiliteit steenzetting. /// public static string StabilityStoneCoverFailureMechanism_DisplayName { @@ -160,6 +232,15 @@ } /// + /// Looks up a localized string similar to STKWp. + /// + public static string StrengthStabilityPointConstructionFailureMechanism_Code { + get { + return ResourceManager.GetString("StrengthStabilityPointConstructionFailureMechanism_Code", resourceCulture); + } + } + + /// /// Looks up a localized string similar to Kunstwerken - Sterkte en stabiliteit puntconstructies. /// public static string StrengthStabilityPointConstructionFailureMechanism_DisplayName { @@ -169,6 +250,15 @@ } /// + /// Looks up a localized string similar to AGK. + /// + public static string WaveImpactAsphaltCoverFailureMechanism_Code { + get { + return ResourceManager.GetString("WaveImpactAsphaltCoverFailureMechanism_Code", resourceCulture); + } + } + + /// /// Looks up a localized string similar to Dijken en dammen - Golfklappen op asfaltbekledingen. /// public static string WaveImpactAsphaltCoverFailureMechanism_DisplayName { Index: Ringtoets/Integration/src/Ringtoets.Integration.Data/Properties/Resources.resx =================================================================== diff -u -r7206def3cee84d518d3f7ea1b76e05e3163b8aea -r13fcf9943a26918929a3ada0363c2414480db077 --- Ringtoets/Integration/src/Ringtoets.Integration.Data/Properties/Resources.resx (.../Resources.resx) (revision 7206def3cee84d518d3f7ea1b76e05e3163b8aea) +++ Ringtoets/Integration/src/Ringtoets.Integration.Data/Properties/Resources.resx (.../Resources.resx) (revision 13fcf9943a26918929a3ada0363c2414480db077) @@ -156,4 +156,34 @@ Dijken en dammen - Stabiliteit steenzetting + + STBI + + + ZST + + + AGK + + + GEBU + + + GABU + + + HTKW + + + BSKW + + + STKWp + + + PKW + + + DA + \ No newline at end of file Index: Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/FailureMechanismContributionView.cs =================================================================== diff -u -ra1bdc4941a7918bf20b1ea7247a725aa568a2b68 -r13fcf9943a26918929a3ada0363c2414480db077 --- Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/FailureMechanismContributionView.cs (.../FailureMechanismContributionView.cs) (revision a1bdc4941a7918bf20b1ea7247a725aa568a2b68) +++ Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/FailureMechanismContributionView.cs (.../FailureMechanismContributionView.cs) (revision 13fcf9943a26918929a3ada0363c2414480db077) @@ -340,6 +340,16 @@ ReadOnly = true }; + var assessmentCode = TypeUtils.GetMemberName(fmci => fmci.Code); + var assessmentCodeColumn = new DataGridViewTextBoxColumn + { + DataPropertyName = assessmentCode, + HeaderText = CommonGuiResources.FailureMechanismContributionView_GridColumn_AssessmentCode, + Name = string.Format(columnNameFormat, assessmentCode), + AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCellsExceptHeader, + ReadOnly = true + }; + var contributionName = TypeUtils.GetMemberName(fmci => fmci.Contribution); var probabilityColumn = new DataGridViewTextBoxColumn { @@ -365,7 +375,7 @@ ReadOnly = true }; probabilityDistributionGrid.AutoGenerateColumns = false; - probabilityDistributionGrid.Columns.AddRange(isRelevantColumn, assessmentColumn, probabilityColumn, probabilityPerYearColumn); + probabilityDistributionGrid.Columns.AddRange(isRelevantColumn, assessmentColumn, assessmentCodeColumn, probabilityColumn, probabilityPerYearColumn); } private void DataGridViewCurrentCellDirtyStateChanged(object sender, EventArgs e) @@ -485,6 +495,14 @@ } } + public string Code + { + get + { + return item.AssessmentCode; + } + } + public double Contribution { get Index: Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/AssessmentSectionTest.cs =================================================================== diff -u -r7206def3cee84d518d3f7ea1b76e05e3163b8aea -r13fcf9943a26918929a3ada0363c2414480db077 --- Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/AssessmentSectionTest.cs (.../AssessmentSectionTest.cs) (revision 7206def3cee84d518d3f7ea1b76e05e3163b8aea) +++ Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/AssessmentSectionTest.cs (.../AssessmentSectionTest.cs) (revision 13fcf9943a26918929a3ada0363c2414480db077) @@ -49,31 +49,63 @@ var grassErosionInsideName = "Dijken en dammen - Grasbekleding erosie kruin en binnentalud"; var macrostabilityInwardName = "Dijken en dammen - Macrostabiliteit binnenwaarts"; var stoneRevetmentName = "Dijken en dammen - Stabiliteit steenzetting"; - var waveImpactAsphalt = "Dijken en dammen - Golfklappen op asfaltbekledingen"; + var waveImpactAsphaltName = "Dijken en dammen - Golfklappen op asfaltbekledingen"; var grassCoverErosionOutwardsName = "Dijken en dammen - Grasbekleding erosie buitentalud"; var grassCoverSlipOffOutsideName = "Dijken en dammen - Grasbekleding afschuiven buitentalud"; var heightStructureName = "Kunstwerken - Hoogte kunstwerk"; var closingStructureName = "Kunstwerken - Betrouwbaarheid sluiting kunstwerk"; var pipingStructureName = "Kunstwerken - Piping bij kunstwerk"; var strengthStabilityPointConstructionName = "Kunstwerken - Sterkte en stabiliteit puntconstructies"; var duneErosionName = "Duinwaterkering - Duinafslag"; + var otherName = "Overig"; + var pipingCode = "STPH"; + var grassErosionInsideCode = "GEKB"; + var macrostabilityInwardCode = "STBI"; + var stoneRevetmentCode = "ZST"; + var waveImpactAsphaltCode = "AGK"; + var grassCoverErosionOutwardsCode = "GEBU"; + var grassCoverSlipOffOutsideCode = "GABU"; + var heightStructureCode = "HTKW"; + var closingStructureCode = "BSKW"; + var pipingStructureCode = "PKW"; + var strengthStabilityPointConstructionCode = "STKWp"; + var duneErosionCode = "DA"; + var otherCode = "NWOoc"; + var names = new[] { pipingName, grassErosionInsideName, macrostabilityInwardName, stoneRevetmentName, - waveImpactAsphalt, + waveImpactAsphaltName, grassCoverErosionOutwardsName, grassCoverSlipOffOutsideName, heightStructureName, closingStructureName, pipingStructureName, strengthStabilityPointConstructionName, duneErosionName, - "Overig" + otherName }; + + var codes = new[] + { + pipingCode, + grassErosionInsideCode, + macrostabilityInwardCode, + stoneRevetmentCode, + waveImpactAsphaltCode, + grassCoverErosionOutwardsCode, + grassCoverSlipOffOutsideCode, + heightStructureCode, + closingStructureCode, + pipingStructureCode, + strengthStabilityPointConstructionCode, + duneErosionCode, + otherCode + }; // Assert Assert.IsInstanceOf(section); @@ -93,7 +125,7 @@ Assert.IsInstanceOf(section.GrassCoverErosionInwards); Assert.AreEqual(macrostabilityInwardName, section.MacrostabilityInwards.Name); Assert.AreEqual(stoneRevetmentName, section.StabilityStoneCover.Name); - Assert.AreEqual(waveImpactAsphalt, section.WaveImpactAsphaltCover.Name); + Assert.AreEqual(waveImpactAsphaltName, section.WaveImpactAsphaltCover.Name); Assert.AreEqual(grassCoverErosionOutwardsName, section.GrassCoverErosionOutside.Name); Assert.AreEqual(grassCoverSlipOffOutsideName, section.GrassCoverSlipOffOutside.Name); Assert.AreEqual(heightStructureName, section.HeightStructure.Name); @@ -105,6 +137,7 @@ AssertExpectedContributions(composition, section); Assert.AreEqual(names, section.FailureMechanismContribution.Distribution.Select(d => d.Assessment)); + Assert.AreEqual(codes, section.FailureMechanismContribution.Distribution.Select(d => d.AssessmentCode)); Assert.AreEqual(Enumerable.Repeat(30000.0, 13), section.FailureMechanismContribution.Distribution.Select(d => d.Norm)); Assert.AreEqual(30000.0, section.PipingFailureMechanism.NormProbabilityInput.Norm); Index: Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/Placeholders/FailureMechanismPlaceholderTest.cs =================================================================== diff -u -rfec99b77571cc0cf37b60f5ca257394714fde1d7 -r13fcf9943a26918929a3ada0363c2414480db077 --- Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/Placeholders/FailureMechanismPlaceholderTest.cs (.../FailureMechanismPlaceholderTest.cs) (revision fec99b77571cc0cf37b60f5ca257394714fde1d7) +++ Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/Placeholders/FailureMechanismPlaceholderTest.cs (.../FailureMechanismPlaceholderTest.cs) (revision 13fcf9943a26918929a3ada0363c2414480db077) @@ -19,6 +19,7 @@ // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. +using System; using NUnit.Framework; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Integration.Data.Placeholders; @@ -29,17 +30,45 @@ public class FailureMechanismPlaceholderTest { [Test] - public void DefaultConstructor_ExpectedValues() + [TestCase("")] + [TestCase(null)] + public void Constructor_NullOrEmptyName_ThrowsArgumentException(string name) { + // Call + TestDelegate test = () => new FailureMechanismPlaceholder(name, "testCode"); + + // Assert + var paramName = Assert.Throws(test).ParamName; + Assert.AreEqual("failureMechanismName", paramName); + } + + [Test] + [TestCase("")] + [TestCase(null)] + public void Constructor_NullOrEmptyCode_ThrowsArgumentException(string code) + { + // Call + TestDelegate test = () => new FailureMechanismPlaceholder("testName", code); + + // Assert + var paramName = Assert.Throws(test).ParamName; + Assert.AreEqual("failureMechanismCode", paramName); + } + + [Test] + public void Constructor_WithNameAndCode_PropertiesSet() + { // Setup const string expectedName = "testName"; + const string expectedCode = "testCode"; // Call - var failureMechanism = new FailureMechanismPlaceholder(expectedName); + var failureMechanism = new FailureMechanismPlaceholder(expectedName, expectedCode); // Assert Assert.IsInstanceOf(failureMechanism); Assert.AreEqual(expectedName, failureMechanism.Name); + Assert.AreEqual(expectedCode, failureMechanism.Code); CollectionAssert.IsEmpty(failureMechanism.Sections); Assert.AreEqual("Locaties", failureMechanism.Locations.Name); Assert.AreEqual("Randvoorwaarden", failureMechanism.BoundaryConditions.Name); Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/PresentationObjects/FailureMechanismPlaceholderContextTest.cs =================================================================== diff -u -rfec99b77571cc0cf37b60f5ca257394714fde1d7 -r13fcf9943a26918929a3ada0363c2414480db077 --- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/PresentationObjects/FailureMechanismPlaceholderContextTest.cs (.../FailureMechanismPlaceholderContextTest.cs) (revision fec99b77571cc0cf37b60f5ca257394714fde1d7) +++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/PresentationObjects/FailureMechanismPlaceholderContextTest.cs (.../FailureMechanismPlaceholderContextTest.cs) (revision 13fcf9943a26918929a3ada0363c2414480db077) @@ -39,7 +39,7 @@ var assessmentSection = mocks.Stub(); mocks.ReplayAll(); - var failureMechanism = new FailureMechanismPlaceholder("A"); + var failureMechanism = new FailureMechanismPlaceholder("A", "C"); // Call var context = new FailureMechanismPlaceholderContext(failureMechanism, assessmentSection); Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/TreeNodeInfos/AssessmentSectionTreeNodeInfoTest.cs =================================================================== diff -u -rfd98bcf5d1811dbcad2cc0e292a4349f8402b83a -r13fcf9943a26918929a3ada0363c2414480db077 --- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/TreeNodeInfos/AssessmentSectionTreeNodeInfoTest.cs (.../AssessmentSectionTreeNodeInfoTest.cs) (revision fd98bcf5d1811dbcad2cc0e292a4349f8402b83a) +++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/TreeNodeInfos/AssessmentSectionTreeNodeInfoTest.cs (.../AssessmentSectionTreeNodeInfoTest.cs) (revision 13fcf9943a26918929a3ada0363c2414480db077) @@ -142,7 +142,7 @@ var failureMechanisms = new IFailureMechanism[] { new PipingFailureMechanism(), - new FailureMechanismPlaceholder("A") + new FailureMechanismPlaceholder("A", "C") }; var contribution = new FailureMechanismContribution(failureMechanisms, 10.0, 2); Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/TreeNodeInfos/FailureMechanismPlaceholderTreeNodeInfoTest.cs =================================================================== diff -u -r6833a6c92024007966c7fd99a955b234653f2ef8 -r13fcf9943a26918929a3ada0363c2414480db077 --- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/TreeNodeInfos/FailureMechanismPlaceholderTreeNodeInfoTest.cs (.../FailureMechanismPlaceholderTreeNodeInfoTest.cs) (revision 6833a6c92024007966c7fd99a955b234653f2ef8) +++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/TreeNodeInfos/FailureMechanismPlaceholderTreeNodeInfoTest.cs (.../FailureMechanismPlaceholderTreeNodeInfoTest.cs) (revision 13fcf9943a26918929a3ada0363c2414480db077) @@ -89,7 +89,7 @@ mocks.ReplayAll(); var testName = "ttt"; - var placeholder = new FailureMechanismPlaceholder(testName); + var placeholder = new FailureMechanismPlaceholder(testName, "C"); var placeholderContext = new FailureMechanismPlaceholderContext(placeholder, assessmentSection); using (var plugin = new RingtoetsGuiPlugin()) @@ -131,7 +131,7 @@ var assessmentSection = mocks.Stub(); mocks.ReplayAll(); - var failureMechanism = new FailureMechanismPlaceholder("C"); + var failureMechanism = new FailureMechanismPlaceholder("C", "C"); var context = new FailureMechanismPlaceholderContext(failureMechanism, assessmentSection); // Call @@ -155,7 +155,7 @@ { var info = GetInfo(plugin); - var failureMechanism = new FailureMechanismPlaceholder("test"); + var failureMechanism = new FailureMechanismPlaceholder("test", "C"); failureMechanism.AddSection(new FailureMechanismSection("A", new[] { new Point2D(1, 2), @@ -206,7 +206,7 @@ { var info = GetInfo(plugin); - var failureMechanism = new FailureMechanismPlaceholder("test") + var failureMechanism = new FailureMechanismPlaceholder("test", "C") { IsRelevant = false }; @@ -234,7 +234,7 @@ // Setup using (var treeView = new TreeViewControl()) { - var failureMechanism = new FailureMechanismPlaceholder("A"); + var failureMechanism = new FailureMechanismPlaceholder("A", "C"); var assessmentSection = mocks.Stub(); var context = new FailureMechanismPlaceholderContext(failureMechanism, assessmentSection); @@ -281,7 +281,7 @@ // Setup using (var treeView = new TreeViewControl()) { - var failureMechanism = new FailureMechanismPlaceholder("A") + var failureMechanism = new FailureMechanismPlaceholder("A", "C") { IsRelevant = false }; @@ -324,7 +324,7 @@ using (var treeView = new TreeViewControl()) { var assessmentSection = mocks.Stub(); - var failureMechanism = new FailureMechanismPlaceholder("A"); + var failureMechanism = new FailureMechanismPlaceholder("A", "C"); var context = new FailureMechanismPlaceholderContext(failureMechanism, assessmentSection); var menuBuilderMock = new CustomItemsOnlyContextMenuBuilder(); @@ -373,7 +373,7 @@ var failureMechanismObserver = mocks.Stub(); failureMechanismObserver.Expect(o => o.UpdateObserver()); - var failureMechanism = new FailureMechanismPlaceholder("A") + var failureMechanism = new FailureMechanismPlaceholder("A", "C") { IsRelevant = true }; @@ -420,7 +420,7 @@ var failureMechanismObserver = mocks.Stub(); failureMechanismObserver.Expect(o => o.UpdateObserver()); - var failureMechanism = new FailureMechanismPlaceholder("A") + var failureMechanism = new FailureMechanismPlaceholder("A", "C") { IsRelevant = false }; Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Views/FailureMechanismContributionViewTest.cs =================================================================== diff -u -rbae4f8741e1a0155753e3b3734de500712ee4182 -r13fcf9943a26918929a3ada0363c2414480db077 --- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Views/FailureMechanismContributionViewTest.cs (.../FailureMechanismContributionViewTest.cs) (revision bae4f8741e1a0155753e3b3734de500712ee4182) +++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Views/FailureMechanismContributionViewTest.cs (.../FailureMechanismContributionViewTest.cs) (revision 13fcf9943a26918929a3ada0363c2414480db077) @@ -34,6 +34,7 @@ using Ringtoets.Common.Data.Contribution; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Integration.Data; +using Ringtoets.Integration.Data.Placeholders; using Ringtoets.Integration.Forms.Views; namespace Ringtoets.Integration.Forms.Test.Views @@ -43,6 +44,15 @@ { private Form testForm; + private const string normInputTextBoxName = "normInput"; + private const string dataGridViewControlName = "probabilityDistributionGrid"; + private const string assessmentSectionCompositionComboBoxName = "assessmentSectionCompositionComboBox"; + private const int isRelevantColumnIndex = 0; + private const int nameColumnIndex = 1; + private const int codeColumnIndex = 2; + private const int contributionColumnIndex = 3; + private const int probabilitySpaceColumnIndex = 4; + [SetUp] public override void Setup() { @@ -145,6 +155,93 @@ } [Test] + public void Data_Always_CorrectHeaders() + { + // Setup + var mockRepository = new MockRepository(); + + mockRepository.ReplayAll(); + + using (var distributionView = new FailureMechanismContributionView()) + { + // Call + ShowFormWithView(distributionView); + + // Assert + var dataGridView = (DataGridView)new ControlTester(dataGridViewControlName).TheObject; + + string isRelevantColumnHeaderText = dataGridView.Columns[isRelevantColumnIndex].HeaderText; + Assert.AreEqual("Algemeen filter", isRelevantColumnHeaderText); + + string nameColumnHeaderText = dataGridView.Columns[nameColumnIndex].HeaderText; + Assert.AreEqual("Toetsspoor", nameColumnHeaderText); + + string codeColumnHeaderText = dataGridView.Columns[codeColumnIndex].HeaderText; + Assert.AreEqual("Label", codeColumnHeaderText); + + string contributionColumnHeaderText = dataGridView.Columns[contributionColumnIndex].HeaderText; + Assert.AreEqual("Toegestane bijdrage aan faalkans [%]", contributionColumnHeaderText); + + string probabilitySpaceColumnHeaderText = dataGridView.Columns[probabilitySpaceColumnIndex].HeaderText; + Assert.AreEqual("Faalkansruimte [1/jaar]", probabilitySpaceColumnHeaderText); + } + + mockRepository.VerifyAll(); + } + + [Test] + public void Data_SetToSomeContribution_ShowsColumnsWithData() + { + // Setup + var random = new Random(21); + var otherContribution = random.Next(0, 100); + var mockRepository = new MockRepository(); + + var testName = "testName"; + var testCode = "testCode"; + + var someMechanism = new FailureMechanismPlaceholder(testName, testCode); + var assessmentSection = mockRepository.Stub(); + assessmentSection.Stub(section => section.GetFailureMechanisms()) + .Return(Enumerable.Empty()); + assessmentSection.Stub(section => section.Composition) + .Return(AssessmentSectionComposition.Dike); + + mockRepository.ReplayAll(); + + var initialContribution = new FailureMechanismContribution(new[] + { + someMechanism + }, otherContribution, 100); + + using (var distributionView = new FailureMechanismContributionView + { + AssessmentSection = assessmentSection + }) + { + ShowFormWithView(distributionView); + + // Call + distributionView.Data = initialContribution; + + // Assert + var dataGridView = (DataGridView)new ControlTester(dataGridViewControlName).TheObject; + + DataGridViewRow row = dataGridView.Rows[0]; + var nameCell = (DataGridViewTextBoxCell)row.Cells[nameColumnIndex]; + Assert.AreEqual(testName, nameCell.Value); + + var codeCell = (DataGridViewTextBoxCell)row.Cells[codeColumnIndex]; + Assert.AreEqual(testCode, codeCell.Value); + + var contributionCell = (DataGridViewTextBoxCell)row.Cells[contributionColumnIndex]; + Assert.AreEqual(testCode, codeCell.Value); + } + + mockRepository.VerifyAll(); + } + + [Test] public void Data_SetNewData_DetachesFromOldData() { // Setup @@ -263,6 +360,7 @@ var failureMechanismStub = mockRepository.Stub(); failureMechanismStub.Stub(fm => fm.Name).Return("A"); + failureMechanismStub.Stub(fm => fm.Code).Return("C"); failureMechanismStub.Contribution = 100; failureMechanismStub.IsRelevant = isFailureMechanismRelevant; mockRepository.ReplayAll(); @@ -302,6 +400,7 @@ var failureMechanismStub = mockRepository.Stub(); failureMechanismStub.Stub(fm => fm.Name).Return("A"); + failureMechanismStub.Stub(fm => fm.Code).Return("C"); failureMechanismStub.Contribution = 0; mockRepository.ReplayAll(); @@ -343,6 +442,7 @@ var failureMechanismStub = mockRepository.Stub(); failureMechanismStub.Stub(fm => fm.Name).Return("A"); + failureMechanismStub.Stub(fm => fm.Code).Return("C"); failureMechanismStub.Contribution = contribution; mockRepository.ReplayAll(); @@ -563,6 +663,7 @@ }); failureMechanism1.Contribution = contributionBeforeChange; failureMechanism1.Stub(fm => fm.Name).Return("A"); + failureMechanism1.Stub(fm => fm.Code).Return("C"); failureMechanism1.Stub(fm => fm.Attach(null)).IgnoreArguments(); failureMechanism1.Stub(fm => fm.Detach(null)).IgnoreArguments(); @@ -572,6 +673,7 @@ calculationItem2 }); failureMechanism2.Stub(fm => fm.Name).Return("B"); + failureMechanism2.Stub(fm => fm.Code).Return("C"); failureMechanism2.Stub(fm => fm.Attach(null)).IgnoreArguments(); failureMechanism2.Stub(fm => fm.Detach(null)).IgnoreArguments(); @@ -656,6 +758,7 @@ calculationItem2 }); failureMechanism.Stub(fm => fm.Name).Return("A"); + failureMechanism.Stub(fm => fm.Code).Return("C"); failureMechanism.Stub(fm => fm.Attach(null)).IgnoreArguments(); failureMechanism.Stub(fm => fm.Detach(null)).IgnoreArguments(); @@ -801,6 +904,7 @@ var mocks = new MockRepository(); var failureMechanism = mocks.Stub(); failureMechanism.Stub(fm => fm.Name).Return("A"); + failureMechanism.Stub(fm => fm.Code).Return("C"); failureMechanism.IsRelevant = initialIsRelevant; failureMechanism.Stub(fm => fm.Attach(null)) .IgnoreArguments() @@ -892,6 +996,7 @@ var mocks = new MockRepository(); var failureMechanism = mocks.Stub(); failureMechanism.Stub(fm => fm.Name).Return("A"); + failureMechanism.Stub(fm => fm.Code).Return("C"); failureMechanism.IsRelevant = initialIsRelevant; failureMechanism.Stub(fm => fm.Attach(null)) .IgnoreArguments() @@ -913,6 +1018,7 @@ var relevantFailureMechanism = mocks.Stub(); relevantFailureMechanism.Stub(fm => fm.Name).Return("B"); + relevantFailureMechanism.Stub(fm => fm.Code).Return("C"); relevantFailureMechanism.IsRelevant = true; relevantFailureMechanism.Stub(fm => fm.Attach(null)) .IgnoreArguments(); @@ -921,6 +1027,7 @@ var irrelevantFailureMechanism = mocks.Stub(); irrelevantFailureMechanism.Stub(fm => fm.Name).Return("C"); + irrelevantFailureMechanism.Stub(fm => fm.Code).Return("C"); irrelevantFailureMechanism.IsRelevant = false; irrelevantFailureMechanism.Stub(fm => fm.Attach(null)) .IgnoreArguments(); @@ -1004,19 +1111,14 @@ { FailureMechanismContributionItem expectedElement = itemArray[i]; DataGridViewRow row = dataGridView.Rows[i]; - Assert.AreEqual(expectedElement.IsRelevant, row.Cells[0].Value); - Assert.AreEqual(expectedElement.Assessment, row.Cells[1].Value); - Assert.AreEqual(expectedElement.Contribution, row.Cells[2].Value); - Assert.AreEqual(expectedElement.ProbabilitySpace, row.Cells[3].Value); + Assert.AreEqual(expectedElement.IsRelevant, row.Cells[isRelevantColumnIndex].Value); + Assert.AreEqual(expectedElement.Assessment, row.Cells[nameColumnIndex].Value); + Assert.AreEqual(expectedElement.AssessmentCode, row.Cells[codeColumnIndex].Value); + Assert.AreEqual(expectedElement.Contribution, row.Cells[contributionColumnIndex].Value); + Assert.AreEqual(expectedElement.ProbabilitySpace, row.Cells[probabilitySpaceColumnIndex].Value); } } - private const string normInputTextBoxName = "normInput"; - private const string dataGridViewControlName = "probabilityDistributionGrid"; - private const string assessmentSectionCompositionComboBoxName = "assessmentSectionCompositionComboBox"; - private const int isRelevantColumnIndex = 0; - private const int probabilitySpaceColumnIndex = 3; - private void ShowFormWithView(FailureMechanismContributionView distributionView) { testForm.Controls.Add(distributionView);