Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Read/CalculationGroupEntityReadExtentionsTest.cs =================================================================== diff -u -rb610d57f72acd9222a40ad4a3215c4f0072bfcb1 -rb1c3b9019f8f74992a7f1a681d494ae836ce4976 --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Read/CalculationGroupEntityReadExtentionsTest.cs (.../CalculationGroupEntityReadExtentionsTest.cs) (revision b610d57f72acd9222a40ad4a3215c4f0072bfcb1) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Read/CalculationGroupEntityReadExtentionsTest.cs (.../CalculationGroupEntityReadExtentionsTest.cs) (revision b1c3b9019f8f74992a7f1a681d494ae836ce4976) @@ -564,5 +564,111 @@ Assert.IsTrue(rootChildGroup1Child2.IsNameEditable); CollectionAssert.IsEmpty(rootChildGroup1Child2.Children); } + + [Test] + public void ReadAsStabilityStoneCoverWaveConditionsCalculationGroup_CollectorIsNull_ThrowArgumentNullException() + { + // Setup + var entity = new CalculationGroupEntity(); + + // Call + TestDelegate call = () => entity.ReadAsStabilityStoneCoverWaveConditionsCalculationGroup(null); + + // Assert + string paramName = Assert.Throws(call).ParamName; + Assert.AreEqual("collector", paramName); + } + + [Test] + [TestCase("HAbba", 1)] + [TestCase("Dooeis", 0)] + public void ReadAsStabilityStoneCoverWaveConditionsCalculationGroup_EntityWithoutChildren_CreateCalculationGroupWithoutChildren( + string name, byte isEditable) + { + // Setup + var entity = new CalculationGroupEntity + { + Name = name, + IsEditable = isEditable + }; + + var collector = new ReadConversionCollector(); + + // Call + CalculationGroup group = entity.ReadAsStabilityStoneCoverWaveConditionsCalculationGroup(collector); + + // Assert + Assert.AreEqual(name, group.Name); + Assert.AreEqual(Convert.ToBoolean(isEditable), group.IsNameEditable); + CollectionAssert.IsEmpty(group.Children); + } + + [Test] + public void ReadAsStabilityStoneCoverWaveConditionsCalculationGroup_EntityWithChildGroups_CreateCalculationGroupWithChildGroups() + { + // Setup + var rootGroupEntity = new CalculationGroupEntity + { + Name = "A", + CalculationGroupEntity1 = + { + new CalculationGroupEntity + { + Name = "AA", + IsEditable = 1, + Order = 0 + }, + new CalculationGroupEntity + { + Name = "AB", + IsEditable = 0, + CalculationGroupEntity1 = + { + new CalculationGroupEntity + { + Name = "ABA", + IsEditable = 0, + Order = 0 + }, + new CalculationGroupEntity + { + Name = "ABB", + IsEditable = 1, + Order = 1 + } + }, + Order = 1 + } + } + }; + + var collector = new ReadConversionCollector(); + + // Call + var rootGroup = rootGroupEntity.ReadAsStabilityStoneCoverWaveConditionsCalculationGroup(collector); + + // Assert + Assert.AreEqual("A", rootGroup.Name); + Assert.IsFalse(rootGroup.IsNameEditable); + + ICalculationBase[] rootChildren = rootGroup.Children.ToArray(); + var rootChildGroup1 = (CalculationGroup)rootChildren[0]; + Assert.AreEqual("AA", rootChildGroup1.Name); + Assert.IsTrue(rootChildGroup1.IsNameEditable); + CollectionAssert.IsEmpty(rootChildGroup1.Children); + var rootChildGroup2 = (CalculationGroup)rootChildren[1]; + Assert.AreEqual("AB", rootChildGroup2.Name); + Assert.IsFalse(rootChildGroup2.IsNameEditable); + + ICalculationBase[] rootChildGroup2Children = rootChildGroup2.Children.ToArray(); + var rootChildGroup1Child1 = (CalculationGroup)rootChildGroup2Children[0]; + Assert.AreEqual("ABA", rootChildGroup1Child1.Name); + Assert.IsFalse(rootChildGroup1Child1.IsNameEditable); + CollectionAssert.IsEmpty(rootChildGroup1Child1.Children); + var rootChildGroup1Child2 = (CalculationGroup)rootChildGroup2Children[1]; + Assert.AreEqual("ABB", rootChildGroup1Child2.Name); + Assert.IsTrue(rootChildGroup1Child2.IsNameEditable); + CollectionAssert.IsEmpty(rootChildGroup1Child2.Children); + } } } \ No newline at end of file