Index: Ringtoets/Common/test/Ringtoets.Common.IO.Test/Readers/ConfigurationReaderTest.cs =================================================================== diff -u -r797f633c290d273f31478c64663174f3c980401c -rb5684d3c017e7e9ec5e2731ec52cd454d4cd34ec --- Ringtoets/Common/test/Ringtoets.Common.IO.Test/Readers/ConfigurationReaderTest.cs (.../ConfigurationReaderTest.cs) (revision 797f633c290d273f31478c64663174f3c980401c) +++ Ringtoets/Common/test/Ringtoets.Common.IO.Test/Readers/ConfigurationReaderTest.cs (.../ConfigurationReaderTest.cs) (revision b5684d3c017e7e9ec5e2731ec52cd454d4cd34ec) @@ -25,6 +25,7 @@ using System.Linq; using System.Xml; using System.Xml.Linq; +using System.Xml.Schema; using Core.Common.IO.Exceptions; using Core.Common.TestUtil; using NUnit.Framework; @@ -41,6 +42,19 @@ private readonly string testDirectoryPath = TestHelper.GetTestDataPath(TestDataPath.Ringtoets.Common.IO, "ConfigurationReader"); + private static IEnumerable InvalidConfigurations + { + get + { + yield return new TestCaseData("invalidFolderNoName.xml", + "The required attribute 'naam' is missing.") + .SetName("invalidFolderNoName"); + yield return new TestCaseData("invalidCalculationNoName.xml", + "The required attribute 'naam' is missing.") + .SetName("invalidCalculationNoName"); + } + } + [Test] [TestCase("")] [TestCase(" ")] @@ -157,6 +171,22 @@ } [Test] + [TestCaseSource(nameof(InvalidConfigurations))] + public void Constructor_FileInvalidBasedOnSchemaDefinition_ThrowCriticalFileReadException(string fileName, string expectedParsingMessage) + { + // Setup + string filePath = Path.Combine(testDirectoryPath, fileName); + + // Call + TestDelegate call = () => new ConfigurationReader(filePath, validMainSchemaDefinition, new Dictionary()); + + // Assert + var exception = Assert.Throws(call); + Assert.IsInstanceOf(exception.InnerException); + Assert.IsTrue(exception.InnerException?.Message.Contains(expectedParsingMessage)); + } + + [Test] public void Constructor_FileInvalidBasedOnSchemaDefinition_ThrowCriticalFileReadExceptionWithExpectedMessage() { // Setup @@ -174,7 +204,7 @@ } [Test] - public void Constructor_FileEmpty_ThrowCriticalFileReadExceptionWithExpectedMessage() + public void Constructor_FileEmpty_ThrowCriticalFileReadException() { // Setup string filePath = Path.Combine(testDirectoryPath, "emptyConfiguration.xml"); @@ -203,6 +233,25 @@ } [Test] + public void Read_ValidConfigurationWithEmptyFolder_ReturnExpectedReadCalculationGroup() + { + // Setup + string filePath = Path.Combine(testDirectoryPath, "validConfigurationEmptyFolder.xml"); + var configurationReader = new ConfigurationReader(filePath, validMainSchemaDefinition, new Dictionary()); + + // Call + IList readConfigurationItems = configurationReader.Read().ToList(); + + // Assert + Assert.AreEqual(1, readConfigurationItems.Count); + + var group = readConfigurationItems[0] as ReadCalculationGroup; + Assert.IsNotNull(group); + Assert.AreEqual("Calculation group", group.Name); + CollectionAssert.IsEmpty(group.Items); + } + + [Test] public void Read_ValidConfigurationWithNesting_ReturnExpectedReadConfigurationItems() { // Setup Index: Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/CombinedXmlSchemaDefinition/referencingUndefinedNestedSchemaDefinition.xsd =================================================================== diff -u -r0d6159f5ff86ecb8733595159267c32d68bd4bfb -rb5684d3c017e7e9ec5e2731ec52cd454d4cd34ec --- Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/CombinedXmlSchemaDefinition/referencingUndefinedNestedSchemaDefinition.xsd (.../referencingUndefinedNestedSchemaDefinition.xsd) (revision 0d6159f5ff86ecb8733595159267c32d68bd4bfb) +++ Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/CombinedXmlSchemaDefinition/referencingUndefinedNestedSchemaDefinition.xsd (.../referencingUndefinedNestedSchemaDefinition.xsd) (revision b5684d3c017e7e9ec5e2731ec52cd454d4cd34ec) @@ -1,7 +1,5 @@ - - @@ -13,7 +11,5 @@ - - \ No newline at end of file Index: Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/CombinedXmlSchemaDefinition/validMainSchemaDefinition.xsd =================================================================== diff -u -rc04a1ae67303b6029fe655a1fc7e57f6509e9a5f -rb5684d3c017e7e9ec5e2731ec52cd454d4cd34ec --- Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/CombinedXmlSchemaDefinition/validMainSchemaDefinition.xsd (.../validMainSchemaDefinition.xsd) (revision c04a1ae67303b6029fe655a1fc7e57f6509e9a5f) +++ Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/CombinedXmlSchemaDefinition/validMainSchemaDefinition.xsd (.../validMainSchemaDefinition.xsd) (revision b5684d3c017e7e9ec5e2731ec52cd454d4cd34ec) @@ -1,7 +1,5 @@ - - @@ -13,7 +11,5 @@ - - \ No newline at end of file Index: Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/CombinedXmlSchemaDefinition/validNestedSchemaDefinition1.xsd =================================================================== diff -u -rc04a1ae67303b6029fe655a1fc7e57f6509e9a5f -rb5684d3c017e7e9ec5e2731ec52cd454d4cd34ec --- Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/CombinedXmlSchemaDefinition/validNestedSchemaDefinition1.xsd (.../validNestedSchemaDefinition1.xsd) (revision c04a1ae67303b6029fe655a1fc7e57f6509e9a5f) +++ Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/CombinedXmlSchemaDefinition/validNestedSchemaDefinition1.xsd (.../validNestedSchemaDefinition1.xsd) (revision b5684d3c017e7e9ec5e2731ec52cd454d4cd34ec) @@ -1,23 +1,18 @@  - - - - - \ No newline at end of file Index: Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/CombinedXmlSchemaDefinition/validNestedSchemaDefinition2.xsd =================================================================== diff -u -rc04a1ae67303b6029fe655a1fc7e57f6509e9a5f -rb5684d3c017e7e9ec5e2731ec52cd454d4cd34ec --- Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/CombinedXmlSchemaDefinition/validNestedSchemaDefinition2.xsd (.../validNestedSchemaDefinition2.xsd) (revision c04a1ae67303b6029fe655a1fc7e57f6509e9a5f) +++ Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/CombinedXmlSchemaDefinition/validNestedSchemaDefinition2.xsd (.../validNestedSchemaDefinition2.xsd) (revision b5684d3c017e7e9ec5e2731ec52cd454d4cd34ec) @@ -1,13 +1,10 @@ - - - \ No newline at end of file Index: Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/ConfigurationReader/invalidCalculationNoName.xml =================================================================== diff -u --- Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/ConfigurationReader/invalidCalculationNoName.xml (revision 0) +++ Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/ConfigurationReader/invalidCalculationNoName.xml (revision b5684d3c017e7e9ec5e2731ec52cd454d4cd34ec) @@ -0,0 +1,4 @@ + + + + \ No newline at end of file Fisheye: Tag b5684d3c017e7e9ec5e2731ec52cd454d4cd34ec refers to a dead (removed) revision in file `Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/ConfigurationReader/invalidXsdContent.xsd'. Fisheye: No comparison available. Pass `N' to diff? Index: Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/ConfigurationReader/mainSchemaDefinitionNotReferencingDefaultSchema.xsd =================================================================== diff -u -r1d2bc8f06f058cf7bf75fffa684ceca7961ec1de -rb5684d3c017e7e9ec5e2731ec52cd454d4cd34ec --- Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/ConfigurationReader/mainSchemaDefinitionNotReferencingDefaultSchema.xsd (.../mainSchemaDefinitionNotReferencingDefaultSchema.xsd) (revision 1d2bc8f06f058cf7bf75fffa684ceca7961ec1de) +++ Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/ConfigurationReader/mainSchemaDefinitionNotReferencingDefaultSchema.xsd (.../mainSchemaDefinitionNotReferencingDefaultSchema.xsd) (revision b5684d3c017e7e9ec5e2731ec52cd454d4cd34ec) @@ -1,7 +1,4 @@ - - - \ No newline at end of file Fisheye: Tag b5684d3c017e7e9ec5e2731ec52cd454d4cd34ec refers to a dead (removed) revision in file `Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/ConfigurationReader/notReferencingBaseXsd.xsd'. Fisheye: No comparison available. Pass `N' to diff? Index: Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/ConfigurationReader/validConfigurationEmptyFolder.xml =================================================================== diff -u --- Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/ConfigurationReader/validConfigurationEmptyFolder.xml (revision 0) +++ Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/ConfigurationReader/validConfigurationEmptyFolder.xml (revision b5684d3c017e7e9ec5e2731ec52cd454d4cd34ec) @@ -0,0 +1,4 @@ + + + + \ No newline at end of file Index: Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/Readers/PipingConfigurationReaderTest.cs =================================================================== diff -u -r8a00046f9112833f25944b0f2631c7003f7a1692 -rb5684d3c017e7e9ec5e2731ec52cd454d4cd34ec --- Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/Readers/PipingConfigurationReaderTest.cs (.../PipingConfigurationReaderTest.cs) (revision 8a00046f9112833f25944b0f2631c7003f7a1692) +++ Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/Readers/PipingConfigurationReaderTest.cs (.../PipingConfigurationReaderTest.cs) (revision b5684d3c017e7e9ec5e2731ec52cd454d4cd34ec) @@ -41,12 +41,6 @@ { get { - yield return new TestCaseData("invalidFolderNoName.xml", - "The required attribute 'naam' is missing.") - .SetName("invalidFolderNoName"); - yield return new TestCaseData("invalidCalculationNoName.xml", - "The required attribute 'naam' is missing.") - .SetName("invalidCalculationNoName"); yield return new TestCaseData("invalidAssessmentLevelEmpty.xml", "The 'toetspeil' element is invalid - The value '' is invalid according to its datatype 'Double'") .SetName("invalidAssessmentLevelEmpty"); @@ -175,41 +169,6 @@ } [Test] - public void Constructor_FileInvalidBasedOnEmptyRoot_ThrowCriticalFileReadException() - { - // Setup - string filePath = Path.Combine(testDirectoryPath, "invalidEmptyRoot.xml"); - - // Call - TestDelegate call = () => new PipingConfigurationReader(filePath); - - // Assert - string expectedMessage = $"Fout bij het lezen van bestand '{filePath}': het XML-document dat de configuratie" + - " voor de berekeningen beschrijft bevat geen berekeningselementen."; - var exception = Assert.Throws(call); - Assert.AreEqual(expectedMessage, exception.Message); - } - - [Test] - public void Read_ValidConfigurationWithEmptyFolder_ReturnExpectedReadPipingCalculationGroup() - { - // Setup - string filePath = Path.Combine(testDirectoryPath, "validConfigurationEmptyFolder.xml"); - var pipingConfigurationReader = new PipingConfigurationReader(filePath); - - // Call - IList readConfigurationItems = pipingConfigurationReader.Read().ToList(); - - // Assert - Assert.AreEqual(1, readConfigurationItems.Count); - - var group = readConfigurationItems[0] as ReadCalculationGroup; - Assert.IsNotNull(group); - Assert.AreEqual("Calculation group", group.Name); - CollectionAssert.IsEmpty(group.Items); - } - - [Test] public void Read_ValidConfigurationWithEmptyCalculation_ReturnExpectedReadPipingCalculation() { // Setup @@ -260,68 +219,6 @@ } [Test] - public void Read_ValidConfigurationWithNesting_ReturnExpectedReadConfigurationItems() - { - // Setup - string filePath = Path.Combine(testDirectoryPath, "validConfigurationNesting.xml"); - var pipingConfigurationReader = new PipingConfigurationReader(filePath); - - // Call - IList readConfigurationItems = pipingConfigurationReader.Read().ToList(); - - // Assert - Assert.AreEqual(5, readConfigurationItems.Count); - - var group1 = readConfigurationItems[0] as ReadCalculationGroup; - Assert.IsNotNull(group1); - Assert.AreEqual("Group 1", group1.Name); - - var calculation1 = readConfigurationItems[1] as ReadPipingCalculation; - Assert.IsNotNull(calculation1); - Assert.AreEqual("Calculation 1", calculation1.Name); - - var group2 = readConfigurationItems[2] as ReadCalculationGroup; - Assert.IsNotNull(group2); - Assert.AreEqual("Group 2", group2.Name); - - var calculation2 = readConfigurationItems[3] as ReadPipingCalculation; - Assert.IsNotNull(calculation2); - Assert.AreEqual("Calculation 2", calculation2.Name); - - var group3 = readConfigurationItems[4] as ReadCalculationGroup; - Assert.IsNotNull(group3); - Assert.AreEqual("Group 3", group3.Name); - - List group1Items = group1.Items.ToList(); - Assert.AreEqual(1, group1Items.Count); - - var calculation3 = group1Items[0] as ReadPipingCalculation; - Assert.IsNotNull(calculation3); - Assert.AreEqual("Calculation 3", calculation3.Name); - - List group2Items = group2.Items.ToList(); - Assert.AreEqual(2, group2Items.Count); - - var group4 = group2Items[0] as ReadCalculationGroup; - Assert.IsNotNull(group4); - Assert.AreEqual("Group 4", group4.Name); - - var calculation4 = group2Items[1] as ReadPipingCalculation; - Assert.IsNotNull(calculation4); - Assert.AreEqual("Calculation 4", calculation4.Name); - - List group3Items = group3.Items.ToList(); - Assert.AreEqual(0, group3Items.Count); - - List group4Items = group4.Items.ToList(); - Assert.AreEqual(1, group4Items.Count); - - var calculation5 = group4Items[0] as ReadPipingCalculation; - Assert.IsNotNull(calculation5); - Assert.AreEqual("Calculation 5", calculation5.Name); - } - - [Test] public void Read_ValidConfigurationWithCalculationContainingNaNs_ReturnExpectedReadPipingCalculation() { // Setup Fisheye: Tag b5684d3c017e7e9ec5e2731ec52cd454d4cd34ec refers to a dead (removed) revision in file `Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingConfigurationReader/invalidCalculationNoName.xml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag b5684d3c017e7e9ec5e2731ec52cd454d4cd34ec refers to a dead (removed) revision in file `Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingConfigurationReader/invalidEmptyRoot.xml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag b5684d3c017e7e9ec5e2731ec52cd454d4cd34ec refers to a dead (removed) revision in file `Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingConfigurationReader/invalidFolderNoName.xml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag b5684d3c017e7e9ec5e2731ec52cd454d4cd34ec refers to a dead (removed) revision in file `Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingConfigurationReader/validConfigurationEmptyFolder.xml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag b5684d3c017e7e9ec5e2731ec52cd454d4cd34ec refers to a dead (removed) revision in file `Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingConfigurationReader/validConfigurationNesting.xml'. Fisheye: No comparison available. Pass `N' to diff?