// 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 System.Collections.Generic;
using Application.Ringtoets.Storage.DbContext;
using Application.Ringtoets.Storage.Read;
using NUnit.Framework;
using Ringtoets.ClosingStructures.Data;
using Ringtoets.Common.Data.Calculation;
using Ringtoets.Common.Data.Structures;
using Ringtoets.GrassCoverErosionInwards.Data;
using Ringtoets.GrassCoverErosionOutwards.Data;
using Ringtoets.HeightStructures.Data;
using Ringtoets.MacroStabilityInwards.Data;
using Ringtoets.Piping.Data;
using Ringtoets.StabilityPointStructures.Data;
using Ringtoets.StabilityStoneCover.Data;
using Ringtoets.WaveImpactAsphaltCover.Data;
namespace Application.Ringtoets.Storage.Test.Read
{
[TestFixture]
public class CalculationGroupEntityReadExtentionsTest
{
#region Piping
[Test]
public void ReadAsPipingCalculationGroup_ReadConversionCollectorIsNull_ThrowArgumentNullException()
{
// Setup
var entity = new CalculationGroupEntity();
var generalPipingInput = new GeneralPipingInput();
// Call
TestDelegate call = () => entity.ReadAsPipingCalculationGroup(null, generalPipingInput);
// Assert
string paramName = Assert.Throws(call).ParamName;
Assert.AreEqual("collector", paramName);
}
[Test]
public void ReadAsPipingCalculationGroup_GeneralPipingInputIsNull_ThrowArgumentNullException()
{
// Setup
var entity = new CalculationGroupEntity();
var collector = new ReadConversionCollector();
// Call
TestDelegate call = () => entity.ReadAsPipingCalculationGroup(collector, null);
// Assert
string paramName = Assert.Throws(call).ParamName;
Assert.AreEqual("generalPipingInput", paramName);
}
[Test]
[TestCase("A")]
[TestCase("b")]
public void ReadAsPipingCalculationGroup_EntityWithoutChildren_CreateCalculationGroupWithoutChildren(
string name)
{
// Setup
var entity = new CalculationGroupEntity
{
Name = name
};
var collector = new ReadConversionCollector();
var generalPipingInput = new GeneralPipingInput();
// Call
CalculationGroup group = entity.ReadAsPipingCalculationGroup(collector, generalPipingInput);
// Assert
Assert.AreEqual(name, group.Name);
CollectionAssert.IsEmpty(group.Children);
}
[Test]
public void ReadAsPipingCalculationGroup_EntityWithChildGroups_CreateCalculationGroupWithChildGroups()
{
// Setup
var rootGroupEntity = new CalculationGroupEntity
{
Name = "A",
CalculationGroupEntity1 =
{
new CalculationGroupEntity
{
Name = "AA",
Order = 0
},
new CalculationGroupEntity
{
Name = "AB",
CalculationGroupEntity1 =
{
new CalculationGroupEntity
{
Name = "ABB",
Order = 1
},
new CalculationGroupEntity
{
Name = "ABA",
Order = 0
}
},
Order = 1
}
}
};
var collector = new ReadConversionCollector();
var generalPipingInput = new GeneralPipingInput();
// Call
CalculationGroup rootGroup = rootGroupEntity.ReadAsPipingCalculationGroup(collector, generalPipingInput);
// Assert
Assert.AreEqual("A", rootGroup.Name);
List rootChildren = rootGroup.Children;
var rootChildGroup1 = (CalculationGroup) rootChildren[0];
Assert.AreEqual("AA", rootChildGroup1.Name);
CollectionAssert.IsEmpty(rootChildGroup1.Children);
var rootChildGroup2 = (CalculationGroup) rootChildren[1];
Assert.AreEqual("AB", rootChildGroup2.Name);
List rootChildGroup2Children = rootChildGroup2.Children;
var rootChildGroup1Child1 = (CalculationGroup) rootChildGroup2Children[0];
Assert.AreEqual("ABA", rootChildGroup1Child1.Name);
CollectionAssert.IsEmpty(rootChildGroup1Child1.Children);
var rootChildGroup1Child2 = (CalculationGroup) rootChildGroup2Children[1];
Assert.AreEqual("ABB", rootChildGroup1Child2.Name);
CollectionAssert.IsEmpty(rootChildGroup1Child2.Children);
}
[Test]
public void ReadAsPipingCalculationGroup_EntityWithChildPipingCalculations_CreateCalculationGroupWithChildCalculations()
{
// Setup
var rootGroupEntity = new CalculationGroupEntity
{
Name = "A",
PipingCalculationEntities =
{
new PipingCalculationEntity
{
Order = 1,
Name = "2",
DampingFactorExitMean = 2
},
new PipingCalculationEntity
{
Order = 0,
Name = "1",
DampingFactorExitMean = 1
}
}
};
var collector = new ReadConversionCollector();
var generalPipingInput = new GeneralPipingInput();
// Call
CalculationGroup rootGroup = rootGroupEntity.ReadAsPipingCalculationGroup(collector, generalPipingInput);
// Assert
List rootChildren = rootGroup.Children;
Assert.AreEqual(2, rootChildren.Count);
var rootChildCalculation1 = (PipingCalculationScenario) rootChildren[0];
Assert.AreEqual("1", rootChildCalculation1.Name);
var rootChildCalculation2 = (PipingCalculationScenario) rootChildren[1];
Assert.AreEqual("2", rootChildCalculation2.Name);
}
[Test]
public void ReadAsPipingCalculationGroup_EntityWithChildPipingCalculationsAndGroups_CreateCalculationGroupWithChildCalculationsAndGroups()
{
// Setup
var rootGroupEntity = new CalculationGroupEntity
{
Name = "A",
PipingCalculationEntities =
{
new PipingCalculationEntity
{
Order = 0,
Name = "calculation1",
DampingFactorExitMean = 1
},
new PipingCalculationEntity
{
Order = 2,
Name = "calculation2",
DampingFactorExitMean = 2
}
},
CalculationGroupEntity1 =
{
new CalculationGroupEntity
{
Order = 3,
Name = "group2"
},
new CalculationGroupEntity
{
Order = 1,
Name = "group1"
}
}
};
var collector = new ReadConversionCollector();
var generalPipingInput = new GeneralPipingInput();
// Call
CalculationGroup rootGroup = rootGroupEntity.ReadAsPipingCalculationGroup(collector, generalPipingInput);
// Assert
List rootChildren = rootGroup.Children;
Assert.AreEqual(4, rootChildren.Count);
var rootChildCalculation1 = (PipingCalculationScenario) rootChildren[0];
Assert.AreEqual("calculation1", rootChildCalculation1.Name);
var rootChildGroup1 = (CalculationGroup) rootChildren[1];
Assert.AreEqual("group1", rootChildGroup1.Name);
var rootChildCalculation2 = (PipingCalculationScenario) rootChildren[2];
Assert.AreEqual("calculation2", rootChildCalculation2.Name);
var rootChildGroup2 = (CalculationGroup) rootChildren[3];
Assert.AreEqual("group2", rootChildGroup2.Name);
}
#endregion
#region Macro Stability Inwards
[Test]
public void ReadAsMacroStabilityInwardsCalculationGroup_ReadConversionCollectorIsNull_ThrowArgumentNullException()
{
// Setup
var entity = new CalculationGroupEntity();
// Call
TestDelegate call = () => entity.ReadAsMacroStabilityInwardsCalculationGroup(null);
// Assert
string paramName = Assert.Throws(call).ParamName;
Assert.AreEqual("collector", paramName);
}
[Test]
[TestCase("A")]
[TestCase("b")]
public void ReadAsMacroStabilityInwardsCalculationGroup_EntityWithoutChildren_CreateCalculationGroupWithoutChildren(
string name)
{
// Setup
var entity = new CalculationGroupEntity
{
Name = name
};
var collector = new ReadConversionCollector();
// Call
CalculationGroup group = entity.ReadAsMacroStabilityInwardsCalculationGroup(collector);
// Assert
Assert.AreEqual(name, group.Name);
CollectionAssert.IsEmpty(group.Children);
}
[Test]
public void ReadAsMacroStabilityInwardsCalculationGroup_EntityWithChildGroups_CreateCalculationGroupWithChildGroups()
{
// Setup
var rootGroupEntity = new CalculationGroupEntity
{
Name = "A",
CalculationGroupEntity1 =
{
new CalculationGroupEntity
{
Name = "AA",
Order = 0
},
new CalculationGroupEntity
{
Name = "AB",
CalculationGroupEntity1 =
{
new CalculationGroupEntity
{
Name = "ABB",
Order = 1
},
new CalculationGroupEntity
{
Name = "ABA",
Order = 0
}
},
Order = 1
}
}
};
var collector = new ReadConversionCollector();
// Call
CalculationGroup rootGroup = rootGroupEntity.ReadAsMacroStabilityInwardsCalculationGroup(collector);
// Assert
Assert.AreEqual("A", rootGroup.Name);
List rootChildren = rootGroup.Children;
var rootChildGroup1 = (CalculationGroup) rootChildren[0];
Assert.AreEqual("AA", rootChildGroup1.Name);
CollectionAssert.IsEmpty(rootChildGroup1.Children);
var rootChildGroup2 = (CalculationGroup) rootChildren[1];
Assert.AreEqual("AB", rootChildGroup2.Name);
List rootChildGroup2Children = rootChildGroup2.Children;
var rootChildGroup1Child1 = (CalculationGroup) rootChildGroup2Children[0];
Assert.AreEqual("ABA", rootChildGroup1Child1.Name);
CollectionAssert.IsEmpty(rootChildGroup1Child1.Children);
var rootChildGroup1Child2 = (CalculationGroup) rootChildGroup2Children[1];
Assert.AreEqual("ABB", rootChildGroup1Child2.Name);
CollectionAssert.IsEmpty(rootChildGroup1Child2.Children);
}
[Test]
public void ReadAsMacroStabilityInwardsCalculationGroup_EntityWithChildMacroStabilityInwardsCalculations_CreateCalculationGroupWithChildCalculations()
{
// Setup
var rootGroupEntity = new CalculationGroupEntity
{
Name = "A",
MacroStabilityInwardsCalculationEntities =
{
new MacroStabilityInwardsCalculationEntity
{
Order = 1,
Name = "2",
TangentLineNumber = 1
},
new MacroStabilityInwardsCalculationEntity
{
Order = 0,
Name = "1",
TangentLineNumber = 1
}
}
};
var collector = new ReadConversionCollector();
// Call
CalculationGroup rootGroup = rootGroupEntity.ReadAsMacroStabilityInwardsCalculationGroup(collector);
// Assert
List rootChildren = rootGroup.Children;
Assert.AreEqual(2, rootChildren.Count);
var rootChildCalculation1 = (MacroStabilityInwardsCalculationScenario) rootChildren[0];
Assert.AreEqual("1", rootChildCalculation1.Name);
var rootChildCalculation2 = (MacroStabilityInwardsCalculationScenario) rootChildren[1];
Assert.AreEqual("2", rootChildCalculation2.Name);
}
[Test]
public void ReadAsMacroStabilityInwardsCalculationGroup_EntityWithChildMacroStabilityInwardsCalculationsAndGroups_CreateCalculationGroupWithChildCalculationsAndGroups()
{
// Setup
var rootGroupEntity = new CalculationGroupEntity
{
Name = "A",
MacroStabilityInwardsCalculationEntities =
{
new MacroStabilityInwardsCalculationEntity
{
Order = 0,
Name = "calculation1",
TangentLineNumber = 1
},
new MacroStabilityInwardsCalculationEntity
{
Order = 2,
Name = "calculation2",
TangentLineNumber = 2
}
},
CalculationGroupEntity1 =
{
new CalculationGroupEntity
{
Order = 3,
Name = "group2"
},
new CalculationGroupEntity
{
Order = 1,
Name = "group1"
}
}
};
var collector = new ReadConversionCollector();
// Call
CalculationGroup rootGroup = rootGroupEntity.ReadAsMacroStabilityInwardsCalculationGroup(collector);
// Assert
List rootChildren = rootGroup.Children;
Assert.AreEqual(4, rootChildren.Count);
var rootChildCalculation1 = (MacroStabilityInwardsCalculationScenario) rootChildren[0];
Assert.AreEqual("calculation1", rootChildCalculation1.Name);
var rootChildGroup1 = (CalculationGroup) rootChildren[1];
Assert.AreEqual("group1", rootChildGroup1.Name);
var rootChildCalculation2 = (MacroStabilityInwardsCalculationScenario) rootChildren[2];
Assert.AreEqual("calculation2", rootChildCalculation2.Name);
var rootChildGroup2 = (CalculationGroup) rootChildren[3];
Assert.AreEqual("group2", rootChildGroup2.Name);
}
#endregion
#region Grass Cover Erosion Inwards
[Test]
public void ReadAsGrassCoverErosionInwardsCalculationGroup_CollectorIsNull_ThrowArgumentNullException()
{
// Setup
var entity = new CalculationGroupEntity();
// Call
TestDelegate call = () => entity.ReadAsGrassCoverErosionInwardsCalculationGroup(null);
// Assert
string paramName = Assert.Throws(call).ParamName;
Assert.AreEqual("collector", paramName);
}
[Test]
[TestCase("HAbba")]
[TestCase("Dooeis")]
public void ReadAsGrassCoverErosionInwardsCalculationGroup_EntityWithoutChildren_CreateCalculationGroupWithoutChildren(
string name)
{
// Setup
var entity = new CalculationGroupEntity
{
Name = name
};
var collector = new ReadConversionCollector();
// Call
CalculationGroup group = entity.ReadAsGrassCoverErosionInwardsCalculationGroup(collector);
// Assert
Assert.AreEqual(name, group.Name);
CollectionAssert.IsEmpty(group.Children);
}
[Test]
public void ReadAsGrassCoverErosionInwardsCalculationGroup_EntityWithChildGroups_CreateCalculationGroupWithChildGroups()
{
// Setup
var rootGroupEntity = new CalculationGroupEntity
{
Name = "A",
CalculationGroupEntity1 =
{
new CalculationGroupEntity
{
Name = "AB",
CalculationGroupEntity1 =
{
new CalculationGroupEntity
{
Name = "ABB",
Order = 1
},
new CalculationGroupEntity
{
Name = "ABA",
Order = 0
}
},
Order = 1
},
new CalculationGroupEntity
{
Name = "AA",
Order = 0
}
}
};
var collector = new ReadConversionCollector();
// Call
CalculationGroup rootGroup = rootGroupEntity.ReadAsGrassCoverErosionInwardsCalculationGroup(collector);
// Assert
Assert.AreEqual("A", rootGroup.Name);
List rootChildren = rootGroup.Children;
var rootChildGroup1 = (CalculationGroup) rootChildren[0];
Assert.AreEqual("AA", rootChildGroup1.Name);
CollectionAssert.IsEmpty(rootChildGroup1.Children);
var rootChildGroup2 = (CalculationGroup) rootChildren[1];
Assert.AreEqual("AB", rootChildGroup2.Name);
List rootChildGroup2Children = rootChildGroup2.Children;
var rootChildGroup1Child1 = (CalculationGroup) rootChildGroup2Children[0];
Assert.AreEqual("ABA", rootChildGroup1Child1.Name);
CollectionAssert.IsEmpty(rootChildGroup1Child1.Children);
var rootChildGroup1Child2 = (CalculationGroup) rootChildGroup2Children[1];
Assert.AreEqual("ABB", rootChildGroup1Child2.Name);
CollectionAssert.IsEmpty(rootChildGroup1Child2.Children);
}
[Test]
public void ReadAsGrassCoverErosionInwardsCalculationGroup_EntityWithChildGrassCoverErosionInwardsCalculations_CreateCalculationGroupWithChildCalculations()
{
// Setup
var rootGroupEntity = new CalculationGroupEntity
{
Name = "A",
GrassCoverErosionInwardsCalculationEntities =
{
new GrassCoverErosionInwardsCalculationEntity
{
Order = 0,
Name = "1"
},
new GrassCoverErosionInwardsCalculationEntity
{
Order = 1,
Name = "2"
}
}
};
var collector = new ReadConversionCollector();
// Call
CalculationGroup rootGroup = rootGroupEntity.ReadAsGrassCoverErosionInwardsCalculationGroup(collector);
// Assert
List rootChildren = rootGroup.Children;
Assert.AreEqual(2, rootChildren.Count);
var rootChildCalculation1 = (GrassCoverErosionInwardsCalculation) rootChildren[0];
Assert.AreEqual("1", rootChildCalculation1.Name);
var rootChildCalculation2 = (GrassCoverErosionInwardsCalculation) rootChildren[1];
Assert.AreEqual("2", rootChildCalculation2.Name);
}
[Test]
public void ReadAsGrassCoverErosionInwardsCalculationGroup_EntityWithChildGrassCoverErosionInwardsCalculationsAndGroups_CreateCalculationGroupWithChildCalculationsAndGroups()
{
// Setup
var rootGroupEntity = new CalculationGroupEntity
{
Name = "A",
GrassCoverErosionInwardsCalculationEntities =
{
new GrassCoverErosionInwardsCalculationEntity
{
Order = 2,
Name = "calculation2"
},
new GrassCoverErosionInwardsCalculationEntity
{
Order = 0,
Name = "calculation1"
}
},
CalculationGroupEntity1 =
{
new CalculationGroupEntity
{
Order = 1,
Name = "group1"
},
new CalculationGroupEntity
{
Order = 3,
Name = "group2"
}
}
};
var collector = new ReadConversionCollector();
// Call
CalculationGroup rootGroup = rootGroupEntity.ReadAsGrassCoverErosionInwardsCalculationGroup(collector);
// Assert
List rootChildren = rootGroup.Children;
Assert.AreEqual(4, rootChildren.Count);
var rootChildCalculation1 = (GrassCoverErosionInwardsCalculation) rootChildren[0];
Assert.AreEqual("calculation1", rootChildCalculation1.Name);
var rootChildGroup1 = (CalculationGroup) rootChildren[1];
Assert.AreEqual("group1", rootChildGroup1.Name);
var rootChildCalculation2 = (GrassCoverErosionInwardsCalculation) rootChildren[2];
Assert.AreEqual("calculation2", rootChildCalculation2.Name);
var rootChildGroup2 = (CalculationGroup) rootChildren[3];
Assert.AreEqual("group2", rootChildGroup2.Name);
}
#endregion
#region Grass Cover Erosion Outwards
[Test]
public void ReadAsGrassCoverErosionOutwardsWaveConditionsCalculationGroup_CollectorIsNull_ThrowArgumentNullException()
{
// Setup
var entity = new CalculationGroupEntity();
// Call
TestDelegate call = () => entity.ReadAsGrassCoverErosionOutwardsWaveConditionsCalculationGroup(null);
// Assert
string paramName = Assert.Throws(call).ParamName;
Assert.AreEqual("collector", paramName);
}
[Test]
[TestCase("HAbba")]
[TestCase("Dooeis")]
public void ReadAsGrassCoverErosionOutwardsWaveConditionsCalculationGroup_EntityWithoutChildren_CreateCalculationGroupWithoutChildren(
string name)
{
// Setup
var entity = new CalculationGroupEntity
{
Name = name
};
var collector = new ReadConversionCollector();
// Call
CalculationGroup group = entity.ReadAsGrassCoverErosionOutwardsWaveConditionsCalculationGroup(collector);
// Assert
Assert.AreEqual(name, group.Name);
CollectionAssert.IsEmpty(group.Children);
}
[Test]
public void ReadAsGrassCoverErosionOutwardsWaveConditionsCalculationGroup_EntityWithChildGroups_CreateCalculationGroupWithChildGroups()
{
// Setup
var rootGroupEntity = new CalculationGroupEntity
{
Name = "A",
CalculationGroupEntity1 =
{
new CalculationGroupEntity
{
Name = "AB",
CalculationGroupEntity1 =
{
new CalculationGroupEntity
{
Name = "ABA",
Order = 0
},
new CalculationGroupEntity
{
Name = "ABB",
Order = 1
}
},
Order = 1
},
new CalculationGroupEntity
{
Name = "AA",
Order = 0
}
}
};
var collector = new ReadConversionCollector();
// Call
CalculationGroup rootGroup = rootGroupEntity.ReadAsGrassCoverErosionOutwardsWaveConditionsCalculationGroup(collector);
// Assert
Assert.AreEqual("A", rootGroup.Name);
List rootChildren = rootGroup.Children;
var rootChildGroup1 = (CalculationGroup) rootChildren[0];
Assert.AreEqual("AA", rootChildGroup1.Name);
CollectionAssert.IsEmpty(rootChildGroup1.Children);
var rootChildGroup2 = (CalculationGroup) rootChildren[1];
Assert.AreEqual("AB", rootChildGroup2.Name);
List rootChildGroup2Children = rootChildGroup2.Children;
var rootChildGroup1Child1 = (CalculationGroup) rootChildGroup2Children[0];
Assert.AreEqual("ABA", rootChildGroup1Child1.Name);
CollectionAssert.IsEmpty(rootChildGroup1Child1.Children);
var rootChildGroup1Child2 = (CalculationGroup) rootChildGroup2Children[1];
Assert.AreEqual("ABB", rootChildGroup1Child2.Name);
CollectionAssert.IsEmpty(rootChildGroup1Child2.Children);
}
[Test]
public void ReadAsGrassCoverErosionOutwardsWaveConditionsCalculationGroup_EntityWithChildGrassCoverErosionOutwardsWaveConditionsCalculations_CreateCalculationGroupWithChildCalculations()
{
// Setup
var rootGroupEntity = new CalculationGroupEntity
{
Name = "A",
GrassCoverErosionOutwardsWaveConditionsCalculationEntities =
{
new GrassCoverErosionOutwardsWaveConditionsCalculationEntity
{
Order = 0,
Name = "1"
},
new GrassCoverErosionOutwardsWaveConditionsCalculationEntity
{
Order = 1,
Name = "2"
}
}
};
var collector = new ReadConversionCollector();
// Call
CalculationGroup rootGroup = rootGroupEntity.ReadAsGrassCoverErosionOutwardsWaveConditionsCalculationGroup(collector);
// Assert
List rootChildren = rootGroup.Children;
Assert.AreEqual(2, rootChildren.Count);
var rootChildCalculation1 = (GrassCoverErosionOutwardsWaveConditionsCalculation) rootChildren[0];
Assert.AreEqual("1", rootChildCalculation1.Name);
var rootChildCalculation2 = (GrassCoverErosionOutwardsWaveConditionsCalculation) rootChildren[1];
Assert.AreEqual("2", rootChildCalculation2.Name);
}
[Test]
public void ReadAsGrassCoverErosionOutwardsWaveConditionsCalculationGroup_EntityWithChildGrassCoverErosionOutwardsWaveConditionsCalculationsAndGroups_CreateCalculationGroupWithChildCalculationsAndGroups()
{
// Setup
var rootGroupEntity = new CalculationGroupEntity
{
Name = "A",
GrassCoverErosionOutwardsWaveConditionsCalculationEntities =
{
new GrassCoverErosionOutwardsWaveConditionsCalculationEntity
{
Order = 0,
Name = "calculation1"
},
new GrassCoverErosionOutwardsWaveConditionsCalculationEntity
{
Order = 2,
Name = "calculation2"
}
},
CalculationGroupEntity1 =
{
new CalculationGroupEntity
{
Order = 1,
Name = "group1"
},
new CalculationGroupEntity
{
Order = 3,
Name = "group2"
}
}
};
var collector = new ReadConversionCollector();
// Call
CalculationGroup rootGroup = rootGroupEntity.ReadAsGrassCoverErosionOutwardsWaveConditionsCalculationGroup(collector);
// Assert
List rootChildren = rootGroup.Children;
Assert.AreEqual(4, rootChildren.Count);
var rootChildCalculation1 = (GrassCoverErosionOutwardsWaveConditionsCalculation) rootChildren[0];
Assert.AreEqual("calculation1", rootChildCalculation1.Name);
var rootChildGroup1 = (CalculationGroup) rootChildren[1];
Assert.AreEqual("group1", rootChildGroup1.Name);
var rootChildCalculation2 = (GrassCoverErosionOutwardsWaveConditionsCalculation) rootChildren[2];
Assert.AreEqual("calculation2", rootChildCalculation2.Name);
var rootChildGroup2 = (CalculationGroup) rootChildren[3];
Assert.AreEqual("group2", rootChildGroup2.Name);
}
#endregion
#region HeightStructures
[Test]
public void ReadAsHeightStructuresCalculationGroup_CollectorIsNull_ThrowArgumentNullException()
{
// Setup
var entity = new CalculationGroupEntity();
// Call
TestDelegate call = () => entity.ReadAsHeightStructuresCalculationGroup(null);
// Assert
string paramName = Assert.Throws(call).ParamName;
Assert.AreEqual("collector", paramName);
}
[Test]
[TestCase("HAbba")]
[TestCase("Dooeis")]
public void ReadAsHeightStructuresCalculationGroup_EntityWithoutChildren_CreateCalculationGroupWithoutChildren(
string name)
{
// Setup
var entity = new CalculationGroupEntity
{
Name = name
};
var collector = new ReadConversionCollector();
// Call
CalculationGroup group = entity.ReadAsHeightStructuresCalculationGroup(collector);
// Assert
Assert.AreEqual(name, group.Name);
CollectionAssert.IsEmpty(group.Children);
}
[Test]
public void ReadAsHeightStructuresCalculationGroup_EntityWithChildGroups_CreateCalculationGroupWithChildGroups()
{
// Setup
var rootGroupEntity = new CalculationGroupEntity
{
Name = "A",
CalculationGroupEntity1 =
{
new CalculationGroupEntity
{
Name = "AB",
CalculationGroupEntity1 =
{
new CalculationGroupEntity
{
Name = "ABA",
Order = 0
},
new CalculationGroupEntity
{
Name = "ABB",
Order = 1
}
},
Order = 1
},
new CalculationGroupEntity
{
Name = "AA",
Order = 0
}
}
};
var collector = new ReadConversionCollector();
// Call
CalculationGroup rootGroup = rootGroupEntity.ReadAsHeightStructuresCalculationGroup(collector);
// Assert
Assert.AreEqual("A", rootGroup.Name);
List rootChildren = rootGroup.Children;
var rootChildGroup1 = (CalculationGroup) rootChildren[0];
Assert.AreEqual("AA", rootChildGroup1.Name);
CollectionAssert.IsEmpty(rootChildGroup1.Children);
var rootChildGroup2 = (CalculationGroup) rootChildren[1];
Assert.AreEqual("AB", rootChildGroup2.Name);
List rootChildGroup2Children = rootChildGroup2.Children;
var rootChildGroup1Child1 = (CalculationGroup) rootChildGroup2Children[0];
Assert.AreEqual("ABA", rootChildGroup1Child1.Name);
CollectionAssert.IsEmpty(rootChildGroup1Child1.Children);
var rootChildGroup1Child2 = (CalculationGroup) rootChildGroup2Children[1];
Assert.AreEqual("ABB", rootChildGroup1Child2.Name);
CollectionAssert.IsEmpty(rootChildGroup1Child2.Children);
}
[Test]
public void ReadAsHeightStructuresCalculationGroup_EntityWithChildHeightStructuresCalculations_CreateCalculationGroupWithChildCalculations()
{
// Setup
var rootGroupEntity = new CalculationGroupEntity
{
Name = "A",
HeightStructuresCalculationEntities =
{
new HeightStructuresCalculationEntity
{
Order = 0,
Name = "1"
},
new HeightStructuresCalculationEntity
{
Order = 1,
Name = "2"
}
}
};
var collector = new ReadConversionCollector();
// Call
CalculationGroup rootGroup = rootGroupEntity.ReadAsHeightStructuresCalculationGroup(collector);
// Assert
List rootChildren = rootGroup.Children;
Assert.AreEqual(2, rootChildren.Count);
var rootChildCalculation1 = (StructuresCalculation) rootChildren[0];
Assert.AreEqual("1", rootChildCalculation1.Name);
var rootChildCalculation2 = (StructuresCalculation) rootChildren[1];
Assert.AreEqual("2", rootChildCalculation2.Name);
}
[Test]
public void ReadAsHeightStructuresCalculationGroup_EntityWithChildHeightStructuresCalculationAndGroups_CreateCalculationGroupWithChildCalculationsAndGroups()
{
// Setup
var rootGroupEntity = new CalculationGroupEntity
{
Name = "A",
HeightStructuresCalculationEntities =
{
new HeightStructuresCalculationEntity
{
Order = 0,
Name = "calculation1"
},
new HeightStructuresCalculationEntity
{
Order = 2,
Name = "calculation2"
}
},
CalculationGroupEntity1 =
{
new CalculationGroupEntity
{
Order = 1,
Name = "group1"
},
new CalculationGroupEntity
{
Order = 3,
Name = "group2"
}
}
};
var collector = new ReadConversionCollector();
// Call
CalculationGroup rootGroup = rootGroupEntity.ReadAsHeightStructuresCalculationGroup(collector);
// Assert
List rootChildren = rootGroup.Children;
Assert.AreEqual(4, rootChildren.Count);
var rootChildCalculation1 = (StructuresCalculation) rootChildren[0];
Assert.AreEqual("calculation1", rootChildCalculation1.Name);
var rootChildGroup1 = (CalculationGroup) rootChildren[1];
Assert.AreEqual("group1", rootChildGroup1.Name);
var rootChildCalculation2 = (StructuresCalculation) rootChildren[2];
Assert.AreEqual("calculation2", rootChildCalculation2.Name);
var rootChildGroup2 = (CalculationGroup) rootChildren[3];
Assert.AreEqual("group2", rootChildGroup2.Name);
}
#endregion
#region ClosingStructures
[Test]
public void ReadAsClosingStructuresCalculationGroup_CollectorIsNull_ThrowArgumentNullException()
{
// Setup
var entity = new CalculationGroupEntity();
// Call
TestDelegate call = () => entity.ReadAsClosingStructuresCalculationGroup(null);
// Assert
string paramName = Assert.Throws(call).ParamName;
Assert.AreEqual("collector", paramName);
}
[Test]
[TestCase("HAbba")]
[TestCase("Dooeis")]
public void ReadAsClosingStructuresCalculationGroup_EntityWithoutChildren_CreateCalculationGroupWithoutChildren(
string name)
{
// Setup
var entity = new CalculationGroupEntity
{
Name = name
};
var collector = new ReadConversionCollector();
// Call
CalculationGroup group = entity.ReadAsClosingStructuresCalculationGroup(collector);
// Assert
Assert.AreEqual(name, group.Name);
CollectionAssert.IsEmpty(group.Children);
}
[Test]
public void ReadAsClosingStructuresCalculationGroup_EntityWithChildGroups_CreateCalculationGroupWithChildGroups()
{
// Setup
var rootGroupEntity = new CalculationGroupEntity
{
Name = "A",
CalculationGroupEntity1 =
{
new CalculationGroupEntity
{
Name = "AB",
CalculationGroupEntity1 =
{
new CalculationGroupEntity
{
Name = "ABA",
Order = 0
},
new CalculationGroupEntity
{
Name = "ABB",
Order = 1
}
},
Order = 1
},
new CalculationGroupEntity
{
Name = "AA",
Order = 0
}
}
};
var collector = new ReadConversionCollector();
// Call
CalculationGroup rootGroup = rootGroupEntity.ReadAsClosingStructuresCalculationGroup(collector);
// Assert
Assert.AreEqual("A", rootGroup.Name);
List rootChildren = rootGroup.Children;
var rootChildGroup1 = (CalculationGroup) rootChildren[0];
Assert.AreEqual("AA", rootChildGroup1.Name);
CollectionAssert.IsEmpty(rootChildGroup1.Children);
var rootChildGroup2 = (CalculationGroup) rootChildren[1];
Assert.AreEqual("AB", rootChildGroup2.Name);
List rootChildGroup2Children = rootChildGroup2.Children;
var rootChildGroup1Child1 = (CalculationGroup) rootChildGroup2Children[0];
Assert.AreEqual("ABA", rootChildGroup1Child1.Name);
CollectionAssert.IsEmpty(rootChildGroup1Child1.Children);
var rootChildGroup1Child2 = (CalculationGroup) rootChildGroup2Children[1];
Assert.AreEqual("ABB", rootChildGroup1Child2.Name);
CollectionAssert.IsEmpty(rootChildGroup1Child2.Children);
}
[Test]
public void ReadAsClosingStructuresCalculationGroup_EntityWithChildClosingStructuresCalculations_CreateCalculationGroupWithChildCalculations()
{
// Setup
var rootGroupEntity = new CalculationGroupEntity
{
Name = "A",
ClosingStructuresCalculationEntities =
{
new ClosingStructuresCalculationEntity
{
Order = 0,
Name = "1"
},
new ClosingStructuresCalculationEntity
{
Order = 1,
Name = "2"
}
}
};
var collector = new ReadConversionCollector();
// Call
CalculationGroup rootGroup = rootGroupEntity.ReadAsClosingStructuresCalculationGroup(collector);
// Assert
List rootChildren = rootGroup.Children;
Assert.AreEqual(2, rootChildren.Count);
var rootChildCalculation1 = (StructuresCalculation) rootChildren[0];
Assert.AreEqual("1", rootChildCalculation1.Name);
var rootChildCalculation2 = (StructuresCalculation) rootChildren[1];
Assert.AreEqual("2", rootChildCalculation2.Name);
}
[Test]
public void ReadAsClosingStructuresCalculationGroup_EntityWithChildClosingStructuresCalculationAndGroups_CreateCalculationGroupWithChildCalculationsAndGroups()
{
// Setup
var rootGroupEntity = new CalculationGroupEntity
{
Name = "A",
ClosingStructuresCalculationEntities =
{
new ClosingStructuresCalculationEntity
{
Order = 0,
Name = "calculation1"
},
new ClosingStructuresCalculationEntity
{
Order = 2,
Name = "calculation2"
}
},
CalculationGroupEntity1 =
{
new CalculationGroupEntity
{
Order = 1,
Name = "group1"
},
new CalculationGroupEntity
{
Order = 3,
Name = "group2"
}
}
};
var collector = new ReadConversionCollector();
// Call
CalculationGroup rootGroup = rootGroupEntity.ReadAsClosingStructuresCalculationGroup(collector);
// Assert
List rootChildren = rootGroup.Children;
Assert.AreEqual(4, rootChildren.Count);
var rootChildCalculation1 = (StructuresCalculation) rootChildren[0];
Assert.AreEqual("calculation1", rootChildCalculation1.Name);
var rootChildGroup1 = (CalculationGroup) rootChildren[1];
Assert.AreEqual("group1", rootChildGroup1.Name);
var rootChildCalculation2 = (StructuresCalculation) rootChildren[2];
Assert.AreEqual("calculation2", rootChildCalculation2.Name);
var rootChildGroup2 = (CalculationGroup) rootChildren[3];
Assert.AreEqual("group2", rootChildGroup2.Name);
}
#endregion
#region StabilityPointStructures
[Test]
public void ReadAsStabilityPointStructuresCalculationGroup_CollectorIsNull_ThrowArgumentNullException()
{
// Setup
var entity = new CalculationGroupEntity();
// Call
TestDelegate call = () => entity.ReadAsStabilityPointStructuresCalculationGroup(null);
// Assert
string paramName = Assert.Throws(call).ParamName;
Assert.AreEqual("collector", paramName);
}
[Test]
[TestCase("HAbba")]
[TestCase("Dooeis")]
public void ReadAsStabilityPointStructuresCalculationGroup_EntityWithoutChildren_CreateCalculationGroupWithoutChildren(string name)
{
// Setup
var entity = new CalculationGroupEntity
{
Name = name
};
var collector = new ReadConversionCollector();
// Call
CalculationGroup group = entity.ReadAsStabilityPointStructuresCalculationGroup(collector);
// Assert
Assert.AreEqual(name, group.Name);
CollectionAssert.IsEmpty(group.Children);
}
[Test]
public void ReadAsStabilityPointStructuresCalculationGroup_EntityWithChildGroups_CreateCalculationGroupWithChildGroups()
{
// Setup
var rootGroupEntity = new CalculationGroupEntity
{
Name = "A",
CalculationGroupEntity1 =
{
new CalculationGroupEntity
{
Name = "AB",
CalculationGroupEntity1 =
{
new CalculationGroupEntity
{
Name = "ABA",
Order = 0
},
new CalculationGroupEntity
{
Name = "ABB",
Order = 1
}
},
Order = 1
},
new CalculationGroupEntity
{
Name = "AA",
Order = 0
}
}
};
var collector = new ReadConversionCollector();
// Call
CalculationGroup rootGroup = rootGroupEntity.ReadAsStabilityPointStructuresCalculationGroup(collector);
// Assert
Assert.AreEqual("A", rootGroup.Name);
List rootChildren = rootGroup.Children;
var rootChildGroup1 = (CalculationGroup) rootChildren[0];
Assert.AreEqual("AA", rootChildGroup1.Name);
CollectionAssert.IsEmpty(rootChildGroup1.Children);
var rootChildGroup2 = (CalculationGroup) rootChildren[1];
Assert.AreEqual("AB", rootChildGroup2.Name);
List rootChildGroup2Children = rootChildGroup2.Children;
var rootChildGroup1Child1 = (CalculationGroup) rootChildGroup2Children[0];
Assert.AreEqual("ABA", rootChildGroup1Child1.Name);
CollectionAssert.IsEmpty(rootChildGroup1Child1.Children);
var rootChildGroup1Child2 = (CalculationGroup) rootChildGroup2Children[1];
Assert.AreEqual("ABB", rootChildGroup1Child2.Name);
CollectionAssert.IsEmpty(rootChildGroup1Child2.Children);
}
[Test]
public void ReadAsStabilityPointStructuresCalculationGroup_EntityWithChildStabilityPointStructuresCalculations_CreateCalculationGroupWithChildCalculations()
{
// Setup
var rootGroupEntity = new CalculationGroupEntity
{
Name = "A",
StabilityPointStructuresCalculationEntities =
{
new StabilityPointStructuresCalculationEntity
{
Order = 0,
Name = "1"
},
new StabilityPointStructuresCalculationEntity
{
Order = 1,
Name = "2"
}
}
};
var collector = new ReadConversionCollector();
// Call
CalculationGroup rootGroup = rootGroupEntity.ReadAsStabilityPointStructuresCalculationGroup(collector);
// Assert
List rootChildren = rootGroup.Children;
Assert.AreEqual(2, rootChildren.Count);
var rootChildCalculation1 = (StructuresCalculation) rootChildren[0];
Assert.AreEqual("1", rootChildCalculation1.Name);
var rootChildCalculation2 = (StructuresCalculation) rootChildren[1];
Assert.AreEqual("2", rootChildCalculation2.Name);
}
[Test]
public void ReadAsStabilityPointStructuresCalculationGroup_EntityWithChildStabilityPointStructuresCalculationAndGroups_CreateCalculationGroupWithChildCalculationsAndGroups()
{
// Setup
var rootGroupEntity = new CalculationGroupEntity
{
Name = "A",
StabilityPointStructuresCalculationEntities =
{
new StabilityPointStructuresCalculationEntity
{
Order = 0,
Name = "calculation1"
},
new StabilityPointStructuresCalculationEntity
{
Order = 2,
Name = "calculation2"
}
},
CalculationGroupEntity1 =
{
new CalculationGroupEntity
{
Order = 1,
Name = "group1"
},
new CalculationGroupEntity
{
Order = 3,
Name = "group2"
}
}
};
var collector = new ReadConversionCollector();
// Call
CalculationGroup rootGroup = rootGroupEntity.ReadAsStabilityPointStructuresCalculationGroup(collector);
// Assert
List rootChildren = rootGroup.Children;
Assert.AreEqual(4, rootChildren.Count);
var rootChildCalculation1 = (StructuresCalculation) rootChildren[0];
Assert.AreEqual("calculation1", rootChildCalculation1.Name);
var rootChildGroup1 = (CalculationGroup) rootChildren[1];
Assert.AreEqual("group1", rootChildGroup1.Name);
var rootChildCalculation2 = (StructuresCalculation) rootChildren[2];
Assert.AreEqual("calculation2", rootChildCalculation2.Name);
var rootChildGroup2 = (CalculationGroup) rootChildren[3];
Assert.AreEqual("group2", rootChildGroup2.Name);
}
#endregion
#region Stability Stone Cover
[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")]
[TestCase("Dooeis")]
public void ReadAsStabilityStoneCoverWaveConditionsCalculationGroup_EntityWithoutChildren_CreateCalculationGroupWithoutChildren(
string name)
{
// Setup
var entity = new CalculationGroupEntity
{
Name = name
};
var collector = new ReadConversionCollector();
// Call
CalculationGroup group = entity.ReadAsStabilityStoneCoverWaveConditionsCalculationGroup(collector);
// Assert
Assert.AreEqual(name, group.Name);
CollectionAssert.IsEmpty(group.Children);
}
[Test]
public void ReadAsStabilityStoneCoverWaveConditionsCalculationGroup_EntityWithChildGroups_CreateCalculationGroupWithChildGroups()
{
// Setup
var rootGroupEntity = new CalculationGroupEntity
{
Name = "A",
CalculationGroupEntity1 =
{
new CalculationGroupEntity
{
Name = "AB",
CalculationGroupEntity1 =
{
new CalculationGroupEntity
{
Name = "ABA",
Order = 0
},
new CalculationGroupEntity
{
Name = "ABB",
Order = 1
}
},
Order = 1
},
new CalculationGroupEntity
{
Name = "AA",
Order = 0
}
}
};
var collector = new ReadConversionCollector();
// Call
CalculationGroup rootGroup = rootGroupEntity.ReadAsStabilityStoneCoverWaveConditionsCalculationGroup(collector);
// Assert
Assert.AreEqual("A", rootGroup.Name);
List rootChildren = rootGroup.Children;
var rootChildGroup1 = (CalculationGroup) rootChildren[0];
Assert.AreEqual("AA", rootChildGroup1.Name);
CollectionAssert.IsEmpty(rootChildGroup1.Children);
var rootChildGroup2 = (CalculationGroup) rootChildren[1];
Assert.AreEqual("AB", rootChildGroup2.Name);
List rootChildGroup2Children = rootChildGroup2.Children;
var rootChildGroup1Child1 = (CalculationGroup) rootChildGroup2Children[0];
Assert.AreEqual("ABA", rootChildGroup1Child1.Name);
CollectionAssert.IsEmpty(rootChildGroup1Child1.Children);
var rootChildGroup1Child2 = (CalculationGroup) rootChildGroup2Children[1];
Assert.AreEqual("ABB", rootChildGroup1Child2.Name);
CollectionAssert.IsEmpty(rootChildGroup1Child2.Children);
}
[Test]
public void ReadAsStabilityStoneCoverWaveConditionsCalculationGroup_EntityWithChildStabilityStoneCoverWaveConditionsCalculations_CreateCalculationGroupWithChildCalculations()
{
// Setup
var rootGroupEntity = new CalculationGroupEntity
{
Name = "A",
StabilityStoneCoverWaveConditionsCalculationEntities =
{
new StabilityStoneCoverWaveConditionsCalculationEntity
{
Order = 1,
Name = "2"
},
new StabilityStoneCoverWaveConditionsCalculationEntity
{
Order = 0,
Name = "1"
}
}
};
var collector = new ReadConversionCollector();
// Call
CalculationGroup rootGroup = rootGroupEntity.ReadAsStabilityStoneCoverWaveConditionsCalculationGroup(collector);
// Assert
List rootChildren = rootGroup.Children;
Assert.AreEqual(2, rootChildren.Count);
var rootChildCalculation1 = (StabilityStoneCoverWaveConditionsCalculation) rootChildren[0];
Assert.AreEqual("1", rootChildCalculation1.Name);
var rootChildCalculation2 = (StabilityStoneCoverWaveConditionsCalculation) rootChildren[1];
Assert.AreEqual("2", rootChildCalculation2.Name);
}
[Test]
public void ReadAsStabilityStoneCoverWaveConditionsCalculationGroup_EntityWithChildStabilityStoneCoverWaveConditionsCalculationsAndGroups_CreateCalculationGroupWithChildCalculationsAndGroups()
{
// Setup
var rootGroupEntity = new CalculationGroupEntity
{
Name = "A",
StabilityStoneCoverWaveConditionsCalculationEntities =
{
new StabilityStoneCoverWaveConditionsCalculationEntity
{
Order = 0,
Name = "calculation1"
},
new StabilityStoneCoverWaveConditionsCalculationEntity
{
Order = 2,
Name = "calculation2"
}
},
CalculationGroupEntity1 =
{
new CalculationGroupEntity
{
Order = 3,
Name = "group2"
},
new CalculationGroupEntity
{
Order = 1,
Name = "group1"
}
}
};
var collector = new ReadConversionCollector();
// Call
CalculationGroup rootGroup = rootGroupEntity.ReadAsStabilityStoneCoverWaveConditionsCalculationGroup(collector);
// Assert
List rootChildren = rootGroup.Children;
Assert.AreEqual(4, rootChildren.Count);
var rootChildCalculation1 = (StabilityStoneCoverWaveConditionsCalculation) rootChildren[0];
Assert.AreEqual("calculation1", rootChildCalculation1.Name);
var rootChildGroup1 = (CalculationGroup) rootChildren[1];
Assert.AreEqual("group1", rootChildGroup1.Name);
var rootChildCalculation2 = (StabilityStoneCoverWaveConditionsCalculation) rootChildren[2];
Assert.AreEqual("calculation2", rootChildCalculation2.Name);
var rootChildGroup2 = (CalculationGroup) rootChildren[3];
Assert.AreEqual("group2", rootChildGroup2.Name);
}
#endregion
#region Wave Impact Asphalt Cover
[Test]
public void ReadAsWaveImpactAsphaltCoverWaveConditionsCalculationGroup_CollectorIsNull_ThrowArgumentNullException()
{
// Setup
var entity = new CalculationGroupEntity();
// Call
TestDelegate call = () => entity.ReadAsWaveImpactAsphaltCoverWaveConditionsCalculationGroup(null);
// Assert
string paramName = Assert.Throws(call).ParamName;
Assert.AreEqual("collector", paramName);
}
[Test]
[TestCase("HAbba")]
[TestCase("Dooeis")]
public void ReadAsWaveImpactAsphaltCoverWaveConditionsCalculationGroup_EntityWithoutChildren_CreateCalculationGroupWithoutChildren(
string name)
{
// Setup
var entity = new CalculationGroupEntity
{
Name = name
};
var collector = new ReadConversionCollector();
// Call
CalculationGroup group = entity.ReadAsWaveImpactAsphaltCoverWaveConditionsCalculationGroup(collector);
// Assert
Assert.AreEqual(name, group.Name);
CollectionAssert.IsEmpty(group.Children);
}
[Test]
public void ReadAsWaveImpactAsphaltCoverWaveConditionsCalculationGroup_EntityWithChildGroups_CreateCalculationGroupWithChildGroups()
{
// Setup
var rootGroupEntity = new CalculationGroupEntity
{
Name = "A",
CalculationGroupEntity1 =
{
new CalculationGroupEntity
{
Name = "AB",
CalculationGroupEntity1 =
{
new CalculationGroupEntity
{
Name = "ABA",
Order = 0
},
new CalculationGroupEntity
{
Name = "ABB",
Order = 1
}
},
Order = 1
},
new CalculationGroupEntity
{
Name = "AA",
Order = 0
}
}
};
var collector = new ReadConversionCollector();
// Call
CalculationGroup rootGroup = rootGroupEntity.ReadAsWaveImpactAsphaltCoverWaveConditionsCalculationGroup(collector);
// Assert
Assert.AreEqual("A", rootGroup.Name);
List rootChildren = rootGroup.Children;
var rootChildGroup1 = (CalculationGroup) rootChildren[0];
Assert.AreEqual("AA", rootChildGroup1.Name);
CollectionAssert.IsEmpty(rootChildGroup1.Children);
var rootChildGroup2 = (CalculationGroup) rootChildren[1];
Assert.AreEqual("AB", rootChildGroup2.Name);
List rootChildGroup2Children = rootChildGroup2.Children;
var rootChildGroup1Child1 = (CalculationGroup) rootChildGroup2Children[0];
Assert.AreEqual("ABA", rootChildGroup1Child1.Name);
CollectionAssert.IsEmpty(rootChildGroup1Child1.Children);
var rootChildGroup1Child2 = (CalculationGroup) rootChildGroup2Children[1];
Assert.AreEqual("ABB", rootChildGroup1Child2.Name);
CollectionAssert.IsEmpty(rootChildGroup1Child2.Children);
}
[Test]
public void ReadAsWaveImpactAsphaltCoverWaveConditionsCalculationGroup_EntityWithChildWaveImpactAsphaltCoverWaveConditionsCalculations_CreateCalculationGroupWithChildCalculations()
{
// Setup
var rootGroupEntity = new CalculationGroupEntity
{
Name = "A",
WaveImpactAsphaltCoverWaveConditionsCalculationEntities =
{
new WaveImpactAsphaltCoverWaveConditionsCalculationEntity
{
Order = 1,
Name = "2"
},
new WaveImpactAsphaltCoverWaveConditionsCalculationEntity
{
Order = 0,
Name = "1"
}
}
};
var collector = new ReadConversionCollector();
// Call
CalculationGroup rootGroup = rootGroupEntity.ReadAsWaveImpactAsphaltCoverWaveConditionsCalculationGroup(collector);
// Assert
List rootChildren = rootGroup.Children;
Assert.AreEqual(2, rootChildren.Count);
var rootChildCalculation1 = (WaveImpactAsphaltCoverWaveConditionsCalculation) rootChildren[0];
Assert.AreEqual("1", rootChildCalculation1.Name);
var rootChildCalculation2 = (WaveImpactAsphaltCoverWaveConditionsCalculation) rootChildren[1];
Assert.AreEqual("2", rootChildCalculation2.Name);
}
[Test]
public void ReadAsWaveImpactAsphaltCoverWaveConditionsCalculationGroup_EntityWithChildWaveImpactAsphaltCoverWaveConditionsCalculationsAndGroups_CreateCalculationGroupWithChildCalculationsAndGroups()
{
// Setup
var rootGroupEntity = new CalculationGroupEntity
{
Name = "A",
WaveImpactAsphaltCoverWaveConditionsCalculationEntities =
{
new WaveImpactAsphaltCoverWaveConditionsCalculationEntity
{
Order = 0,
Name = "calculation1"
},
new WaveImpactAsphaltCoverWaveConditionsCalculationEntity
{
Order = 2,
Name = "calculation2"
}
},
CalculationGroupEntity1 =
{
new CalculationGroupEntity
{
Order = 3,
Name = "group2"
},
new CalculationGroupEntity
{
Order = 1,
Name = "group1"
}
}
};
var collector = new ReadConversionCollector();
// Call
CalculationGroup rootGroup = rootGroupEntity.ReadAsWaveImpactAsphaltCoverWaveConditionsCalculationGroup(collector);
// Assert
List rootChildren = rootGroup.Children;
Assert.AreEqual(4, rootChildren.Count);
var rootChildCalculation1 = (WaveImpactAsphaltCoverWaveConditionsCalculation) rootChildren[0];
Assert.AreEqual("calculation1", rootChildCalculation1.Name);
var rootChildGroup1 = (CalculationGroup) rootChildren[1];
Assert.AreEqual("group1", rootChildGroup1.Name);
var rootChildCalculation2 = (WaveImpactAsphaltCoverWaveConditionsCalculation) rootChildren[2];
Assert.AreEqual("calculation2", rootChildCalculation2.Name);
var rootChildGroup2 = (CalculationGroup) rootChildren[3];
Assert.AreEqual("group2", rootChildGroup2.Name);
}
#endregion
}
}