public void Import_CancelingImport_CancelImportAndLog(string expectedProgressMessage) { // Setup var calculationGroup = new CalculationGroup(); string filePath = Path.Combine(readerPath, "validConfiguration.xml"); var importer = new CalculationConfigurationImporter(filePath, calculationGroup); importer.SetProgressChanged((description, step, steps) => { if (description.Contains(expectedProgressMessage)) { importer.Cancel(); } }); // Call var importSuccessful = true; void Call() => importSuccessful = importer.Import(); // Assert TestHelper.AssertLogMessageIsGenerated(Call, "Berekeningenconfiguratie importeren afgebroken. Geen gegevens gewijzigd.", 1); CollectionAssert.IsEmpty(calculationGroup.Children); Assert.IsFalse(importSuccessful); }
public void Import_ValidConfigurationWithValidData_DataAddedToModel() { // Setup string filePath = Path.Combine(readerPath, "validConfiguration.xml"); var calculationGroup = new CalculationGroup(); var importer = new CalculationConfigurationImporter(filePath, calculationGroup); // Call bool successful = importer.Import(); // Assert Assert.IsTrue(successful); AssertCalculationGroup(GetExpectedNestedData(), calculationGroup); }
public void Import_FileDoesNotExist_CancelImportWithErrorMessage() { // Setup string filePath = TestHelper.GetTestDataPath(TestDataPath.Riskeer.Common.IO, "I_dont_exist"); var importer = new CalculationConfigurationImporter(filePath, new CalculationGroup()); // Call var importSuccessful = true; void Call() => importSuccessful = importer.Import(); // Assert string expectedMessage = $"Fout bij het lezen van bestand '{filePath}': het bestand bestaat niet. " + Environment.NewLine + "Er is geen berekeningenconfiguratie geïmporteerd."; TestHelper.AssertLogMessageIsGenerated(Call, expectedMessage, 1); Assert.IsFalse(importSuccessful); }
public void Import_FilePathIsDirectory_CancelImportWithErrorMessage() { // Setup string filePath = TestHelper.GetTestDataPath(TestDataPath.Riskeer.Common.IO, Path.DirectorySeparatorChar.ToString()); var importer = new CalculationConfigurationImporter(filePath, new CalculationGroup()); // Call var importSuccessful = true; void Call() => importSuccessful = importer.Import(); // Assert string expectedMessage = $"Fout bij het lezen van bestand '{filePath}': bestandspad mag niet verwijzen naar een lege bestandsnaam. " + Environment.NewLine + "Er is geen berekeningenconfiguratie geïmporteerd."; TestHelper.AssertLogMessageIsGenerated(Call, expectedMessage, 1); Assert.IsFalse(importSuccessful); }
public void Import_InvalidFile_CancelImportWithErrorMessage() { // Setup string filePath = Path.Combine(readerPath, "invalidFolderNoName.xml"); var importer = new CalculationConfigurationImporter(filePath, new CalculationGroup()); // Call var importSuccessful = true; void Call() => importSuccessful = importer.Import(); // Assert TestHelper.AssertLogMessages(Call, messages => { string[] msgs = messages.ToArray(); Assert.AreEqual(1, msgs.Length); StringAssert.StartsWith($"Fout bij het lezen van bestand '{filePath}': het XML-document dat de configuratie voor de berekeningen beschrijft is niet geldig.", msgs[0]); }); Assert.IsFalse(importSuccessful); }
public void GivenImport_WhenImporting_ThenExpectedProgressMessagesGenerated() { // Given string filePath = Path.Combine(readerPath, "validConfiguration.xml"); var progressChangeNotifications = new List<ProgressNotification>(); var importer = new CalculationConfigurationImporter(filePath, new CalculationGroup()); importer.SetProgressChanged((description, step, steps) => progressChangeNotifications.Add( new ProgressNotification(description, step, steps))); // When importer.Import(); // Then var expectedProgressNotifications = new[] { new ProgressNotification("Inlezen berekeningenconfiguratie.", 1, 3), new ProgressNotification("Valideren berekeningenconfiguratie.", 2, 3), new ProgressNotification("Geïmporteerde data toevoegen aan het faalmechanisme.", 3, 3) }; ProgressNotificationTestHelper.AssertProgressNotificationsAreEqual(expectedProgressNotifications, progressChangeNotifications); }