Index: Riskeer/Common/test/Riskeer.Common.IO.Test/Configurations/Import/CalculationConfigurationReaderTest.cs =================================================================== diff -u -r59cc53c1a20db0092694f2ebc8fff6ec08f7f215 -ra8d8a2d3c8ea357b849bbe78a2791a4f1cb98a6f --- Riskeer/Common/test/Riskeer.Common.IO.Test/Configurations/Import/CalculationConfigurationReaderTest.cs (.../CalculationConfigurationReaderTest.cs) (revision 59cc53c1a20db0092694f2ebc8fff6ec08f7f215) +++ Riskeer/Common/test/Riskeer.Common.IO.Test/Configurations/Import/CalculationConfigurationReaderTest.cs (.../CalculationConfigurationReaderTest.cs) (revision a8d8a2d3c8ea357b849bbe78a2791a4f1cb98a6f) @@ -79,13 +79,30 @@ } [Test] + public void Constructor_SchemaDefinitionsNull_ThrowsArgumentNullException() + { + // Setup + string filePath = Path.Combine(testDirectoryPath, "validConfiguration.xml"); + + // Call + void Call() => new CalculationConfigurationReader(filePath, null); + + // Assert + var exception = Assert.Throws(Call); + Assert.AreEqual("schemaDefinitions", exception.ParamName); + } + + [Test] [TestCase("")] [TestCase(" ")] [TestCase(null)] public void Constructor_NoFilePath_ThrowArgumentException(string invalidFilePath) { // Call - void Call() => new CalculationConfigurationReader(invalidFilePath, validMainSchemaDefinition, new Dictionary()); + void Call() => new CalculationConfigurationReader(invalidFilePath, new List + { + new CalculationConfigurationSchemaDefinition(validMainSchemaDefinition, new Dictionary()) + }); // Assert string expectedMessage = $"Fout bij het lezen van bestand '{invalidFilePath}': bestandspad mag niet leeg of ongedefinieerd zijn."; @@ -101,7 +118,10 @@ string invalidFilePath = validFilePath.Replace("Config", invalidPathChars[3].ToString()); // Call - void Call() => new CalculationConfigurationReader(invalidFilePath, validMainSchemaDefinition, new Dictionary()); + void Call() => new CalculationConfigurationReader(invalidFilePath, new List + { + new CalculationConfigurationSchemaDefinition(validMainSchemaDefinition, new Dictionary()) + }); // Assert string expectedMessage = $"Fout bij het lezen van bestand '{invalidFilePath}': " @@ -116,7 +136,10 @@ string invalidFilePath = Path.Combine(testDirectoryPath, Path.DirectorySeparatorChar.ToString()); // Call - void Call() => new CalculationConfigurationReader(invalidFilePath, validMainSchemaDefinition, new Dictionary()); + void Call() => new CalculationConfigurationReader(invalidFilePath, new List + { + new CalculationConfigurationSchemaDefinition(validMainSchemaDefinition, new Dictionary()) + }); // Assert string expectedMessage = $"Fout bij het lezen van bestand '{invalidFilePath}': bestandspad mag niet verwijzen naar een lege bestandsnaam."; @@ -130,7 +153,10 @@ string invalidFilePath = Path.Combine(testDirectoryPath, "notExisting.xml"); // Call - void Call() => new CalculationConfigurationReader(invalidFilePath, validMainSchemaDefinition, new Dictionary()); + void Call() => new CalculationConfigurationReader(invalidFilePath, new List + { + new CalculationConfigurationSchemaDefinition(validMainSchemaDefinition, new Dictionary()) + }); // Assert string expectedMessage = $"Fout bij het lezen van bestand '{invalidFilePath}': het bestand bestaat niet."; @@ -146,7 +172,10 @@ string filePath = Path.Combine(testDirectoryPath, fileName); // Call - void Call() => new CalculationConfigurationReader(filePath, validMainSchemaDefinition, new Dictionary()); + void Call() => new CalculationConfigurationReader(filePath, new List + { + new CalculationConfigurationSchemaDefinition(validMainSchemaDefinition, new Dictionary()) + }); // Assert var exception = Assert.Throws(Call); @@ -169,7 +198,10 @@ fileDisposeHelper.LockFiles(); // Call - void Call() => new CalculationConfigurationReader(path, validMainSchemaDefinition, new Dictionary()); + void Call() => new CalculationConfigurationReader(path, new List + { + new CalculationConfigurationSchemaDefinition(validMainSchemaDefinition, new Dictionary()) + }); // Assert string expectedMessage = $"Fout bij het lezen van bestand '{path}': het bestand kon niet worden geopend. Mogelijk is het bestand corrupt of in gebruik door een andere applicatie."; @@ -187,7 +219,10 @@ string xsdPath = Path.Combine(testDirectoryPath, "mainSchemaDefinitionNotReferencingDefaultSchema.xsd"); // Call - void Call() => new CalculationConfigurationReader(filePath, File.ReadAllText(xsdPath), new Dictionary()); + void Call() => new CalculationConfigurationReader(filePath, new List + { + new CalculationConfigurationSchemaDefinition(File.ReadAllText(xsdPath), new Dictionary()) + }); // Assert var exception = Assert.Throws(Call); @@ -202,7 +237,10 @@ string filePath = Path.Combine(testDirectoryPath, fileName); // Call - void Call() => new CalculationConfigurationReader(filePath, validMainSchemaDefinition, new Dictionary()); + void Call() => new CalculationConfigurationReader(filePath, new List + { + new CalculationConfigurationSchemaDefinition(validMainSchemaDefinition, new Dictionary()) + }); // Assert var exception = Assert.Throws(Call); @@ -217,7 +255,10 @@ string filePath = Path.Combine(testDirectoryPath, "invalidFolderNoName.xml"); // Call - void Call() => new CalculationConfigurationReader(filePath, validMainSchemaDefinition, new Dictionary()); + void Call() => new CalculationConfigurationReader(filePath, new List + { + new CalculationConfigurationSchemaDefinition(validMainSchemaDefinition, new Dictionary()) + }); // Assert string expectedMessage = $"Fout bij het lezen van bestand '{filePath}': het XML-document dat de configuratie" + @@ -234,7 +275,10 @@ string filePath = Path.Combine(testDirectoryPath, "emptyConfiguration.xml"); // Call - void Call() => new CalculationConfigurationReader(filePath, validMainSchemaDefinition, new Dictionary()); + void Call() => new CalculationConfigurationReader(filePath, new List + { + new CalculationConfigurationSchemaDefinition(validMainSchemaDefinition, new Dictionary()) + }); // Assert string expectedMessage = $"Fout bij het lezen van bestand '{filePath}': " + @@ -251,7 +295,10 @@ string filePath = Path.Combine(testDirectoryPath, "validConfiguration.xml"); // Call - void Call() => new CalculationConfigurationReader(filePath, validMainSchemaDefinition, new Dictionary()); + void Call() => new CalculationConfigurationReader(filePath, new List + { + new CalculationConfigurationSchemaDefinition(validMainSchemaDefinition, new Dictionary()) + }); // Assert Assert.DoesNotThrow(Call); @@ -264,7 +311,10 @@ string filePath = Path.Combine(testDirectoryPath, "validConfigurationInvalidVersionNumber.xml"); // Call - void Call() => new CalculationConfigurationReader(filePath, validMainSchemaDefinition, new Dictionary()); + void Call() => new CalculationConfigurationReader(filePath, new List + { + new CalculationConfigurationSchemaDefinition(validMainSchemaDefinition, new Dictionary()) + }); // Assert string expectedMessage = $"Fout bij het lezen van bestand '{filePath}': " + @@ -278,7 +328,10 @@ { // Setup string filePath = Path.Combine(testDirectoryPath, "validConfigurationEmptyFolder.xml"); - var calculationConfigurationReader = new CalculationConfigurationReader(filePath, validMainSchemaDefinition, new Dictionary()); + var calculationConfigurationReader = new CalculationConfigurationReader(filePath, new List + { + new CalculationConfigurationSchemaDefinition(validMainSchemaDefinition, new Dictionary()) + }); // Call IEnumerable readConfigurationItems = calculationConfigurationReader.Read().ToArray(); @@ -296,7 +349,10 @@ { // Setup string filePath = Path.Combine(testDirectoryPath, "validConfiguration.xml"); - var calculationConfigurationReader = new CalculationConfigurationReader(filePath, validMainSchemaDefinition, new Dictionary()); + var calculationConfigurationReader = new CalculationConfigurationReader(filePath, new List + { + new CalculationConfigurationSchemaDefinition(validMainSchemaDefinition, new Dictionary()) + }); // Call IConfigurationItem[] readConfigurationItems = calculationConfigurationReader.Read().ToArray(); @@ -361,14 +417,8 @@ private class CalculationConfigurationReader : CalculationConfigurationReader { - public CalculationConfigurationReader(string xmlFilePath, - string mainSchemaDefinition, - IDictionary nestedSchemaDefinitions) - : base(xmlFilePath, new[] - { - new CalculationConfigurationSchemaDefinition( - mainSchemaDefinition, nestedSchemaDefinitions) - }) {} + public CalculationConfigurationReader(string xmlFilePath, IEnumerable schemaDefinitions) + : base(xmlFilePath, schemaDefinitions) {} protected override ReadCalculation ParseCalculationElement(XElement calculationElement) {