Index: Ringtoets/Common/test/Ringtoets.Common.IO.Test/Readers/CombinedXmlSchemaDefinitionTest.cs =================================================================== diff -u -r63f628ad3e252277b290dd3f08ad8a5a6c8b70e8 -r85461eb2fda69be38558eb36a0d757fca4ddb125 --- Ringtoets/Common/test/Ringtoets.Common.IO.Test/Readers/CombinedXmlSchemaDefinitionTest.cs (.../CombinedXmlSchemaDefinitionTest.cs) (revision 63f628ad3e252277b290dd3f08ad8a5a6c8b70e8) +++ Ringtoets/Common/test/Ringtoets.Common.IO.Test/Readers/CombinedXmlSchemaDefinitionTest.cs (.../CombinedXmlSchemaDefinitionTest.cs) (revision 85461eb2fda69be38558eb36a0d757fca4ddb125) @@ -22,6 +22,8 @@ using System; using System.Collections.Generic; using System.IO; +using System.Xml; +using System.Xml.Schema; using Core.Common.TestUtil; using NUnit.Framework; using Ringtoets.Common.IO.Readers; @@ -40,10 +42,10 @@ [TestCase("")] [TestCase(" ")] [TestCase(null)] - public void Constructor_InvalidMainSchemaDefinition_ThrowArgumentException(string invalidMainSchemaString) + public void Constructor_EmptyMainSchemaDefinition_ThrowArgumentException(string emptyMainSchemaDefinition) { // Call - TestDelegate call = () => new CombinedXmlSchemaDefinition(invalidMainSchemaString, new Dictionary()); + TestDelegate call = () => new CombinedXmlSchemaDefinition(emptyMainSchemaDefinition, new Dictionary()); // Assert var exception = Assert.Throws(call); @@ -65,13 +67,13 @@ [TestCase("")] [TestCase(" ")] [TestCase(null)] - public void Constructor_InvalidNestedSchemaDefinitions_ThrowArgumentException(string invalidNestedSchemaString) + public void Constructor_EmptyNestedSchemaDefinition_ThrowArgumentException(string emptyNestedSchemaDefinition) { // Call TestDelegate call = () => new CombinedXmlSchemaDefinition(validMainSchemaDefinition, new Dictionary { { - "Test", invalidNestedSchemaString + "Test", emptyNestedSchemaDefinition } }); @@ -80,9 +82,32 @@ Assert.AreEqual("'nestedSchemaDefinitions' holds a nested schema definition value that equals null, is empty or only contains white spaces.", exception.Message); } + [Test] + [TestCase("textContent.xsd", + "'mainSchemaDefinition' containing invalid schema definition: Data at the root level is invalid. Line 1, position 1.", + typeof(XmlException))] + [TestCase("invalidXsdContent.xsd", + "'mainSchemaDefinition' containing invalid schema definition: The 'http://www.w3.org/2001/XMLSchema:redefine' element is not supported in this context.", + typeof(XmlSchemaException))] + public void Constructor_InvalidMainSchemaDefinition_ThrowArgumentException(string invalidMainSchemaDefinition, + string expectedMessage, + Type expectedInnerExceptionType) + { + // Setup + string xsdPath = Path.Combine(testDirectoryPath, invalidMainSchemaDefinition); + + // Call + TestDelegate call = () => new CombinedXmlSchemaDefinition(File.ReadAllText(xsdPath), new Dictionary()); + + // Assert + var exception = Assert.Throws(call); + Assert.AreEqual(expectedMessage, exception.Message); + Assert.IsInstanceOf(expectedInnerExceptionType, exception.InnerException); + } + public CombinedXmlSchemaDefinitionTest() { - validMainSchemaDefinition = File.ReadAllText(Path.Combine(testDirectoryPath, "validConfigurationSchema.xsd")); + validMainSchemaDefinition = File.ReadAllText(Path.Combine(testDirectoryPath, "validMainSchemaDefinition.xsd")); } } } \ No newline at end of file Index: Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/CombinedXmlSchemaDefinition/invalidXsdContent.xsd =================================================================== diff -u --- Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/CombinedXmlSchemaDefinition/invalidXsdContent.xsd (revision 0) +++ Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/CombinedXmlSchemaDefinition/invalidXsdContent.xsd (revision 85461eb2fda69be38558eb36a0d757fca4ddb125) @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file Index: Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/CombinedXmlSchemaDefinition/textContent.xsd =================================================================== diff -u --- Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/CombinedXmlSchemaDefinition/textContent.xsd (revision 0) +++ Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/CombinedXmlSchemaDefinition/textContent.xsd (revision 85461eb2fda69be38558eb36a0d757fca4ddb125) @@ -0,0 +1 @@ +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur faucibus finibus magna, sed pellentesque lorem imperdiet nec. Mauris porttitor nisl blandit placerat aliquet. Aliquam nisl arcu, pretium ut erat quis, congue sagittis odio. Maecenas felis ante, dictum aliquet laoreet ac, consectetur ac purus. Donec non tristique libero, ut vulputate est. Fusce hendrerit justo eu vehicula dignissim. Duis auctor velit vitae vestibulum bibendum. Proin nec pharetra est, id ultricies sem. Aliquam dignissim blandit accumsan. Phasellus bibendum magna sed vestibulum dictum. Nullam vel ipsum quis turpis pulvinar convallis a et lectus. Maecenas eros orci, suscipit id elementum et, fringilla eget ligula. Nulla elit tellus, varius a nisl eget, ornare tempor libero. \ No newline at end of file Fisheye: Tag 85461eb2fda69be38558eb36a0d757fca4ddb125 refers to a dead (removed) revision in file `Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/CombinedXmlSchemaDefinition/validConfigurationSchema.xsd'. Fisheye: No comparison available. Pass `N' to diff? Index: Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/CombinedXmlSchemaDefinition/validMainSchemaDefinition.xsd =================================================================== diff -u --- Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/CombinedXmlSchemaDefinition/validMainSchemaDefinition.xsd (revision 0) +++ Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/CombinedXmlSchemaDefinition/validMainSchemaDefinition.xsd (revision 85461eb2fda69be38558eb36a0d757fca4ddb125) @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file