public void Import_ReuseOfCanceledImportToValidTargetWithValidFile_TrueAndExpectedImportedData() { // Setup string referenceLineFilePath = TestHelper.GetTestDataPath(TestDataPath.Riskeer.Common.IO, Path.Combine("ReferenceLine", "traject_1-1.shp")); string sectionsFilePath = TestHelper.GetTestDataPath(TestDataPath.Riskeer.Common.IO, Path.Combine("FailureMechanismSections", "traject_1-1_vakken.shp")); ReferenceLine importReferenceLine = ImportReferenceLine(referenceLineFilePath); var mocks = new MockRepository(); var failureMechanism = mocks.Stub <IFailureMechanism>(); var updateStrategy = mocks.StrictMock <IFailureMechanismSectionUpdateStrategy>(); updateStrategy.Expect(us => us.UpdateSectionsWithImportedData(null, null)) .IgnoreArguments() .WhenCalled(invocation => { var sections = (IEnumerable <FailureMechanismSection>)invocation.Arguments[0]; Assert.AreEqual(62, sections.Count()); AssertSectionsAreValidForReferenceLine(sections, importReferenceLine); Assert.AreEqual(sectionsFilePath, invocation.Arguments[1]); }) .Return(Enumerable.Empty <IObservable>()); var messageProvider = mocks.Stub <IImporterMessageProvider>(); mocks.ReplayAll(); var importer = new FailureMechanismSectionsImporter(failureMechanism, importReferenceLine, sectionsFilePath, updateStrategy, messageProvider); importer.SetProgressChanged((description, step, steps) => importer.Cancel()); Assert.IsFalse(importer.Import()); importer.SetProgressChanged(null); // Call var importSuccessful = false; void Call() => importSuccessful = importer.Import(); // Assert TestHelper.AssertLogMessageIsGenerated(Call, $"Gegevens zijn geïmporteerd vanuit bestand '{sectionsFilePath}'.", 1); Assert.IsTrue(importSuccessful); mocks.VerifyAll(); }
public void Import_CancelOfImportWhenAddingDataToModel_ContinuesImportAndLogs() { // Setup var mocks = new MockRepository(); var failureMechanism = mocks.Stub <IFailureMechanism>(); var updateStrategy = mocks.StrictMock <IFailureMechanismSectionUpdateStrategy>(); updateStrategy.Expect(us => us.UpdateSectionsWithImportedData(null, null)) .IgnoreArguments() .WhenCalled(invocation => { CollectionAssert.IsNotEmpty((IEnumerable <FailureMechanismSection>)invocation.Arguments[0]); }) .Return(Enumerable.Empty <IObservable>()); var messageProvider = mocks.StrictMock <IImporterMessageProvider>(); messageProvider.Expect(mp => mp.GetAddDataToModelProgressText()).Return(expectedAddDataToModelProgressText); mocks.ReplayAll(); string referenceLineFilePath = TestHelper.GetTestDataPath(TestDataPath.Riskeer.Common.IO, Path.Combine("ReferenceLine", "traject_1-1.shp")); string sectionsFilePath = TestHelper.GetTestDataPath(TestDataPath.Riskeer.Common.IO, Path.Combine("FailureMechanismSections", "traject_1-1_vakken.shp")); ReferenceLine importReferenceLine = ImportReferenceLine(referenceLineFilePath); var importer = new FailureMechanismSectionsImporter(failureMechanism, importReferenceLine, sectionsFilePath, updateStrategy, messageProvider); importer.SetProgressChanged((description, step, steps) => { if (description.Contains(expectedAddDataToModelProgressText)) { importer.Cancel(); } }); var importSuccessful = true; // Call void Call() => importSuccessful = importer.Import(); // Assert TestHelper.AssertLogMessageIsGenerated(Call, "Huidige actie was niet meer te annuleren en is daarom voortgezet.", 2); Assert.IsTrue(importSuccessful); mocks.VerifyAll(); }
public void Import_ValidImport_GenerateExpectedProgressMessages() { // Setup var mocks = new MockRepository(); var failureMechanism = mocks.Stub <IFailureMechanism>(); var updateStrategy = mocks.Stub <IFailureMechanismSectionUpdateStrategy>(); updateStrategy.Stub(us => us.UpdateSectionsWithImportedData(null, null)) .IgnoreArguments() .Return(Enumerable.Empty <IObservable>()); var messageProvider = mocks.StrictMock <IImporterMessageProvider>(); messageProvider.Expect(mp => mp.GetAddDataToModelProgressText()).Return(expectedAddDataToModelProgressText); mocks.ReplayAll(); string referenceLineFilePath = TestHelper.GetTestDataPath(TestDataPath.Riskeer.Common.IO, Path.Combine("ReferenceLine", "Artificial_referencelijn_testA.shp")); string sectionsFilePath = TestHelper.GetTestDataPath(TestDataPath.Riskeer.Common.IO, Path.Combine("FailureMechanismSections", "Artificial_referencelijn_testA_ValidVakken.shp")); ReferenceLine importReferenceLine = ImportReferenceLine(referenceLineFilePath); var progressChangeNotifications = new List <ProgressNotification>(); var importer = new FailureMechanismSectionsImporter(failureMechanism, importReferenceLine, sectionsFilePath, updateStrategy, messageProvider); importer.SetProgressChanged((description, step, steps) => progressChangeNotifications.Add(new ProgressNotification(description, step, steps))); // Call bool importSuccessful = importer.Import(); // Assert Assert.IsTrue(importSuccessful); var expectedProgressMessages = new[] { new ProgressNotification("Inlezen vakindeling.", 1, 3), new ProgressNotification("Valideren ingelezen vakindeling.", 2, 3), new ProgressNotification(expectedAddDataToModelProgressText, 3, 3) }; ProgressNotificationTestHelper.AssertProgressNotificationsAreEqual(expectedProgressMessages, progressChangeNotifications); mocks.VerifyAll(); }
public void Import_CancelOfImportWhenValidatingImportedSections_CancelsImportAndLogs() { // Setup var mocks = new MockRepository(); var failureMechanism = mocks.Stub <IFailureMechanism>(); var updateStrategy = mocks.StrictMock <IFailureMechanismSectionUpdateStrategy>(); var messageProvider = mocks.StrictMock <IImporterMessageProvider>(); messageProvider.Expect(mp => mp.GetCancelledLogMessageText(sectionsTypeDescriptor)).Return(expectedCancelledText); mocks.ReplayAll(); string referenceLineFilePath = TestHelper.GetTestDataPath(TestDataPath.Riskeer.Common.IO, Path.Combine("ReferenceLine", "traject_1-1.shp")); string sectionsFilePath = TestHelper.GetTestDataPath(TestDataPath.Riskeer.Common.IO, Path.Combine("FailureMechanismSections", "traject_1-1_vakken.shp")); ReferenceLine importReferenceLine = ImportReferenceLine(referenceLineFilePath); var importer = new FailureMechanismSectionsImporter(failureMechanism, importReferenceLine, sectionsFilePath, updateStrategy, messageProvider); importer.SetProgressChanged((description, step, steps) => { if (description.Contains("Valideren ingelezen vakindeling.")) { importer.Cancel(); } }); var importSuccessful = true; // Call void Call() => importSuccessful = importer.Import(); // Assert TestHelper.AssertLogMessageIsGenerated(Call, expectedCancelledText, 1); Assert.IsFalse(importSuccessful); mocks.VerifyAll(); }