Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/IntegrationTests/StorageMigrationIntegrationTest.cs =================================================================== diff -u -r0d01d77a85f997d3cbe2e3f83d6bf3438ec6806d -r206804512fc341a06a08565ee0a9711768079ed9 --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/IntegrationTests/StorageMigrationIntegrationTest.cs (.../StorageMigrationIntegrationTest.cs) (revision 0d01d77a85f997d3cbe2e3f83d6bf3438ec6806d) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/IntegrationTests/StorageMigrationIntegrationTest.cs (.../StorageMigrationIntegrationTest.cs) (revision 206804512fc341a06a08565ee0a9711768079ed9) @@ -22,6 +22,7 @@ using System; using System.IO; using System.Threading; +using Application.Ringtoets.Migration; using Application.Ringtoets.Migration.Core; using Core.Common.Base.Storage; using Core.Common.Gui; @@ -75,6 +76,79 @@ } } + [Test] + [Apartment(ApartmentState.STA)] + public void GivenRingtoetsGui_WhenRunWithUnmigratedFileAndInquireContinuation_MigratedProjectSet() + { + // Given + string sourceFilePath = TestHelper.GetTestDataPath(TestDataPath.Application.Ringtoets.Migration, "FullTestProject164.rtd"); + string targetFilePath = TestHelper.GetScratchPadPath(nameof(GivenRingtoetsGui_WhenRunWithUnmigratedFileAndInquireContinuation_MigratedProjectSet)); + using (new FileDisposeHelper(targetFilePath)) + { + var projectStore = new StorageSqLite(); + + var mocks = new MockRepository(); + var inquiryHelper = mocks.Stub(); + inquiryHelper.Expect(helper => helper.InquireContinuation(null)) + .IgnoreArguments() + .Return(true); + inquiryHelper.Expect(helper => helper.GetTargetFileLocation(null, null)) + .IgnoreArguments() + .Return(targetFilePath); + mocks.ReplayAll(); + + var projectMigrator = new RingtoetsProjectMigrator(inquiryHelper); + + using (var gui = new GuiCore(new MainWindow(), projectStore, projectMigrator, new RingtoetsProjectFactory(), new GuiCoreSettings())) + { + // When + gui.Run(sourceFilePath); + + // Then + Assert.AreEqual(targetFilePath, gui.ProjectFilePath); + string expectedProjectName = Path.GetFileNameWithoutExtension(targetFilePath); + Assert.AreEqual(expectedProjectName, gui.Project.Name); + Assert.AreEqual("description", gui.Project.Description); + Assert.IsInstanceOf(gui.Project); + } + GC.WaitForPendingFinalizers(); + + mocks.VerifyAll(); + } + } + + [Test] + [Apartment(ApartmentState.STA)] + public void GivenRingtoetsGui_WhenRunWithUnmigratedFileAndNoInquireContinuation_MigratedProjectSet() + { + // Given + string sourceFilePath = TestHelper.GetTestDataPath(TestDataPath.Application.Ringtoets.Migration, "FullTestProject164.rtd"); + var projectStore = new StorageSqLite(); + + var mocks = new MockRepository(); + var inquiryHelper = mocks.Stub(); + inquiryHelper.Expect(helper => helper.InquireContinuation(null)) + .IgnoreArguments() + .Return(false); + mocks.ReplayAll(); + + var projectMigrator = new RingtoetsProjectMigrator(inquiryHelper); + + using (var gui = new GuiCore(new MainWindow(), projectStore, projectMigrator, new RingtoetsProjectFactory(), new GuiCoreSettings())) + { + // When + gui.Run(sourceFilePath); + + // Then + Assert.IsNull(gui.ProjectFilePath); + Assert.AreEqual("Project", gui.Project.Name); + Assert.IsEmpty(gui.Project.Description); + } + GC.WaitForPendingFinalizers(); + + mocks.VerifyAll(); + } + private static void MigrateFile(string sourceFilePath, string targetFilePath) { string newVersion = RingtoetsVersionHelper.GetCurrentDatabaseVersion();