Index: Application/Ringtoets/src/Application.Ringtoets.Migration/Properties/Resources.Designer.cs =================================================================== diff -u -r0d01d77a85f997d3cbe2e3f83d6bf3438ec6806d -raaede2e2c97c9ecbb159e5c9576381c177cd5255 --- Application/Ringtoets/src/Application.Ringtoets.Migration/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 0d01d77a85f997d3cbe2e3f83d6bf3438ec6806d) +++ Application/Ringtoets/src/Application.Ringtoets.Migration/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision aaede2e2c97c9ecbb159e5c9576381c177cd5255) @@ -110,7 +110,9 @@ } /// - /// Looks up a localized string similar to Het project dat u wilt openen is opgeslagen in het formaat van een eerdere versie van Ringtoets. Weet u zeker dat u het bestand wilt migreren naar het formaat van uw huidige Ringtoetsversie ({0})?. + /// Looks up a localized string similar to Het project dat u wilt openen is opgeslagen in het formaat van een eerdere versie van Ringtoets. + /// + ///Weet u zeker dat u het bestand wilt migreren naar het formaat van uw huidige Ringtoetsversie ({0})?. /// internal static string RingtoetsProjectMigrator_Migrate_Outdated_project_file_update_to_current_version_0_inquire { get { Index: Application/Ringtoets/src/Application.Ringtoets.Migration/Properties/Resources.resx =================================================================== diff -u -r0d01d77a85f997d3cbe2e3f83d6bf3438ec6806d -raaede2e2c97c9ecbb159e5c9576381c177cd5255 --- Application/Ringtoets/src/Application.Ringtoets.Migration/Properties/Resources.resx (.../Resources.resx) (revision 0d01d77a85f997d3cbe2e3f83d6bf3438ec6806d) +++ Application/Ringtoets/src/Application.Ringtoets.Migration/Properties/Resources.resx (.../Resources.resx) (revision aaede2e2c97c9ecbb159e5c9576381c177cd5255) @@ -118,7 +118,9 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Het project dat u wilt openen is opgeslagen in het formaat van een eerdere versie van Ringtoets. Weet u zeker dat u het bestand wilt migreren naar het formaat van uw huidige Ringtoetsversie ({0})? + Het project dat u wilt openen is opgeslagen in het formaat van een eerdere versie van Ringtoets. + +Weet u zeker dat u het bestand wilt migreren naar het formaat van uw huidige Ringtoetsversie ({0})? rtd Index: Application/Ringtoets/src/Application.Ringtoets.Migration/RingtoetsProjectMigrator.cs =================================================================== diff -u -r1b9445050ddc7786014349d7014c7c4d85242a5d -raaede2e2c97c9ecbb159e5c9576381c177cd5255 --- Application/Ringtoets/src/Application.Ringtoets.Migration/RingtoetsProjectMigrator.cs (.../RingtoetsProjectMigrator.cs) (revision 1b9445050ddc7786014349d7014c7c4d85242a5d) +++ Application/Ringtoets/src/Application.Ringtoets.Migration/RingtoetsProjectMigrator.cs (.../RingtoetsProjectMigrator.cs) (revision aaede2e2c97c9ecbb159e5c9576381c177cd5255) @@ -108,7 +108,12 @@ ValidateProjectPath(originalFilePath, nameof(originalFilePath), Resources.RingtoetsProjectMigrator_Source_Descriptor); string suggestedFileName = GetSuggestedFileName(originalFilePath); - return inquiryHelper.GetTargetFileLocation(fileFilter.Filter, suggestedFileName); + string migrationLocation = inquiryHelper.GetTargetFileLocation(fileFilter.Filter, suggestedFileName); + if (string.IsNullOrEmpty(migrationLocation)) + { + GenerateMigrationCancelledLogMessage(originalFilePath); + } + return migrationLocation; } public bool Migrate(string sourceFilePath, string targetFilePath) Index: Application/Ringtoets/test/Application.Ringtoets.Migration.Test/RingtoetsProjectMigratorTest.cs =================================================================== diff -u -r82b2158c3ba292b313a3607c654881dde20fe6d0 -raaede2e2c97c9ecbb159e5c9576381c177cd5255 --- Application/Ringtoets/test/Application.Ringtoets.Migration.Test/RingtoetsProjectMigratorTest.cs (.../RingtoetsProjectMigratorTest.cs) (revision 82b2158c3ba292b313a3607c654881dde20fe6d0) +++ Application/Ringtoets/test/Application.Ringtoets.Migration.Test/RingtoetsProjectMigratorTest.cs (.../RingtoetsProjectMigratorTest.cs) (revision aaede2e2c97c9ecbb159e5c9576381c177cd5255) @@ -156,7 +156,8 @@ { // Setup string question = "Het project dat u wilt openen is opgeslagen in het formaat van een eerdere versie van Ringtoets." + - $" Weet u zeker dat u het bestand wilt migreren naar het formaat van uw huidige Ringtoetsversie ({currentDatabaseVersion})?"; + $"{Environment.NewLine}{Environment.NewLine}" + + $"Weet u zeker dat u het bestand wilt migreren naar het formaat van uw huidige Ringtoetsversie ({currentDatabaseVersion})?"; var mocks = new MockRepository(); var inquiryHelper = mocks.StrictMock(); inquiryHelper.Expect(h => h.InquireContinuation(question)).Return(confirmContinuation); @@ -281,6 +282,43 @@ } [Test] + [TestCase(null)] + [TestCase("")] + public void DetermineMigrationLocation_TargetFilePathIsEmpty_LogsMessageAndReturnsEmptyTargetPath(string targetPath) + { + // Setup + const string originalFileName = "Im_a_valid_file_path"; + const string expectedFileExtension = "rtd"; + + string validFilePath = TestHelper.GetScratchPadPath($"{originalFileName}.{expectedFileExtension}"); + + var expectedFileFilter = new FileFilterGenerator(expectedFileExtension, "Ringtoets project"); + string versionWithDashes = RingtoetsVersionHelper.GetCurrentDatabaseVersion().Replace('.', '-'); + string expectedSuggestedFileName = $"{originalFileName}_{versionWithDashes}"; + + var mocks = new MockRepository(); + var inquiryHelper = mocks.StrictMock(); + inquiryHelper.Expect(h => h.GetTargetFileLocation(expectedFileFilter.Filter, expectedSuggestedFileName)) + .Return(targetPath); + mocks.ReplayAll(); + + var migrator = new RingtoetsProjectMigrator(inquiryHelper); + string targetFilePath = "arbitraryPath"; + + // Call + Action call = () => targetFilePath = migrator.DetermineMigrationLocation(validFilePath); + + // Assert + Tuple expectedLogMessage = Tuple.Create($"Het migreren van het projectbestand '{validFilePath}' is geannuleerd.", + LogLevelConstant.Warn); + + TestHelper.AssertLogMessageWithLevelIsGenerated(call, expectedLogMessage, 1); + + Assert.AreEqual(targetPath, targetFilePath); + mocks.VerifyAll(); + } + + [Test] public void Migrate_SourcePathNull_ThrowsArgumentNullException() { // Setup