public void GivenConsole_WhenMigrateCalledWithArguments_MigratesToNewVersion() { // Given string sourceFilePath = ProjectMigrationTestHelper.GetOutdatedSupportedProjectFilePath(); string targetFilePath = TestHelper.GetScratchPadPath($"{nameof(RiskeerMigrationConsoleTest)}.{nameof(GivenConsole_WhenMigrateCalledWithArguments_MigratesToNewVersion)}"); var console = new RiskeerMigrationConsole(); string expectedVersion = ProjectVersionHelper.GetCurrentDatabaseVersion(); using (new FileDisposeHelper(targetFilePath)) { using (var consoleOutput = new ConsoleOutput()) { // When console.ExecuteConsoleTool(new[] { sourceFilePath, targetFilePath }); // Then string expected = Environment.NewLine + $"Het projectbestand '{sourceFilePath}' is succesvol gemigreerd naar '{targetFilePath}' (versie {expectedVersion})." + Environment.NewLine; string consoleText = consoleOutput.GetConsoleOutput(); Assert.AreEqual(expected, consoleText); var toVersionedFile = new ProjectVersionedFile(targetFilePath); Assert.AreEqual(expectedVersion, toVersionedFile.GetVersion()); } } Assert.AreEqual(ErrorCode.ErrorSuccess, environmentControl.ErrorCodeCalled); }
public void ShouldMigrate_OutdatedProjectUnsupported_ReturnsNotSupportedAndGeneratesLogMessages() { // Setup var mocks = new MockRepository(); var inquiryHelper = mocks.Stub <IInquiryHelper>(); mocks.ReplayAll(); string sourceFilePath = ProjectMigrationTestHelper.GetOutdatedUnSupportedProjectFilePath(); var versionedFile = new ProjectVersionedFile(sourceFilePath); string fileVersion = versionedFile.GetVersion(); var migrator = new ProjectMigrator(inquiryHelper); var shouldMigrate = MigrationRequired.Yes; // Call void Call() => shouldMigrate = migrator.ShouldMigrate(sourceFilePath); // Assert var expectedMessage = $"Het migreren van een projectbestand met versie '{fileVersion}' naar versie '{currentDatabaseVersion}' is niet ondersteund."; TestHelper.AssertLogMessageIsGenerated(Call, expectedMessage); Assert.AreEqual(MigrationRequired.NotSupported, shouldMigrate); mocks.VerifyAll(); }
public void Migrate_ValidFilesWithLogFile_SavesFileAtNewLocation() { // Setup const string newVersion = "17.1"; string sourceFilePath = ProjectMigrationTestHelper.GetOutdatedSupportedProjectFilePath(); var fromVersionedFile = new ProjectVersionedFile(sourceFilePath); string targetFilePath = TestHelper.GetScratchPadPath(nameof(Migrate_ValidFilesWithLogFile_SavesFileAtNewLocation)); string logFilePath = TestHelper.GetScratchPadPath(string.Concat(nameof(Migrate_ValidFilesWithLogFile_SavesFileAtNewLocation), ".log")); var migrator = new ProjectFileMigrator { LogPath = logFilePath }; using (new FileDisposeHelper(logFilePath)) using (new FileDisposeHelper(targetFilePath)) { // Call migrator.Migrate(fromVersionedFile, newVersion, targetFilePath); // Assert var toVersionedFile = new ProjectVersionedFile(targetFilePath); Assert.AreEqual(newVersion, toVersionedFile.GetVersion()); } }
public void Migrate_TargetFileNotWritable_ThrowsCriticalDatabaseMigrationException() { // Setup const string newVersion = "17.1"; string sourceFilePath = ProjectMigrationTestHelper.GetOutdatedSupportedProjectFilePath(); var fromVersionedFile = new ProjectVersionedFile(sourceFilePath); string targetFilePath = TestHelper.GetScratchPadPath(nameof(Migrate_TargetFileNotWritable_ThrowsCriticalDatabaseMigrationException)); var migrator = new ProjectFileMigrator(); using (new FileDisposeHelper(targetFilePath)) { FileAttributes attributes = File.GetAttributes(targetFilePath); File.SetAttributes(targetFilePath, attributes | FileAttributes.ReadOnly); try { // Call TestDelegate call = () => migrator.Migrate(fromVersionedFile, newVersion, targetFilePath); // Assert var exception = Assert.Throws <CriticalMigrationException>(call); StringAssert.StartsWith("Het gemigreerde projectbestand is aangemaakt op '", exception.Message); StringAssert.EndsWith($"', maar er is een onverwachte fout opgetreden tijdens het verplaatsen naar '{targetFilePath}'.", exception.Message); Assert.IsInstanceOf <UnauthorizedAccessException>(exception.InnerException); } finally { File.SetAttributes(targetFilePath, attributes); } } }
public void GivenConsole_WhenMigrateCalledUnableToSaveTarget_ThenExitWithErrorCode() { // Given string sourceFilePath = ProjectMigrationTestHelper.GetOutdatedSupportedProjectFilePath(); string targetFilePath = TestHelper.GetScratchPadPath($"{nameof(RiskeerMigrationConsoleTest)}.{nameof(GivenConsole_WhenMigrateCalledUnableToSaveTarget_ThenExitWithErrorCode)}"); var console = new RiskeerMigrationConsole(); using (var fileDisposeHelper = new FileDisposeHelper(targetFilePath)) using (var consoleOutput = new ConsoleOutput()) { fileDisposeHelper.LockFiles(); // When console.ExecuteConsoleTool(new[] { sourceFilePath, targetFilePath }); // Then string consoleText = consoleOutput.GetConsoleOutput(); StringAssert.StartsWith(Environment.NewLine + "Het gemigreerde projectbestand is aangemaakt op '", consoleText); StringAssert.EndsWith($"', maar er is een onverwachte fout opgetreden tijdens het verplaatsen naar '{targetFilePath}'." + Environment.NewLine + "Het besturingssysteem geeft de volgende melding: " + Environment.NewLine + $"The process cannot access the file '{targetFilePath}' because it is being used by another process." + Environment.NewLine + Environment.NewLine + GetConsoleFullDescription(), consoleText); Assert.AreEqual(ErrorCode.ErrorBadCommand, environmentControl.ErrorCodeCalled); } }
public void NeedsMigrate_NeedsMigrate_ReturnsTrue() { // Setup string sourceFilePath = ProjectMigrationTestHelper.GetOutdatedSupportedProjectFilePath(); var versionedFile = new ProjectVersionedFile(sourceFilePath); var migrator = new ProjectFileMigrator(); // Call bool needsMigrate = migrator.NeedsMigrate(versionedFile, "17.1"); // Assert Assert.IsTrue(needsMigrate); }
private static IEnumerable <TestCaseData> ProjectFilesToMigrate() { string unsupportedProjectFilePath = ProjectMigrationTestHelper.GetOutdatedUnSupportedProjectFilePath(); var unsupportedVersionedFile = new ProjectVersionedFile(unsupportedProjectFilePath); string unsupportedVersion = unsupportedVersionedFile.GetVersion(); string supportedProjectFilePath = ProjectMigrationTestHelper.GetOutdatedSupportedProjectFilePath(); var supportedVersionedFile = new ProjectVersionedFile(supportedProjectFilePath); string supportedVersion = supportedVersionedFile.GetVersion(); yield return(new TestCaseData(unsupportedProjectFilePath, unsupportedVersion, false).SetName("UnsupportedProjectVersion")); yield return(new TestCaseData(supportedProjectFilePath, supportedVersion, true).SetName("SupportedProjectVersion")); }
public void Migrate_UnsupportedVersion_ThrowsCriticalDatabaseMigrationException() { // Setup string sourceFilePath = ProjectMigrationTestHelper.GetOutdatedUnSupportedProjectFilePath(); var fromVersionedFile = new ProjectVersionedFile(sourceFilePath); string targetFilePath = TestHelper.GetScratchPadPath(nameof(Migrate_UnsupportedVersion_ThrowsCriticalDatabaseMigrationException)); var migrator = new ProjectFileMigrator(); // Call TestDelegate call = () => migrator.Migrate(fromVersionedFile, "17.1", targetFilePath); // Assert string message = Assert.Throws <CriticalMigrationException>(call).Message; Assert.AreEqual("Het migreren van een projectbestand met versie '8' naar versie '17.1' is niet ondersteund.", message); }
public void Migrate_TargetFilePathEqualsSourcePath_ThrowsCriticalDatabaseMigrationException() { // Setup const string newVersion = "17.1"; string sourceFilePath = ProjectMigrationTestHelper.GetOutdatedSupportedProjectFilePath(); var fromVersionedFile = new ProjectVersionedFile(sourceFilePath); var migrator = new ProjectFileMigrator(); // Call TestDelegate call = () => migrator.Migrate(fromVersionedFile, newVersion, sourceFilePath); // Assert var exception = Assert.Throws <CriticalMigrationException>(call); Assert.AreEqual("Het doelprojectpad moet anders zijn dan het bronprojectpad.", exception.Message); }
public void Migrate_UnableToSaveAtTargetFilePath_MigrationFailsAndLogsError() { // Setup string sourceFilePath = ProjectMigrationTestHelper.GetOutdatedSupportedProjectFilePath(); string targetFile = $"{nameof(ProjectMigratorTest)}." + $"{nameof(Migrate_UnableToSaveAtTargetFilePath_MigrationFailsAndLogsError)}.rtd"; string targetFilePath = Path.Combine(TestHelper.GetScratchPadPath(), testDirectory, targetFile); var mocks = new MockRepository(); var inquiryHelper = mocks.Stub <IInquiryHelper>(); mocks.ReplayAll(); var logDirectory = $"{nameof(Migrate_UnableToSaveAtTargetFilePath_MigrationFailsAndLogsError)}_log"; using (new DirectoryDisposeHelper(TestHelper.GetScratchPadPath(), logDirectory)) using (new UseCustomSettingsHelper(new TestSettingsHelper { TempPath = TestHelper.GetScratchPadPath(logDirectory) })) using (var fileDisposeHelper = new FileDisposeHelper(targetFilePath)) { var migrator = new ProjectMigrator(inquiryHelper); fileDisposeHelper.LockFiles(); var migrationSuccessful = true; // Call void Call() => migrationSuccessful = migrator.Migrate(sourceFilePath, targetFilePath); // Assert TestHelper.AssertLogMessages(Call, messages => { string[] msgs = messages.ToArray(); Assert.AreEqual(1, msgs.Length); StringAssert.StartsWith($"Het migreren van het projectbestand '{sourceFilePath}' is mislukt: ", msgs[0]); }); Assert.IsFalse(migrationSuccessful); string logPath = Path.Combine(TestHelper.GetScratchPadPath(), logDirectory, "RiskeerMigrationLog.sqlite"); Assert.IsFalse(File.Exists(logPath)); } mocks.VerifyAll(); }
public void Migrate_MigrationLogDatabaseInUse_MigrationFailsAndLogsError() { // Setup string sourceFilePath = ProjectMigrationTestHelper.GetOutdatedSupportedProjectFilePath(); string targetFile = $"{nameof(ProjectMigratorTest)}." + $"{nameof(Migrate_MigrationLogDatabaseInUse_MigrationFailsAndLogsError)}.rtd"; string targetFilePath = Path.Combine(TestHelper.GetScratchPadPath(), testDirectory, targetFile); var mocks = new MockRepository(); var inquiryHelper = mocks.Stub <IInquiryHelper>(); mocks.ReplayAll(); var logDirectory = $"{nameof(Migrate_MigrationLogDatabaseInUse_MigrationFailsAndLogsError)}_log"; string logPath = Path.Combine(TestHelper.GetScratchPadPath(), logDirectory, "RiskeerMigrationLog.sqlite"); using (new DirectoryDisposeHelper(TestHelper.GetScratchPadPath(), logDirectory)) using (new UseCustomSettingsHelper(new TestSettingsHelper { TempPath = TestHelper.GetScratchPadPath(logDirectory) })) using (var fileDisposeHelper = new FileDisposeHelper(logPath)) { var migrator = new ProjectMigrator(inquiryHelper); fileDisposeHelper.LockFiles(); var migrationSuccessful = true; // Call void Call() => migrationSuccessful = migrator.Migrate(sourceFilePath, targetFilePath); // Assert var logMessage = Tuple.Create( $"Het is niet mogelijk om het Riskeer logbestand '{logPath}' aan te maken.", LogLevelConstant.Error); TestHelper.AssertLogMessageWithLevelIsGenerated(Call, logMessage); Assert.IsFalse(migrationSuccessful); Assert.IsTrue(File.Exists(logPath)); } mocks.VerifyAll(); }
public void ShouldMigrate_LatestProjectVersion_ReturnsFalse() { // Setup var mocks = new MockRepository(); var inquiryHelper = mocks.Stub <IInquiryHelper>(); mocks.ReplayAll(); string sourceFilePath = ProjectMigrationTestHelper.GetLatestProjectFilePath(); var migrator = new ProjectMigrator(inquiryHelper); // Call MigrationRequired shouldMigrate = migrator.ShouldMigrate(sourceFilePath); // Assert Assert.AreEqual(MigrationRequired.No, shouldMigrate); mocks.VerifyAll(); }
public void Migrate_TargetPathNull_ThrowsArgumentNullException() { // Setup var mocks = new MockRepository(); var inquiryHelper = mocks.Stub <IInquiryHelper>(); mocks.ReplayAll(); var migrator = new ProjectMigrator(inquiryHelper); string sourceFilePath = ProjectMigrationTestHelper.GetOutdatedSupportedProjectFilePath(); // Call void Call() => migrator.Migrate(sourceFilePath, null); // Assert var exception = Assert.Throws <ArgumentNullException>(Call); Assert.AreEqual("targetFilePath", exception.ParamName); }
public void ShouldMigrate_OutdatedProjectSupported_AskMigrationConfirmationAndReturnBasedOnConfirmation(bool confirmContinuation) { // Setup string question = "Het project dat u wilt openen is opgeslagen in het formaat van een eerdere versie van Riskeer of Ringtoets." + $"{Environment.NewLine}{Environment.NewLine}" + $"Weet u zeker dat u het bestand wilt migreren naar het formaat van uw huidige Riskeerversie ({currentDatabaseVersion})?"; var mocks = new MockRepository(); var inquiryHelper = mocks.StrictMock <IInquiryHelper>(); inquiryHelper.Expect(h => h.InquireContinuation(question)).Return(confirmContinuation); mocks.ReplayAll(); string sourceFilePath = ProjectMigrationTestHelper.GetOutdatedSupportedProjectFilePath(); var migrator = new ProjectMigrator(inquiryHelper); // Call var shouldMigrate = MigrationRequired.No; void Call() => shouldMigrate = migrator.ShouldMigrate(sourceFilePath); // Assert var expectedLogMessages = new List <Tuple <string, LogLevelConstant> >(); if (!confirmContinuation) { expectedLogMessages.Add(Tuple.Create($"Het migreren van het projectbestand '{sourceFilePath}' is geannuleerd.", LogLevelConstant.Warn)); } TestHelper.AssertLogMessagesWithLevelAreGenerated(Call, expectedLogMessages, expectedLogMessages.Count); MigrationRequired expectedResult = confirmContinuation ? MigrationRequired.Yes : MigrationRequired.Aborted; Assert.AreEqual(expectedResult, shouldMigrate); mocks.VerifyAll(); }
public void Migrate_InvalidTargetFilePath_ThrowsArgumentException(string invalidFilePath) { // Setup var mocks = new MockRepository(); var inquiryHelper = mocks.Stub <IInquiryHelper>(); mocks.ReplayAll(); var migrator = new ProjectMigrator(inquiryHelper); string sourceFilePath = ProjectMigrationTestHelper.GetOutdatedSupportedProjectFilePath(); // Call void Call() => migrator.Migrate(sourceFilePath, invalidFilePath); // Assert var exception = TestHelper.AssertThrowsArgumentExceptionAndTestMessage <ArgumentException>( Call, "Doelprojectpad moet een geldig projectpad zijn."); Assert.AreEqual("targetFilePath", exception.ParamName); mocks.VerifyAll(); }
public void Migrate_ValidFilesWithNonExistingLogFile_ThrowsCriticalDatabaseMigrationException() { // Setup const string newVersion = "17.1"; string sourceFilePath = ProjectMigrationTestHelper.GetOutdatedSupportedProjectFilePath(); var fromVersionedFile = new ProjectVersionedFile(sourceFilePath); string targetFilePath = TestHelper.GetScratchPadPath(nameof(Migrate_ValidFilesWithNonExistingLogFile_ThrowsCriticalDatabaseMigrationException)); string logFilePath = TestHelper.GetScratchPadPath(string.Concat(nameof(Migrate_ValidFilesWithNonExistingLogFile_ThrowsCriticalDatabaseMigrationException), ".log")); var migrator = new ProjectFileMigrator { LogPath = logFilePath }; using (new FileDisposeHelper(targetFilePath)) { // Call TestDelegate call = () => migrator.Migrate(fromVersionedFile, newVersion, targetFilePath); // Assert var exception = Assert.Throws <CriticalMigrationException>(call); Assert.IsInstanceOf <SQLiteException>(exception.InnerException); } }
public void GivenMigratorAndSupportedFile_WhenValidTargetLocationGiven_ThenFileSuccessfullyMigrates() { // Given string sourceFilePath = ProjectMigrationTestHelper.GetOutdatedSupportedProjectFilePath(); string targetFile = $"{nameof(ProjectMigratorTest)}." + $"{nameof(GivenMigratorAndSupportedFile_WhenValidTargetLocationGiven_ThenFileSuccessfullyMigrates)}.rtd"; string targetFilePath = Path.Combine(TestHelper.GetScratchPadPath(), testDirectory, targetFile); var mocks = new MockRepository(); var inquiryHelper = mocks.Stub <IInquiryHelper>(); mocks.ReplayAll(); var logDirectory = $"{nameof(GivenMigratorAndSupportedFile_WhenValidTargetLocationGiven_ThenFileSuccessfullyMigrates)}_log"; using (new DirectoryDisposeHelper(TestHelper.GetScratchPadPath(), logDirectory)) using (new UseCustomSettingsHelper(new TestSettingsHelper { TempPath = TestHelper.GetScratchPadPath(logDirectory) })) { var migrator = new ProjectMigrator(inquiryHelper); var migrationSuccessful = false; // When void Call() => migrationSuccessful = migrator.Migrate(sourceFilePath, targetFilePath); // Then string expectedMessage = $"Het projectbestand '{sourceFilePath}' is succesvol gemigreerd naar '{targetFilePath}' " + $"(versie {currentDatabaseVersion})."; var migrationLog = new StringBuilder(); migrationLog.AppendLine("Door de migratie is het project aangepast. Bekijk het migratierapport door op details te klikken."); migrationLog.AppendLine("Gevolgen van de migratie van versie 16.4 naar versie 17.1:"); migrationLog.AppendLine("* Alle berekende resultaten zijn verwijderd."); migrationLog.AppendLine("* Traject: 'assessmentSection'"); migrationLog.AppendLine(" + Faalmechanisme: 'Grasbekleding erosie kruin en binnentalud'"); migrationLog.AppendLine(" - De naam van dijkprofiel '1' is veranderd naar '102' en wordt ook gebruikt als ID."); migrationLog.AppendLine(" - De naam van dijkprofiel '10' is veranderd naar '104' en wordt ook gebruikt als ID."); migrationLog.AppendLine("Gevolgen van de migratie van versie 17.1 naar versie 17.2:"); migrationLog.AppendLine("* Traject: 'assessmentSection'"); migrationLog.AppendLine(" + De omgevingswaarde is gelijk gesteld aan 1/30000."); migrationLog.AppendLine(" + De signaleringsparameter is gelijk gesteld aan 1/30000 (voorheen de waarde van de norm)."); migrationLog.AppendLine(" + De norm van het traject is gelijk gesteld aan de signaleringsparameter."); migrationLog.AppendLine(" + Faalmechanisme: 'Hoogte kunstwerk'"); migrationLog.AppendLine(" - Het ID van kunstwerk 'Id' is veranderd naar 'Id00003'."); migrationLog.AppendLine(" - Het ID van voorlandprofiel 'FP' is veranderd naar 'FP7'."); migrationLog.AppendLine(" + Faalmechanisme: 'Betrouwbaarheid sluiting kunstwerk'"); migrationLog.AppendLine(" - Het ID van kunstwerk 'id' is veranderd naar 'id00002'."); migrationLog.AppendLine(" - Het ID van voorlandprofiel 'FP' is veranderd naar 'FP8'."); migrationLog.AppendLine(" + Faalmechanisme: 'Golfklappen op asfaltbekleding'"); migrationLog.AppendLine(" - Het ID van voorlandprofiel 'FP' is veranderd naar 'FP9'."); migrationLog.AppendLine(" + Faalmechanisme: 'Grasbekleding erosie buitentalud'"); migrationLog.AppendLine(" - Het ID van voorlandprofiel 'FP' is veranderd naar 'FP10'."); migrationLog.AppendLine(" + Faalmechanisme: 'Stabiliteit steenzetting'"); migrationLog.AppendLine(" - Het ID van voorlandprofiel 'FP' is veranderd naar 'FP11'."); migrationLog.AppendLine(" + Faalmechanisme: 'Sterkte en stabiliteit puntconstructies'"); migrationLog.AppendLine(" - Het ID van kunstwerk 'anId' is veranderd naar 'anId000000002'."); migrationLog.AppendLine(" - Het ID van voorlandprofiel 'FP' is veranderd naar 'FP12'."); migrationLog.AppendLine("* Traject: 'Demo traject'"); migrationLog.AppendLine(" + De omgevingswaarde is gelijk gesteld aan 1/1000."); migrationLog.AppendLine(" + De signaleringsparameter is gelijk gesteld aan 1/30000 (voorheen de waarde van de norm)."); migrationLog.AppendLine(" + De norm van het traject is gelijk gesteld aan de signaleringsparameter."); migrationLog.AppendLine("Gevolgen van de migratie van versie 17.2 naar versie 17.3:"); migrationLog.AppendLine("* Geen aanpassingen."); migrationLog.AppendLine("Gevolgen van de migratie van versie 17.3 naar versie 18.1:"); migrationLog.AppendLine("* Traject: 'assessmentSection'"); migrationLog.AppendLine(" + Faalmechanisme: 'Piping'"); migrationLog.AppendLine(" - De waarde '3.2' voor de verschuiving van parameter 'Verzadigd gewicht' van ondergrondlaag 'HotPinkLayer' is ongeldig en is veranderd naar NaN."); migrationLog.AppendLine(" + Faalmechanisme: 'Sterkte en stabiliteit langsconstructies'"); migrationLog.AppendLine(" - Alle resultaten voor de toets op maat van dit faalmechanisme konden niet worden omgezet naar een geldig resultaat en zijn verwijderd."); migrationLog.AppendLine(" + Faalmechanisme: 'Technische innovaties'"); migrationLog.AppendLine(" - Alle resultaten voor de toets op maat van dit faalmechanisme konden niet worden omgezet naar een geldig resultaat en zijn verwijderd."); migrationLog.AppendLine(" + Faalmechanisme: 'Wateroverdruk bij asfaltbekleding'"); migrationLog.AppendLine(" - Alle resultaten voor de toets op maat van dit faalmechanisme konden niet worden omgezet naar een geldig resultaat en zijn verwijderd."); migrationLog.AppendLine(" + Faalmechanisme: 'Betrouwbaarheid sluiting kunstwerk'"); migrationLog.AppendLine(" - De waarde van '0' van parameter 'Aantal identieke doorstroomopeningen' van berekening 'Nieuwe berekening' is ongeldig en is veranderd naar 1."); migrationLog.AppendLine(" + Faalmechanisme: 'Macrostabiliteit buitenwaarts'"); migrationLog.AppendLine(" - Alle resultaten voor de toets op maat van dit faalmechanisme konden niet worden omgezet naar een geldig resultaat en zijn verwijderd."); migrationLog.AppendLine(" + Faalmechanisme: 'Golfklappen op asfaltbekleding'"); migrationLog.AppendLine(" - Alle resultaten voor de gedetailleerde toets van dit faalmechanisme konden niet worden omgezet naar een geldig resultaat en zijn verwijderd."); migrationLog.AppendLine(" - Alle resultaten voor de toets op maat van dit faalmechanisme konden niet worden omgezet naar een geldig resultaat en zijn verwijderd."); migrationLog.AppendLine(" + Faalmechanisme: 'Grasbekleding erosie buitentalud'"); migrationLog.AppendLine(" - Alle resultaten voor de gedetailleerde toets van dit faalmechanisme konden niet worden omgezet naar een geldig resultaat en zijn verwijderd."); migrationLog.AppendLine(" - Alle resultaten voor de toets op maat van dit faalmechanisme konden niet worden omgezet naar een geldig resultaat en zijn verwijderd."); migrationLog.AppendLine(" + Faalmechanisme: 'Grasbekleding afschuiven binnentalud'"); migrationLog.AppendLine(" - Alle resultaten voor de gedetailleerde toets van dit faalmechanisme konden niet worden omgezet naar een geldig resultaat en zijn verwijderd."); migrationLog.AppendLine(" - Alle resultaten voor de toets op maat van dit faalmechanisme konden niet worden omgezet naar een geldig resultaat en zijn verwijderd."); migrationLog.AppendLine(" + Faalmechanisme: 'Grasbekleding afschuiven buitentalud'"); migrationLog.AppendLine(" - Alle resultaten voor de gedetailleerde toets van dit faalmechanisme konden niet worden omgezet naar een geldig resultaat en zijn verwijderd."); migrationLog.AppendLine(" - Alle resultaten voor de toets op maat van dit faalmechanisme konden niet worden omgezet naar een geldig resultaat en zijn verwijderd."); migrationLog.AppendLine(" + Faalmechanisme: 'Microstabiliteit'"); migrationLog.AppendLine(" - Alle resultaten voor de gedetailleerde toets van dit faalmechanisme konden niet worden omgezet naar een geldig resultaat en zijn verwijderd."); migrationLog.AppendLine(" - Alle resultaten voor de toets op maat van dit faalmechanisme konden niet worden omgezet naar een geldig resultaat en zijn verwijderd."); migrationLog.AppendLine(" + Faalmechanisme: 'Piping bij kunstwerk'"); migrationLog.AppendLine(" - Alle resultaten voor de gedetailleerde toets van dit faalmechanisme konden niet worden omgezet naar een geldig resultaat en zijn verwijderd."); migrationLog.AppendLine(" - Alle resultaten voor de toets op maat van dit faalmechanisme konden niet worden omgezet naar een geldig resultaat en zijn verwijderd."); migrationLog.AppendLine(" + Faalmechanisme: 'Stabiliteit steenzetting'"); migrationLog.AppendLine(" - Alle resultaten voor de gedetailleerde toets van dit faalmechanisme konden niet worden omgezet naar een geldig resultaat en zijn verwijderd."); migrationLog.AppendLine(" - Alle resultaten voor de toets op maat van dit faalmechanisme konden niet worden omgezet naar een geldig resultaat en zijn verwijderd."); migrationLog.AppendLine(" + Faalmechanisme: 'Duinafslag'"); migrationLog.AppendLine(" - Alle resultaten voor de gedetailleerde toets van dit faalmechanisme konden niet worden omgezet naar een geldig resultaat en zijn verwijderd."); migrationLog.AppendLine(" - Alle resultaten voor de toets op maat van dit faalmechanisme konden niet worden omgezet naar een geldig resultaat en zijn verwijderd."); migrationLog.AppendLine("Gevolgen van de migratie van versie 18.1 naar versie 19.1:"); migrationLog.AppendLine("* Traject: 'assessmentSection'"); migrationLog.AppendLine(" + Er worden standaardwaarden conform WBI2017 gebruikt voor de HLCD bestandsinformatie."); migrationLog.AppendLine(" + De waarde voor de transparantie van de achtergrondkaart is aangepast naar 0.60."); migrationLog.AppendLine("* Traject: 'Demo traject'"); migrationLog.AppendLine(" + Er worden standaardwaarden conform WBI2017 gebruikt voor de HLCD bestandsinformatie."); migrationLog.AppendLine(" + De waarde voor de transparantie van de achtergrondkaart is aangepast naar 0.60."); migrationLog.AppendLine("Gevolgen van de migratie van versie 19.1 naar versie 21.1:"); migrationLog.AppendLine("* Geen aanpassingen."); migrationLog.AppendLine("Gevolgen van de migratie van versie 21.1 naar versie 22.1:"); migrationLog.AppendLine("* De oorspronkelijke faalmechanismen zijn omgezet naar het nieuwe formaat.\r\n* Alle toetsoordelen zijn verwijderd."); migrationLog.AppendLine("* Traject: 'assessmentSection'"); migrationLog.AppendLine(" + Faalmechanisme: 'Grasbekleding erosie kruin en binnentalud'"); migrationLog.AppendLine(" - De waarden van de doelkans voor HBN en overslagdebiet zijn veranderd naar de trajectnorm."); migrationLog.AppendLine("* Traject: 'Demo traject'"); migrationLog.AppendLine(" + Faalmechanisme: 'Grasbekleding erosie kruin en binnentalud'"); migrationLog.AppendLine(" - De waarden van de doelkans voor HBN en overslagdebiet zijn veranderd naar de trajectnorm."); migrationLog.AppendLine("Gevolgen van de migratie van versie 22.1 naar versie 22.2:"); migrationLog.AppendLine("* Geen aanpassingen."); Tuple <string, LogLevelConstant>[] expectedLogMessagesAndLevel = { Tuple.Create(expectedMessage, LogLevelConstant.Info), Tuple.Create(migrationLog.ToString(), LogLevelConstant.Info) }; TestHelper.AssertLogMessagesWithLevelAreGenerated(Call, expectedLogMessagesAndLevel, 2); Assert.IsTrue(migrationSuccessful); var toVersionedFile = new ProjectVersionedFile(targetFilePath); Assert.AreEqual(currentDatabaseVersion, toVersionedFile.GetVersion()); } string logPath = Path.Combine(TestHelper.GetScratchPadPath(), logDirectory, "RiskeerMigrationLog.sqlite"); Assert.IsFalse(File.Exists(logPath)); mocks.VerifyAll(); }