Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/IntegrationTests/MigrationTo181IntegrationTest.cs
===================================================================
diff -u -r79ad32f225a4b56628cd515fd2ac82f31f0b7736 -r146a14cd6e338acf7600d9a1fb3da2a00cbb6e13
--- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/IntegrationTests/MigrationTo181IntegrationTest.cs (.../MigrationTo181IntegrationTest.cs) (revision 79ad32f225a4b56628cd515fd2ac82f31f0b7736)
+++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/IntegrationTests/MigrationTo181IntegrationTest.cs (.../MigrationTo181IntegrationTest.cs) (revision 146a14cd6e338acf7600d9a1fb3da2a00cbb6e13)
@@ -31,6 +31,22 @@
{
public class MigrationTo181IntegrationTest
{
+ ///
+ /// Enum to indicate the normative norm type.
+ ///
+ private enum NormativeNormType
+ {
+ ///
+ /// Represents the lower limit norm.
+ ///
+ LowerLimitNorm = 1,
+
+ ///
+ /// Represents the signaling norm.
+ ///
+ SignalingNorm = 2
+ }
+
private const string newVersion = "18.1";
[Test]
@@ -63,7 +79,8 @@
AssertDatabase(reader);
AssertAssessmentSection(reader, sourceFilePath);
- AssertHydraulicBoundaryLocations(reader, sourceFilePath);
+ AssertHydraulicBoundaryLocationsProperties(reader, sourceFilePath);
+ AssertHydraulicBoundaryLocationsOnAssessmentSection(reader, sourceFilePath);
AssertPipingSoilLayers(reader);
AssertHydraRingPreprocessor(reader);
@@ -407,85 +424,136 @@
reader.AssertReturnedDataIsValid(validateAssessmentSectionEntities);
}
- #region Migrated Hydraulic Boundary Locations
-
- private static void AssertHydraulicBoundaryLocations(MigratedDatabaseReader reader, string sourceFilePath)
+ private static void AssertHydraulicBoundaryLocationsProperties(MigratedDatabaseReader reader, string sourceFilePath)
{
- var queryGenerator = new HydraulicLocationValidationQueryGenerator(sourceFilePath);
+ string validateMigratedHyraulicBoundaryLocations = $"ATTACH DATABASE \"{sourceFilePath}\" AS SOURCEPROJECT; " +
+ "SELECT " +
+ "COUNT() = (SELECT COUNT() FROM[SOURCEPROJECT].HydraulicLocationEntity) " +
+ "FROM HydraulicLocationEntity NEW " +
+ "JOIN[SourceProject].HydraulicLocationEntity AS OLD USING(HydraulicLocationEntityId) " +
+ "WHERE NEW.AssessmentSectionEntityId = OLD.AssessmentSectionEntityId " +
+ "AND NEW.LocationId = OLD.LocationId " +
+ "AND NEW.Name = OLD.Name " +
+ "AND NEW.LocationX = OLD.LocationX " +
+ "AND NEW.LocationY = OLD.LocationY " +
+ "AND NEW.\"Order\" = OLD.\"Order\"; " +
+ "DETACH DATABASE SOURCEPROJECT;";
+ reader.AssertReturnedDataIsValid(validateMigratedHyraulicBoundaryLocations);
- reader.AssertReturnedDataIsValid(queryGenerator.GetMigratedHydraulicLocationsValidationQuery());
- reader.AssertReturnedDataIsValid(queryGenerator.GetNrOfHydraulicBoundaryLocationCalculationsValidationQuery());
- reader.AssertReturnedDataIsValid(HydraulicLocationValidationQueryGenerator.GetHydraulicBoundaryLocationCalculationInputValidationQuery());
+ string validateNrOfHydraulicLocationCalculations =
+ $"ATTACH DATABASE \"{sourceFilePath}\" AS SOURCEPROJECT; " +
+ "SELECT " +
+ "COUNT() = 0 " +
+ "FROM " +
+ "( " +
+ "SELECT " +
+ "COUNT(distinct HydraulicLocationCalculationEntityId) AS NrOfCalculationsPerLocation " +
+ "FROM [SOURCEPROJECT].HydraulicLocationEntity " +
+ "LEFT JOIN HydraulicLocationCalculationEntity USING (HydraulicLocationEntityId) " +
+ "GROUP BY HydraulicLocationEntityId " +
+ ") " +
+ "WHERE NrOfCalculationsPerLocation IS NOT 14; " +
+ "DETACH DATABASE SOURCEPROJECT;";
+ reader.AssertReturnedDataIsValid(validateNrOfHydraulicLocationCalculations);
- AssertDesignWaterLevelCalculationEntities(reader, queryGenerator);
- AssertWaveHeightCalculationEntities(reader, queryGenerator);
+ const string validateHydraulicBoundaryCalculationInputValues = "SELECT " +
+ "COUNT() = 0 " +
+ "FROM HydraulicLocationCalculationEntity " +
+ "WHERE ShouldIllustrationPointsBeCalculated != 0 AND ShouldIllustrationPointsBeCalculated != 1";
+ reader.AssertReturnedDataIsValid(validateHydraulicBoundaryCalculationInputValues);
+
+ string validateNrOfHydraulicLocationCalculationOutputs =
+ $"ATTACH DATABASE \"{sourceFilePath}\" AS SOURCEPROJECT; " +
+ "SELECT COUNT() = " +
+ "( " +
+ "SELECT COUNT() + " +
+ "( " +
+ "SELECT COUNT() " +
+ "FROM [SOURCEPROJECT].GrassCoverErosionOutwardsHydraulicLocationOutputEntity " +
+ ") " +
+ "FROM [SOURCEPROJECT].HydraulicLocationOutputEntity " +
+ ") " +
+ "FROM HydraulicLocationOutputEntity; " +
+ "DETACH DATABASE SOURCEPROJECT;";
+ reader.AssertReturnedDataIsValid(validateNrOfHydraulicLocationCalculationOutputs);
}
- private static void AssertWaveHeightCalculationEntities(MigratedDatabaseReader reader, HydraulicLocationValidationQueryGenerator queryGenerator)
+ private static void AssertHydraulicBoundaryLocationsOnAssessmentSection(MigratedDatabaseReader reader, string sourceFilePath)
{
+ var queryGenerator = new HydraulicLocationValidationQueryGeneratorOnAssessmentSection(sourceFilePath);
+ AssertDesignWaterLevelCalculationEntitiesOnAssessmentSection(reader, queryGenerator);
+ AssertWaveHeightCalculationEntitiesOnAssessmentSection(reader, queryGenerator);
+ }
+
+ #region Migrated Hydraulic Boundary Locations on Assessment section
+
+ private static void AssertWaveHeightCalculationEntitiesOnAssessmentSection(MigratedDatabaseReader reader,
+ HydraulicLocationValidationQueryGeneratorOnAssessmentSection queryGenerator)
+ {
reader.AssertReturnedDataIsValid(queryGenerator.GetNrOfHydraulicBoundaryLocationCalculationsPerAssessmentSectionValidationQuery(
- HydraulicLocationValidationQueryGenerator.CalculationType.WaveHeightCalculationsForFactorizedSignalingNorm));
+ HydraulicLocationValidationQueryGeneratorOnAssessmentSection.CalculationType.WaveHeightCalculationsForFactorizedSignalingNorm));
reader.AssertReturnedDataIsValid(queryGenerator.GetNrOfHydraulicBoundaryLocationCalculationsPerAssessmentSectionValidationQuery(
- HydraulicLocationValidationQueryGenerator.CalculationType.WaveHeightCalculationsForSignalingNorm));
+ HydraulicLocationValidationQueryGeneratorOnAssessmentSection.CalculationType.WaveHeightCalculationsForSignalingNorm));
reader.AssertReturnedDataIsValid(queryGenerator.GetNrOfHydraulicBoundaryLocationCalculationsPerAssessmentSectionValidationQuery(
- HydraulicLocationValidationQueryGenerator.CalculationType.WaveHeightCalculationsForLowerLimitNorm));
+ HydraulicLocationValidationQueryGeneratorOnAssessmentSection.CalculationType.WaveHeightCalculationsForLowerLimitNorm));
reader.AssertReturnedDataIsValid(queryGenerator.GetNrOfHydraulicBoundaryLocationCalculationsPerAssessmentSectionValidationQuery(
- HydraulicLocationValidationQueryGenerator.CalculationType.WaveHeightCalculationsForFactorizedLowerLimitNorm));
+ HydraulicLocationValidationQueryGeneratorOnAssessmentSection.CalculationType.WaveHeightCalculationsForFactorizedLowerLimitNorm));
reader.AssertReturnedDataIsValid(queryGenerator.GetMigratedWaveHeightCalculationsValidationQuery(
- HydraulicLocationValidationQueryGenerator.NormativeNormType.LowerLimitNorm));
+ NormativeNormType.LowerLimitNorm));
reader.AssertReturnedDataIsValid(queryGenerator.GetMigratedWaveHeightCalculationsValidationQuery(
- HydraulicLocationValidationQueryGenerator.NormativeNormType.SignalingNorm));
+ NormativeNormType.SignalingNorm));
reader.AssertReturnedDataIsValid(queryGenerator.GetMigratedWaveHeightCalculationOutputsValidationQuery(
- HydraulicLocationValidationQueryGenerator.NormativeNormType.LowerLimitNorm));
+ NormativeNormType.LowerLimitNorm));
reader.AssertReturnedDataIsValid(queryGenerator.GetMigratedWaveHeightCalculationOutputsValidationQuery(
- HydraulicLocationValidationQueryGenerator.NormativeNormType.SignalingNorm));
+ NormativeNormType.SignalingNorm));
reader.AssertReturnedDataIsValid(queryGenerator.GetNewCalculationsValidationQuery(
- HydraulicLocationValidationQueryGenerator.CalculationType.WaveHeightCalculationsForFactorizedLowerLimitNorm));
+ HydraulicLocationValidationQueryGeneratorOnAssessmentSection.CalculationType.WaveHeightCalculationsForFactorizedLowerLimitNorm));
reader.AssertReturnedDataIsValid(queryGenerator.GetNewCalculationsValidationQuery(
- HydraulicLocationValidationQueryGenerator.CalculationType.WaveHeightCalculationsForFactorizedSignalingNorm));
- reader.AssertReturnedDataIsValid(HydraulicLocationValidationQueryGenerator.GetNewCalculationOutputsValidationQuery(
- HydraulicLocationValidationQueryGenerator.CalculationType.WaterLevelCalculationsForFactorizedLowerLimitNorm));
- reader.AssertReturnedDataIsValid(HydraulicLocationValidationQueryGenerator.GetNewCalculationOutputsValidationQuery(
- HydraulicLocationValidationQueryGenerator.CalculationType.WaveHeightCalculationsForFactorizedSignalingNorm));
+ HydraulicLocationValidationQueryGeneratorOnAssessmentSection.CalculationType.WaveHeightCalculationsForFactorizedSignalingNorm));
+ reader.AssertReturnedDataIsValid(HydraulicLocationValidationQueryGeneratorOnAssessmentSection.GetNewCalculationOutputsValidationQuery(
+ HydraulicLocationValidationQueryGeneratorOnAssessmentSection.CalculationType.WaterLevelCalculationsForFactorizedLowerLimitNorm));
+ reader.AssertReturnedDataIsValid(HydraulicLocationValidationQueryGeneratorOnAssessmentSection.GetNewCalculationOutputsValidationQuery(
+ HydraulicLocationValidationQueryGeneratorOnAssessmentSection.CalculationType.WaveHeightCalculationsForFactorizedSignalingNorm));
}
- private static void AssertDesignWaterLevelCalculationEntities(MigratedDatabaseReader reader, HydraulicLocationValidationQueryGenerator queryGenerator)
+ private static void AssertDesignWaterLevelCalculationEntitiesOnAssessmentSection(MigratedDatabaseReader reader,
+ HydraulicLocationValidationQueryGeneratorOnAssessmentSection queryGenerator)
{
reader.AssertReturnedDataIsValid(queryGenerator.GetNrOfHydraulicBoundaryLocationCalculationsPerAssessmentSectionValidationQuery(
- HydraulicLocationValidationQueryGenerator.CalculationType.WaterLevelCalculationsForFactorizedSignalingNorm));
+ HydraulicLocationValidationQueryGeneratorOnAssessmentSection.CalculationType.WaterLevelCalculationsForFactorizedSignalingNorm));
reader.AssertReturnedDataIsValid(queryGenerator.GetNrOfHydraulicBoundaryLocationCalculationsPerAssessmentSectionValidationQuery(
- HydraulicLocationValidationQueryGenerator.CalculationType.WaterLevelCalculationsForSignalingNorm));
+ HydraulicLocationValidationQueryGeneratorOnAssessmentSection.CalculationType.WaterLevelCalculationsForSignalingNorm));
reader.AssertReturnedDataIsValid(queryGenerator.GetNrOfHydraulicBoundaryLocationCalculationsPerAssessmentSectionValidationQuery(
- HydraulicLocationValidationQueryGenerator.CalculationType.WaterLevelCalculationsForLowerLimitNorm));
+ HydraulicLocationValidationQueryGeneratorOnAssessmentSection.CalculationType.WaterLevelCalculationsForLowerLimitNorm));
reader.AssertReturnedDataIsValid(queryGenerator.GetNrOfHydraulicBoundaryLocationCalculationsPerAssessmentSectionValidationQuery(
- HydraulicLocationValidationQueryGenerator.CalculationType.WaterLevelCalculationsForFactorizedLowerLimitNorm));
+ HydraulicLocationValidationQueryGeneratorOnAssessmentSection.CalculationType.WaterLevelCalculationsForFactorizedLowerLimitNorm));
reader.AssertReturnedDataIsValid(queryGenerator.GetMigratedDesignWaterLevelCalculationsValidationQuery(
- HydraulicLocationValidationQueryGenerator.NormativeNormType.LowerLimitNorm));
+ NormativeNormType.LowerLimitNorm));
reader.AssertReturnedDataIsValid(queryGenerator.GetMigratedDesignWaterLevelCalculationsValidationQuery(
- HydraulicLocationValidationQueryGenerator.NormativeNormType.SignalingNorm));
+ NormativeNormType.SignalingNorm));
reader.AssertReturnedDataIsValid(queryGenerator.GetMigratedDesignWaterLevelCalculationOutputsValidationQuery(
- HydraulicLocationValidationQueryGenerator.NormativeNormType.LowerLimitNorm));
+ NormativeNormType.LowerLimitNorm));
reader.AssertReturnedDataIsValid(queryGenerator.GetMigratedDesignWaterLevelCalculationOutputsValidationQuery(
- HydraulicLocationValidationQueryGenerator.NormativeNormType.SignalingNorm));
+ NormativeNormType.SignalingNorm));
reader.AssertReturnedDataIsValid(queryGenerator.GetNewCalculationsValidationQuery(
- HydraulicLocationValidationQueryGenerator.CalculationType.WaterLevelCalculationsForFactorizedLowerLimitNorm));
+ HydraulicLocationValidationQueryGeneratorOnAssessmentSection.CalculationType.WaterLevelCalculationsForFactorizedLowerLimitNorm));
reader.AssertReturnedDataIsValid(queryGenerator.GetNewCalculationsValidationQuery(
- HydraulicLocationValidationQueryGenerator.CalculationType.WaterLevelCalculationsForFactorizedSignalingNorm));
- reader.AssertReturnedDataIsValid(HydraulicLocationValidationQueryGenerator.GetNewCalculationOutputsValidationQuery(
- HydraulicLocationValidationQueryGenerator.CalculationType.WaterLevelCalculationsForFactorizedLowerLimitNorm));
- reader.AssertReturnedDataIsValid(HydraulicLocationValidationQueryGenerator.GetNewCalculationOutputsValidationQuery(
- HydraulicLocationValidationQueryGenerator.CalculationType.WaterLevelCalculationsForFactorizedSignalingNorm));
+ HydraulicLocationValidationQueryGeneratorOnAssessmentSection.CalculationType.WaterLevelCalculationsForFactorizedSignalingNorm));
+ reader.AssertReturnedDataIsValid(HydraulicLocationValidationQueryGeneratorOnAssessmentSection.GetNewCalculationOutputsValidationQuery(
+ HydraulicLocationValidationQueryGeneratorOnAssessmentSection.CalculationType.WaterLevelCalculationsForFactorizedLowerLimitNorm));
+ reader.AssertReturnedDataIsValid(HydraulicLocationValidationQueryGeneratorOnAssessmentSection.GetNewCalculationOutputsValidationQuery(
+ HydraulicLocationValidationQueryGeneratorOnAssessmentSection.CalculationType.WaterLevelCalculationsForFactorizedSignalingNorm));
}
///
/// Class to generate queries which can be used if the hydraulic boundary locations
- /// are correctly migrated.
+ /// are correctly migrated on the assessment section level.
///
- private class HydraulicLocationValidationQueryGenerator
+ private class HydraulicLocationValidationQueryGeneratorOnAssessmentSection
{
///
/// Enum to indicate the hydraulic location calculation type.
@@ -533,28 +601,15 @@
WaveHeightCalculationsForFactorizedLowerLimitNorm = 8
}
- public enum NormativeNormType
- {
- ///
- /// Represents the lower limit norm.
- ///
- LowerLimitNorm = 1,
-
- ///
- /// Represents the signaling norm.
- ///
- SignalingNorm = 2
- }
-
private readonly string sourceFilePath;
///
- /// Creates a new instance of .
+ /// Creates a new instance of .
///
/// The file path of the database to be verified.
/// Thrown when
/// is null or empty.
- public HydraulicLocationValidationQueryGenerator(string sourceFilePath)
+ public HydraulicLocationValidationQueryGeneratorOnAssessmentSection(string sourceFilePath)
{
if (string.IsNullOrEmpty(sourceFilePath))
{
@@ -566,61 +621,6 @@
}
///
- /// Generates a query to validate the migrated hydraulic boundary locations.
- ///
- /// The query to validate the migrated hydraulic boundary locations.
- public string GetMigratedHydraulicLocationsValidationQuery()
- {
- return $"ATTACH DATABASE \"{sourceFilePath}\" AS SOURCEPROJECT; " +
- "SELECT " +
- "COUNT() = (SELECT COUNT() FROM[SOURCEPROJECT].HydraulicLocationEntity) " +
- "FROM HydraulicLocationEntity NEW " +
- "JOIN[SourceProject].HydraulicLocationEntity AS OLD USING(HydraulicLocationEntityId) " +
- "WHERE NEW.AssessmentSectionEntityId = OLD.AssessmentSectionEntityId " +
- "AND NEW.LocationId = OLD.LocationId " +
- "AND NEW.Name = OLD.Name " +
- "AND NEW.LocationX = OLD.LocationX " +
- "AND NEW.LocationY = OLD.LocationY " +
- "AND NEW.\"Order\" = OLD.\"Order\"; " +
- "DETACH DATABASE SOURCEPROJECT;";
- }
-
- ///
- /// Generates a query to validate that the number of hydraulic boundary calculations matches
- /// with the number of hydraulic locations.
- ///
- /// The query to validate the hydraulic boundary locations.
- public string GetNrOfHydraulicBoundaryLocationCalculationsValidationQuery()
- {
- return $"ATTACH DATABASE \"{sourceFilePath}\" AS SOURCEPROJECT; " +
- "SELECT " +
- "COUNT() = 0 " +
- "FROM " +
- "( " +
- "SELECT " +
- "COUNT(distinct HydraulicLocationCalculationEntityId) AS NrOfCalculationsPerLocation " +
- "FROM [SOURCEPROJECT].HydraulicLocationEntity " +
- "LEFT JOIN HydraulicLocationCalculationEntity USING (HydraulicLocationEntityId) " +
- "GROUP BY HydraulicLocationEntityId " +
- ") " +
- "WHERE NrOfCalculationsPerLocation IS NOT 8; " +
- "DETACH DATABASE SOURCEPROJECT;";
- }
-
- ///
- /// Generates a query to validate if the created hydraulic boundary location calculation inputs have valid
- /// values.
- ///
- /// The query to validate the hydraulic boundary location calculation inputs.
- public static string GetHydraulicBoundaryLocationCalculationInputValidationQuery()
- {
- return "SELECT " +
- "COUNT() = 0 " +
- "FROM HydraulicLocationCalculationEntity " +
- "WHERE ShouldIllustrationPointsBeCalculated != 0 AND ShouldIllustrationPointsBeCalculated != 1";
- }
-
- ///
/// Generates a query to validate the number of created hydraulic boundary location calculations per assessment section.
///
/// The type of calculation that should be validated.
@@ -634,15 +634,15 @@
"(" +
"SELECT " +
"sourceAse.AssessmentSectionEntityId, " +
- "COUNT(distinct HydraulicLocationEntityId) AS OLDCount, " +
- "NEWCount " +
+ "COUNT(distinct HydraulicLocationEntityId) AS OldCount, " +
+ "NewCount " +
"FROM [SOURCEPROJECT].HydraulicLocationEntity sourceHle " +
"JOIN [SOURCEPROJECT].AssessmentSectionEntity sourceAse ON sourceHle.AssessmentSectionEntityId = sourceAse.AssessmentSectionEntityId " +
"LEFT JOIN " +
"(" +
"SELECT " +
"ase.AssessmentSectionEntityId, " +
- "COUNT(distinct HydraulicLocationEntityId) AS NEWCount " +
+ "COUNT(distinct HydraulicLocationEntityId) AS NewCount " +
"FROM AssessmentSectionEntity ase " +
$"JOIN HydraulicLocationCalculationCollectionEntity hlcce ON ase.HydraulicLocationCalculationCollectionEntity{(int) calculationType}Id " +
"= hlcce.HydraulicLocationCalculationCollectionEntityId " +
@@ -652,7 +652,7 @@
") USING(AssessmentSectionEntityId) " +
"GROUP BY sourceAse.AssessmentSectionEntityId " +
") " +
- "WHERE OLDCount IS NOT NewCount; " +
+ "WHERE OldCount IS NOT NewCount; " +
"DETACH DATABASE SOURCEPROJECT;";
}
@@ -713,8 +713,8 @@
"JOIN HydraulicLocationCalculationCollectionToHydraulicCalculationEntity USING (HydraulicLocationCalculationCollectionEntityId) " +
"JOIN HydraulicLocationCalculationEntity USING (HydraulicLocationCalculationEntityId) " +
"JOIN HydraulicLocationOutputEntity NEW USING (HydraulicLocationCalculationEntityId) " +
- "JOIN [SOURCEPROJECT].HydraulicLocationOutputEntity OLD ON NEW.HydraulicLocationOutputEntityId = OLD.HydraulicLocationEntityOutputId " +
- "WHERE NEW.GeneralResultSubMechanismIllustrationPointEntityId IS OLD.GeneralResultSubMechanismIllustrationPointEntityId " +
+ "JOIN [SOURCEPROJECT].HydraulicLocationOutputEntity OLD ON " +
+ "NEW.GeneralResultSubMechanismIllustrationPointEntityId IS OLD.GeneralResultSubMechanismIllustrationPointEntityId " +
"AND NEW.Result IS OLD.Result " +
"AND NEW.TargetProbability IS OLD.TargetProbability " +
"AND NEW.TargetReliability IS OLD.TargetReliability " +
@@ -781,8 +781,8 @@
"JOIN HydraulicLocationCalculationCollectionToHydraulicCalculationEntity USING (HydraulicLocationCalculationCollectionEntityId) " +
"JOIN HydraulicLocationCalculationEntity USING (HydraulicLocationCalculationEntityId) " +
"JOIN HydraulicLocationOutputEntity NEW USING (HydraulicLocationCalculationEntityId) " +
- "JOIN [SOURCEPROJECT].HydraulicLocationOutputEntity OLD ON NEW.HydraulicLocationOutputEntityId = OLD.HydraulicLocationEntityOutputId " +
- "WHERE NEW.GeneralResultSubMechanismIllustrationPointEntityId IS OLD.GeneralResultSubMechanismIllustrationPointEntityId " +
+ "JOIN [SOURCEPROJECT].HydraulicLocationOutputEntity OLD ON " +
+ "NEW.GeneralResultSubMechanismIllustrationPointEntityId IS OLD.GeneralResultSubMechanismIllustrationPointEntityId " +
"AND NEW.Result IS OLD.Result " +
"AND NEW.TargetProbability IS OLD.TargetProbability " +
"AND NEW.TargetReliability IS OLD.TargetReliability " +