Index: Ringtoets/Common/test/Ringtoets.Common.IO.Test/Readers/CombinedXmlSchemaDefinitionTest.cs =================================================================== diff -u -rc04a1ae67303b6029fe655a1fc7e57f6509e9a5f -r895a3fe4fc6f57b7d6585d106397f3a1043761a2 --- Ringtoets/Common/test/Ringtoets.Common.IO.Test/Readers/CombinedXmlSchemaDefinitionTest.cs (.../CombinedXmlSchemaDefinitionTest.cs) (revision c04a1ae67303b6029fe655a1fc7e57f6509e9a5f) +++ Ringtoets/Common/test/Ringtoets.Common.IO.Test/Readers/CombinedXmlSchemaDefinitionTest.cs (.../CombinedXmlSchemaDefinitionTest.cs) (revision 895a3fe4fc6f57b7d6585d106397f3a1043761a2) @@ -50,10 +50,10 @@ TestDelegate call = () => new CombinedXmlSchemaDefinition(emptyMainSchemaDefinition, new Dictionary { { - "NestedSchemaDefintion1.xsd", validNestedSchemaDefinition1 + "NestedSchemaDefinition1.xsd", validNestedSchemaDefinition1 }, { - "NestedSchemaDefintion2.xsd", validNestedSchemaDefinition2 + "NestedSchemaDefinition2.xsd", validNestedSchemaDefinition2 } }); @@ -83,10 +83,10 @@ TestDelegate call = () => new CombinedXmlSchemaDefinition(validMainSchemaDefinition, new Dictionary { { - "NestedSchemaDefintion1.xsd", validNestedSchemaDefinition1 + "NestedSchemaDefinition1.xsd", validNestedSchemaDefinition1 }, { - "NestedSchemaDefintion2.xsd", emptyNestedSchemaDefinition + "NestedSchemaDefinition2.xsd", emptyNestedSchemaDefinition } }); @@ -113,10 +113,10 @@ TestDelegate call = () => new CombinedXmlSchemaDefinition(File.ReadAllText(xsdPath), new Dictionary { { - "NestedSchemaDefintion1.xsd", validNestedSchemaDefinition1 + "NestedSchemaDefinition1.xsd", validNestedSchemaDefinition1 }, { - "NestedSchemaDefintion2.xsd", validNestedSchemaDefinition2 + "NestedSchemaDefinition2.xsd", validNestedSchemaDefinition2 } }); @@ -126,6 +126,37 @@ Assert.IsInstanceOf(expectedInnerExceptionType, exception.InnerException); } + [Test] + [TestCase("textContent.xsd", + "'mainSchemaDefinition' containing invalid schema definition: The 'genericElement' element is not declared.", + typeof(XmlSchemaException))] + [TestCase("invalidXsdContent.xsd", + "'mainSchemaDefinition' containing invalid schema definition: Cannot load the schema from the location 'NestedSchemaDefinition2.xsd' - The 'http://www.w3.org/2001/XMLSchema:redefine' element is not supported in this context.", + typeof(XmlSchemaException))] + public void Constructor_InvalidNestedSchemaDefinition_ThrowArgumentException(string invalidNestedSchemaDefinition, + string expectedMessage, + Type expectedInnerExceptionType) + { + // Setup + string xsdPath = Path.Combine(testDirectoryPath, invalidNestedSchemaDefinition); + + // Call + TestDelegate call = () => new CombinedXmlSchemaDefinition(validMainSchemaDefinition, new Dictionary + { + { + "NestedSchemaDefinition1.xsd", validNestedSchemaDefinition1 + }, + { + "NestedSchemaDefinition2.xsd", File.ReadAllText(xsdPath) + } + }); + + // Assert + var exception = Assert.Throws(call); + Assert.AreEqual(expectedMessage, exception.Message); + Assert.IsInstanceOf(expectedInnerExceptionType, exception.InnerException); + } + public CombinedXmlSchemaDefinitionTest() { validMainSchemaDefinition = File.ReadAllText(Path.Combine(testDirectoryPath, "validMainSchemaDefinition.xsd"));