Index: Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.IO/Configurations/GrassCoverErosionOutwardsWaveConditionsCalculationConfigurationImporter.cs
===================================================================
diff -u -r138c88bf72a70ddfa2b98099c53d297b495d95c2 -r359d817d69eec5e474ddc4404fb7b35b91b555ad
--- Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.IO/Configurations/GrassCoverErosionOutwardsWaveConditionsCalculationConfigurationImporter.cs (.../GrassCoverErosionOutwardsWaveConditionsCalculationConfigurationImporter.cs) (revision 138c88bf72a70ddfa2b98099c53d297b495d95c2)
+++ Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.IO/Configurations/GrassCoverErosionOutwardsWaveConditionsCalculationConfigurationImporter.cs (.../GrassCoverErosionOutwardsWaveConditionsCalculationConfigurationImporter.cs) (revision 359d817d69eec5e474ddc4404fb7b35b91b555ad)
@@ -34,7 +34,8 @@
/// from an XML file and stores it on a .
///
public class GrassCoverErosionOutwardsWaveConditionsCalculationConfigurationImporter
- : WaveConditionsCalculationConfigurationImporter
+ : WaveConditionsCalculationConfigurationImporter
{
///
/// Creates a new instance of .
@@ -52,5 +53,10 @@
IEnumerable hydraulicBoundaryLocations,
IEnumerable foreshoreProfiles)
: base(xmlFilePath, importTarget, hydraulicBoundaryLocations, foreshoreProfiles) {}
+
+ protected override GrassCoverErosionOutwardsWaveConditionsCalculationConfigurationReader CreateCalculationConfigurationReader(string xmlFilePath)
+ {
+ return new GrassCoverErosionOutwardsWaveConditionsCalculationConfigurationReader(xmlFilePath);
+ }
}
}
Index: Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.IO.Test/Configurations/GrassCoverErosionOutwardsWaveConditionsCalculationConfigurationImporterTest.cs
===================================================================
diff -u -r138c88bf72a70ddfa2b98099c53d297b495d95c2 -r359d817d69eec5e474ddc4404fb7b35b91b555ad
--- Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.IO.Test/Configurations/GrassCoverErosionOutwardsWaveConditionsCalculationConfigurationImporterTest.cs (.../GrassCoverErosionOutwardsWaveConditionsCalculationConfigurationImporterTest.cs) (revision 138c88bf72a70ddfa2b98099c53d297b495d95c2)
+++ Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.IO.Test/Configurations/GrassCoverErosionOutwardsWaveConditionsCalculationConfigurationImporterTest.cs (.../GrassCoverErosionOutwardsWaveConditionsCalculationConfigurationImporterTest.cs) (revision 359d817d69eec5e474ddc4404fb7b35b91b555ad)
@@ -44,7 +44,7 @@
Enumerable.Empty());
// Assert
- Assert.IsInstanceOf>(importer);
+ Assert.IsInstanceOf>(importer);
}
}
}
\ No newline at end of file
Index: Ringtoets/Revetment/src/Ringtoets.Revetment.IO/Configurations/AssessmentSectionCategoryWaveConditionsCalculationConfigurationImporter.cs
===================================================================
diff -u -r45fecbd01648810e02c1465310a86547c2b11ca7 -r359d817d69eec5e474ddc4404fb7b35b91b555ad
--- Ringtoets/Revetment/src/Ringtoets.Revetment.IO/Configurations/AssessmentSectionCategoryWaveConditionsCalculationConfigurationImporter.cs (.../AssessmentSectionCategoryWaveConditionsCalculationConfigurationImporter.cs) (revision 45fecbd01648810e02c1465310a86547c2b11ca7)
+++ Ringtoets/Revetment/src/Ringtoets.Revetment.IO/Configurations/AssessmentSectionCategoryWaveConditionsCalculationConfigurationImporter.cs (.../AssessmentSectionCategoryWaveConditionsCalculationConfigurationImporter.cs) (revision 359d817d69eec5e474ddc4404fb7b35b91b555ad)
@@ -33,7 +33,8 @@
/// .
///
/// The type of the calculation to import.
- public class AssessmentSectionCategoryWaveConditionsCalculationConfigurationImporter : WaveConditionsCalculationConfigurationImporter
+ public class AssessmentSectionCategoryWaveConditionsCalculationConfigurationImporter
+ : WaveConditionsCalculationConfigurationImporter
where T : ICalculation, new()
{
///
@@ -52,5 +53,10 @@
IEnumerable hydraulicBoundaryLocations,
IEnumerable foreshoreProfiles)
: base(xmlFilePath, importTarget, hydraulicBoundaryLocations, foreshoreProfiles) {}
+
+ protected override AssessmentSectionCategoryWaveConditionsCalculationConfigurationReader CreateCalculationConfigurationReader(string xmlFilePath)
+ {
+ return new AssessmentSectionCategoryWaveConditionsCalculationConfigurationReader(xmlFilePath);
+ }
}
}
\ No newline at end of file
Index: Ringtoets/Revetment/src/Ringtoets.Revetment.IO/Configurations/WaveConditionsCalculationConfigurationImporter.cs
===================================================================
diff -u -r3ddd2e86216438a423797aecd4b1f9808df00bcb -r359d817d69eec5e474ddc4404fb7b35b91b555ad
--- Ringtoets/Revetment/src/Ringtoets.Revetment.IO/Configurations/WaveConditionsCalculationConfigurationImporter.cs (.../WaveConditionsCalculationConfigurationImporter.cs) (revision 3ddd2e86216438a423797aecd4b1f9808df00bcb)
+++ Ringtoets/Revetment/src/Ringtoets.Revetment.IO/Configurations/WaveConditionsCalculationConfigurationImporter.cs (.../WaveConditionsCalculationConfigurationImporter.cs) (revision 359d817d69eec5e474ddc4404fb7b35b91b555ad)
@@ -37,16 +37,20 @@
/// Imports a wave conditions calculation configuration from an XML file and stores it on a
/// .
///
- /// The type of the calculation to import.
- public class WaveConditionsCalculationConfigurationImporter
- : CalculationConfigurationImporter
- where T : ICalculation, new()
+ /// The type of the calculation to import.
+ /// The type of the reader to use.
+ /// The type of calculation configuration.
+ public abstract class WaveConditionsCalculationConfigurationImporter
+ : CalculationConfigurationImporter
+ where TCalculation : ICalculation, new()
+ where TCalculationConfigurationReader : CalculationConfigurationReader
+ where TCalculationConfiguration : WaveConditionsCalculationConfiguration
{
private readonly IEnumerable availableHydraulicBoundaryLocations;
private readonly IEnumerable availableForeshoreProfiles;
///
- /// Creates a new instance of .
+ /// Creates a new instance of .
///
/// The path to the XML file to import from.
/// The calculation group to update.
@@ -56,7 +60,7 @@
/// the imported objects contain the right profile.
/// Thrown when any parameter is
/// null.
- public WaveConditionsCalculationConfigurationImporter(string xmlFilePath,
+ protected WaveConditionsCalculationConfigurationImporter(string xmlFilePath,
CalculationGroup importTarget,
IEnumerable hydraulicBoundaryLocations,
IEnumerable foreshoreProfiles)
@@ -74,14 +78,11 @@
availableForeshoreProfiles = foreshoreProfiles;
}
- protected override AssessmentSectionCategoryWaveConditionsCalculationConfigurationReader CreateCalculationConfigurationReader(string xmlFilePath)
- {
- return new AssessmentSectionCategoryWaveConditionsCalculationConfigurationReader(xmlFilePath);
- }
+ protected abstract override TCalculationConfigurationReader CreateCalculationConfigurationReader(string xmlFilePath);
- protected override ICalculation ParseReadCalculation(AssessmentSectionCategoryWaveConditionsCalculationConfiguration calculationConfiguration)
+ protected override ICalculation ParseReadCalculation(TCalculationConfiguration calculationConfiguration)
{
- var waveConditionsCalculation = new T
+ var waveConditionsCalculation = new TCalculation
{
Name = calculationConfiguration.Name
};
Index: Ringtoets/Revetment/test/Ringtoets.Revetment.IO.Test/Configurations/AssessmentSectionCategoryWaveConditionsCalculationConfigurationImporterTest.cs
===================================================================
diff -u -r45fecbd01648810e02c1465310a86547c2b11ca7 -r359d817d69eec5e474ddc4404fb7b35b91b555ad
--- Ringtoets/Revetment/test/Ringtoets.Revetment.IO.Test/Configurations/AssessmentSectionCategoryWaveConditionsCalculationConfigurationImporterTest.cs (.../AssessmentSectionCategoryWaveConditionsCalculationConfigurationImporterTest.cs) (revision 45fecbd01648810e02c1465310a86547c2b11ca7)
+++ Ringtoets/Revetment/test/Ringtoets.Revetment.IO.Test/Configurations/AssessmentSectionCategoryWaveConditionsCalculationConfigurationImporterTest.cs (.../AssessmentSectionCategoryWaveConditionsCalculationConfigurationImporterTest.cs) (revision 359d817d69eec5e474ddc4404fb7b35b91b555ad)
@@ -44,7 +44,7 @@
Enumerable.Empty());
// Assert
- Assert.IsInstanceOf>(importer);
+ Assert.IsInstanceOf>(importer);
}
private class TestTargetTestWaveConditionsCalculation : TestWaveConditionsCalculation
Index: Ringtoets/Revetment/test/Ringtoets.Revetment.IO.Test/Configurations/WaveConditionsCalculationConfigurationImporterTest.cs
===================================================================
diff -u -r3ddd2e86216438a423797aecd4b1f9808df00bcb -r359d817d69eec5e474ddc4404fb7b35b91b555ad
--- Ringtoets/Revetment/test/Ringtoets.Revetment.IO.Test/Configurations/WaveConditionsCalculationConfigurationImporterTest.cs (.../WaveConditionsCalculationConfigurationImporterTest.cs) (revision 3ddd2e86216438a423797aecd4b1f9808df00bcb)
+++ Ringtoets/Revetment/test/Ringtoets.Revetment.IO.Test/Configurations/WaveConditionsCalculationConfigurationImporterTest.cs (.../WaveConditionsCalculationConfigurationImporterTest.cs) (revision 359d817d69eec5e474ddc4404fb7b35b91b555ad)
@@ -20,8 +20,10 @@
// All rights reserved.
using System;
+using System.Collections.Generic;
using System.IO;
using System.Linq;
+using System.Xml.Linq;
using Core.Common.Base.Data;
using Core.Common.Base.Geometry;
using Core.Common.TestUtil;
@@ -46,21 +48,21 @@
public void Constructor_ExpectedValues()
{
// Call
- var importer = new WaveConditionsCalculationConfigurationImporter(
+ var importer = new TestWaveConditionsCalculationConfigurationImporter(
"",
new CalculationGroup(),
Enumerable.Empty(),
Enumerable.Empty());
// Assert
- Assert.IsInstanceOf>(importer);
+ Assert.IsInstanceOf>(importer);
}
[Test]
public void Constructor_HydraulicBoundaryLocationsNull_ThrowArgumentNullException()
{
// Call
- TestDelegate test = () => new WaveConditionsCalculationConfigurationImporter(
+ TestDelegate test = () => new TestWaveConditionsCalculationConfigurationImporter(
"",
new CalculationGroup(),
null,
@@ -75,7 +77,7 @@
public void Constructor_ForeshoreProfilesNull_ThrowArgumentNullException()
{
// Call
- TestDelegate test = () => new WaveConditionsCalculationConfigurationImporter(
+ TestDelegate test = () => new TestWaveConditionsCalculationConfigurationImporter(
"",
new CalculationGroup(),
Enumerable.Empty(),
@@ -100,7 +102,7 @@
string filePath = Path.Combine(path, file);
var calculationGroup = new CalculationGroup();
- var importer = new WaveConditionsCalculationConfigurationImporter(
+ var importer = new TestWaveConditionsCalculationConfigurationImporter(
filePath,
calculationGroup,
Enumerable.Empty(),
@@ -124,7 +126,7 @@
string filePath = Path.Combine(path, "validConfigurationCalculationContainingUnknownHydraulicBoundaryLocation.xml");
var calculationGroup = new CalculationGroup();
- var importer = new WaveConditionsCalculationConfigurationImporter(
+ var importer = new TestWaveConditionsCalculationConfigurationImporter(
filePath,
calculationGroup,
Enumerable.Empty(),
@@ -135,7 +137,7 @@
Action call = () => successful = importer.Import();
// Assert
- const string expectedMessage = "De locatie met hydraulische randvoorwaarden 'HRlocatie' bestaat niet. Berekening 'Calculation' is overgeslagen.";
+ const string expectedMessage = "De locatie met hydraulische randvoorwaarden 'HRlocatie' bestaat niet. Berekening 'Berekening 1' is overgeslagen.";
TestHelper.AssertLogMessageWithLevelIsGenerated(call, Tuple.Create(expectedMessage, LogLevelConstant.Error), 1);
Assert.IsTrue(successful);
CollectionAssert.IsEmpty(calculationGroup.Children);
@@ -148,7 +150,7 @@
string filePath = Path.Combine(path, "validConfigurationCalculationContainingUnknownForeshoreProfile.xml");
var calculationGroup = new CalculationGroup();
- var importer = new WaveConditionsCalculationConfigurationImporter(
+ var importer = new TestWaveConditionsCalculationConfigurationImporter(
filePath,
calculationGroup,
Enumerable.Empty(),
@@ -172,7 +174,7 @@
string filePath = Path.Combine(path, "validConfigurationCalculationContainingWaveReductionWithoutForeshoreProfile.xml");
var calculationGroup = new CalculationGroup();
- var importer = new WaveConditionsCalculationConfigurationImporter(
+ var importer = new TestWaveConditionsCalculationConfigurationImporter(
filePath,
calculationGroup,
Enumerable.Empty(),
@@ -197,7 +199,7 @@
var calculationGroup = new CalculationGroup();
var foreshoreProfile = new TestForeshoreProfile("Voorlandprofiel");
- var importer = new WaveConditionsCalculationConfigurationImporter(
+ var importer = new TestWaveConditionsCalculationConfigurationImporter(
filePath,
calculationGroup,
Enumerable.Empty(),
@@ -225,7 +227,7 @@
var calculationGroup = new CalculationGroup();
var foreshoreProfile = new TestForeshoreProfile("Voorlandprofiel");
- var importer = new WaveConditionsCalculationConfigurationImporter(
+ var importer = new TestWaveConditionsCalculationConfigurationImporter(
filePath,
calculationGroup,
Enumerable.Empty(),
@@ -274,7 +276,7 @@
Name = "VoorlandProfielName"
});
- var importer = new WaveConditionsCalculationConfigurationImporter(
+ var importer = new TestWaveConditionsCalculationConfigurationImporter(
filePath,
calculationGroup,
new[]
@@ -336,9 +338,41 @@
Assert.AreEqual(expectedCalculation.InputParameters.BreakWater.Type, actualCalculation.InputParameters.BreakWater.Type);
}
+ private class TestWaveConditionsCalculationConfigurationImporter
+ : WaveConditionsCalculationConfigurationImporter
+ {
+ public TestWaveConditionsCalculationConfigurationImporter(string xmlFilePath,
+ CalculationGroup importTarget,
+ IEnumerable hydraulicBoundaryLocations,
+ IEnumerable foreshoreProfiles)
+ : base(xmlFilePath, importTarget, hydraulicBoundaryLocations, foreshoreProfiles) {}
+
+ protected override TestWaveConditionsCalculationConfigurationReader CreateCalculationConfigurationReader(
+ string xmlFilePath)
+ {
+ return new TestWaveConditionsCalculationConfigurationReader(xmlFilePath);
+ }
+ }
+
private class TestTargetTestWaveConditionsCalculation : TestWaveConditionsCalculation
{
public TestTargetTestWaveConditionsCalculation() : base(new TestWaveConditionsInput()) {}
}
+
+ private class TestWaveConditionsCalculationConfigurationReader : WaveConditionsCalculationConfigurationReader
+ {
+ private static readonly string testDirectoryPath = TestHelper.GetTestDataPath(TestDataPath.Ringtoets.Revetment.IO,
+ nameof(WaveConditionsCalculationConfigurationImporter, WaveConditionsCalculationConfiguration>));
+
+ public TestWaveConditionsCalculationConfigurationReader(string xmlFilePath)
+ : base(xmlFilePath, File.ReadAllText(Path.Combine(testDirectoryPath, "validConfigurationSchema.xsd"))) {}
+
+ protected override WaveConditionsCalculationConfiguration ParseCalculationElement(XElement calculationElement)
+ {
+ var configuration = new WaveConditionsCalculationConfiguration("Berekening 1");
+ ParseCalculationElementData(calculationElement, configuration);
+ return configuration;
+ }
+ }
}
}
\ No newline at end of file
Index: Ringtoets/Revetment/test/Ringtoets.Revetment.IO.Test/test-data/WaveConditionsCalculationConfigurationImporter/validConfigurationCalculationContainingUnknownHydraulicBoundaryLocation.xml
===================================================================
diff -u -r24c6381ad343979eeeabaf26e1ab9a85b482f607 -r359d817d69eec5e474ddc4404fb7b35b91b555ad
--- Ringtoets/Revetment/test/Ringtoets.Revetment.IO.Test/test-data/WaveConditionsCalculationConfigurationImporter/validConfigurationCalculationContainingUnknownHydraulicBoundaryLocation.xml (.../validConfigurationCalculationContainingUnknownHydraulicBoundaryLocation.xml) (revision 24c6381ad343979eeeabaf26e1ab9a85b482f607)
+++ Ringtoets/Revetment/test/Ringtoets.Revetment.IO.Test/test-data/WaveConditionsCalculationConfigurationImporter/validConfigurationCalculationContainingUnknownHydraulicBoundaryLocation.xml (.../validConfigurationCalculationContainingUnknownHydraulicBoundaryLocation.xml) (revision 359d817d69eec5e474ddc4404fb7b35b91b555ad)
@@ -1,6 +1,6 @@
-
+
HRlocatie
\ No newline at end of file
Index: Ringtoets/Revetment/test/Ringtoets.Revetment.IO.Test/test-data/WaveConditionsCalculationConfigurationImporter/validConfigurationSchema.xsd
===================================================================
diff -u
--- Ringtoets/Revetment/test/Ringtoets.Revetment.IO.Test/test-data/WaveConditionsCalculationConfigurationImporter/validConfigurationSchema.xsd (revision 0)
+++ Ringtoets/Revetment/test/Ringtoets.Revetment.IO.Test/test-data/WaveConditionsCalculationConfigurationImporter/validConfigurationSchema.xsd (revision 359d817d69eec5e474ddc4404fb7b35b91b555ad)
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file