Index: Migration/Console/src/Migration.Console/ConsoleBase.cs =================================================================== diff -u -r537365058e32a819778930017608a6b874c89f02 -r64104dbd1703c0a2eadefd2a7833291eaad7d2d5 --- Migration/Console/src/Migration.Console/ConsoleBase.cs (.../ConsoleBase.cs) (revision 537365058e32a819778930017608a6b874c89f02) +++ Migration/Console/src/Migration.Console/ConsoleBase.cs (.../ConsoleBase.cs) (revision 64104dbd1703c0a2eadefd2a7833291eaad7d2d5) @@ -49,10 +49,12 @@ { throw new ArgumentNullException(nameof(applicationName)); } + if (applicationDescription == null) { throw new ArgumentNullException(nameof(applicationDescription)); } + this.applicationName = applicationName; this.applicationDescription = applicationDescription; } @@ -79,6 +81,7 @@ Exit(ErrorCode.ErrorBadCommand); return; } + Exit(ErrorCode.ErrorInvalidCommandLine); return; } @@ -119,6 +122,7 @@ DisplayAllCommands(); return; } + ExecuteCommand(args); } @@ -134,6 +138,7 @@ { ConsoleHelper.WriteErrorLine(Resources.Message_Inner_Exception_0, exception.InnerException.Message); } + SystemConsole.WriteLine(); } } Index: Migration/Console/src/Migration.Console/ConsoleHelper.cs =================================================================== diff -u -r537365058e32a819778930017608a6b874c89f02 -r64104dbd1703c0a2eadefd2a7833291eaad7d2d5 --- Migration/Console/src/Migration.Console/ConsoleHelper.cs (.../ConsoleHelper.cs) (revision 537365058e32a819778930017608a6b874c89f02) +++ Migration/Console/src/Migration.Console/ConsoleHelper.cs (.../ConsoleHelper.cs) (revision 64104dbd1703c0a2eadefd2a7833291eaad7d2d5) @@ -46,10 +46,12 @@ { throw new ArgumentNullException(nameof(format)); } + if (args == null) { throw new ArgumentNullException(nameof(args)); } + SystemConsole.ForegroundColor = ConsoleColor.Red; SystemConsole.WriteLine(format, args); SystemConsole.ResetColor(); @@ -78,6 +80,7 @@ { throw new ArgumentNullException(nameof(format)); } + if (args == null) { throw new ArgumentNullException(nameof(args)); Index: Migration/Console/test/Migration.Console.Test/ConsoleBaseTest.cs =================================================================== diff -u -r537365058e32a819778930017608a6b874c89f02 -r64104dbd1703c0a2eadefd2a7833291eaad7d2d5 --- Migration/Console/test/Migration.Console.Test/ConsoleBaseTest.cs (.../ConsoleBaseTest.cs) (revision 537365058e32a819778930017608a6b874c89f02) +++ Migration/Console/test/Migration.Console.Test/ConsoleBaseTest.cs (.../ConsoleBaseTest.cs) (revision 64104dbd1703c0a2eadefd2a7833291eaad7d2d5) @@ -128,7 +128,7 @@ { // Setup const string command = "invalid command"; - var commandArgs = new[] + string[] commandArgs = { command }; @@ -152,7 +152,7 @@ // Setup const string command = "invalid command"; const string exceptionMessage = "I was told to be thrown."; - var commandArgs = new[] + string[] commandArgs = { command }; @@ -184,7 +184,7 @@ const string exceptionMessage = "I was told to be thrown."; const string innerExceptionMessage = "inner exception."; - var commandArgs = new[] + string[] commandArgs = { command }; Index: Migration/Console/test/Migration.Console.TestUtil/ConsoleOutput.cs =================================================================== diff -u -r4f87cc4af28d688129fd0fb70feabf04dd7b0e59 -r64104dbd1703c0a2eadefd2a7833291eaad7d2d5 --- Migration/Console/test/Migration.Console.TestUtil/ConsoleOutput.cs (.../ConsoleOutput.cs) (revision 4f87cc4af28d688129fd0fb70feabf04dd7b0e59) +++ Migration/Console/test/Migration.Console.TestUtil/ConsoleOutput.cs (.../ConsoleOutput.cs) (revision 64104dbd1703c0a2eadefd2a7833291eaad7d2d5) @@ -72,6 +72,7 @@ SystemConsole.SetOut(originalOutput); stringWriter?.Dispose(); } + disposed = true; } } Index: Migration/Core/src/Migration.Core.Storage/VersionedFileMigrator.cs =================================================================== diff -u -rac96d7c315129af851634ed5a4a6800b59ede718 -r64104dbd1703c0a2eadefd2a7833291eaad7d2d5 --- Migration/Core/src/Migration.Core.Storage/VersionedFileMigrator.cs (.../VersionedFileMigrator.cs) (revision ac96d7c315129af851634ed5a4a6800b59ede718) +++ Migration/Core/src/Migration.Core.Storage/VersionedFileMigrator.cs (.../VersionedFileMigrator.cs) (revision 64104dbd1703c0a2eadefd2a7833291eaad7d2d5) @@ -51,9 +51,9 @@ { throw new ArgumentNullException(nameof(comparer)); } - fileMigrationScripts = GetAvailableMigrations() - .OrderBy(ms => ms.SupportedVersion()) - .ThenByDescending(ms => ms.TargetVersion()); + + fileMigrationScripts = GetAvailableMigrations().OrderBy(ms => ms.SupportedVersion()) + .ThenByDescending(ms => ms.TargetVersion()); versionedFileComparer = comparer; } @@ -82,10 +82,12 @@ { throw new ArgumentNullException(nameof(versionedFile)); } + if (toVersion == null) { throw new ArgumentNullException(nameof(toVersion)); } + return versionedFileComparer.Compare(versionedFile.GetVersion(), toVersion) < 0; } @@ -132,14 +134,17 @@ { throw new ArgumentNullException(nameof(versionedFile)); } + if (toVersion == null) { throw new ArgumentNullException(nameof(toVersion)); } + if (newFileLocation == null) { throw new ArgumentNullException(nameof(newFileLocation)); } + if (IOUtils.GetFullPath(versionedFile.Location).Equals(IOUtils.GetFullPath(newFileLocation))) { throw new CriticalMigrationException(Resources.Migrate_Target_File_Path_Must_Differ_From_Source_File_Path); @@ -161,6 +166,7 @@ throw new CriticalMigrationException(string.Format(Resources.Migrate_From_Version_0_To_Version_1_Not_Supported, fromVersion, toVersion)); } + return migrationScript; } Index: Migration/Core/test/Migration.Core.Storage.Test/VersionedFileMigratorTest.cs =================================================================== diff -u -r537365058e32a819778930017608a6b874c89f02 -r64104dbd1703c0a2eadefd2a7833291eaad7d2d5 --- Migration/Core/test/Migration.Core.Storage.Test/VersionedFileMigratorTest.cs (.../VersionedFileMigratorTest.cs) (revision 537365058e32a819778930017608a6b874c89f02) +++ Migration/Core/test/Migration.Core.Storage.Test/VersionedFileMigratorTest.cs (.../VersionedFileMigratorTest.cs) (revision 64104dbd1703c0a2eadefd2a7833291eaad7d2d5) @@ -355,6 +355,7 @@ // Assert Assert.IsTrue(File.Exists(toLocation), $"File at location {toLocation} has not been created"); using (new FileDisposeHelper(toLocation)) {} + mockRepository.VerifyAll(); } @@ -439,6 +440,7 @@ StringAssert.EndsWith($"', maar er is een onverwachte fout opgetreden tijdens het verplaatsen naar '{toLocation}'.", exception.Message); } + mockRepository.VerifyAll(); } Index: Migration/Core/test/Migration.Core.Storage.TestUtil/TestVersionedFileMigrator.cs =================================================================== diff -u -r537365058e32a819778930017608a6b874c89f02 -r64104dbd1703c0a2eadefd2a7833291eaad7d2d5 --- Migration/Core/test/Migration.Core.Storage.TestUtil/TestVersionedFileMigrator.cs (.../TestVersionedFileMigrator.cs) (revision 537365058e32a819778930017608a6b874c89f02) +++ Migration/Core/test/Migration.Core.Storage.TestUtil/TestVersionedFileMigrator.cs (.../TestVersionedFileMigrator.cs) (revision 64104dbd1703c0a2eadefd2a7833291eaad7d2d5) @@ -49,10 +49,12 @@ { throw new ArgumentNullException(nameof(upgradeScripts)); } + if (createScripts == null) { throw new ArgumentNullException(nameof(createScripts)); } + this.upgradeScripts = upgradeScripts; this.createScripts = createScripts; } Index: Migration/Scripts/src/Migration.Scripts.Data/CreateScript.cs =================================================================== diff -u -rac96d7c315129af851634ed5a4a6800b59ede718 -r64104dbd1703c0a2eadefd2a7833291eaad7d2d5 --- Migration/Scripts/src/Migration.Scripts.Data/CreateScript.cs (.../CreateScript.cs) (revision ac96d7c315129af851634ed5a4a6800b59ede718) +++ Migration/Scripts/src/Migration.Scripts.Data/CreateScript.cs (.../CreateScript.cs) (revision 64104dbd1703c0a2eadefd2a7833291eaad7d2d5) @@ -44,6 +44,7 @@ { throw new ArgumentException(@"Version must have a value.", nameof(version)); } + this.version = version; } Index: Migration/Scripts/src/Migration.Scripts.Data/FileMigrationScript.cs =================================================================== diff -u -r537365058e32a819778930017608a6b874c89f02 -r64104dbd1703c0a2eadefd2a7833291eaad7d2d5 --- Migration/Scripts/src/Migration.Scripts.Data/FileMigrationScript.cs (.../FileMigrationScript.cs) (revision 537365058e32a819778930017608a6b874c89f02) +++ Migration/Scripts/src/Migration.Scripts.Data/FileMigrationScript.cs (.../FileMigrationScript.cs) (revision 64104dbd1703c0a2eadefd2a7833291eaad7d2d5) @@ -45,10 +45,12 @@ { throw new ArgumentNullException(nameof(createScript)); } + if (upgradeScript == null) { throw new ArgumentNullException(nameof(upgradeScript)); } + this.createScript = createScript; this.upgradeScript = upgradeScript; } @@ -84,6 +86,7 @@ { throw new ArgumentNullException(nameof(sourceVersionedFile)); } + string newLocation = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName()); IVersionedFile newVersionedFile = createScript.CreateEmptyVersionedFile(newLocation); Index: Migration/Scripts/src/Migration.Scripts.Data/UpgradeScript.cs =================================================================== diff -u -rac96d7c315129af851634ed5a4a6800b59ede718 -r64104dbd1703c0a2eadefd2a7833291eaad7d2d5 --- Migration/Scripts/src/Migration.Scripts.Data/UpgradeScript.cs (.../UpgradeScript.cs) (revision ac96d7c315129af851634ed5a4a6800b59ede718) +++ Migration/Scripts/src/Migration.Scripts.Data/UpgradeScript.cs (.../UpgradeScript.cs) (revision 64104dbd1703c0a2eadefd2a7833291eaad7d2d5) @@ -49,6 +49,7 @@ { throw new ArgumentException(@"FromVersion must have a value.", nameof(fromVersion)); } + if (string.IsNullOrEmpty(toVersion)) { throw new ArgumentException(@"ToVersion must have a value.", nameof(toVersion)); @@ -97,6 +98,7 @@ { throw new ArgumentException($@"'{sourceLocation}' is not a valid file path.", nameof(sourceLocation)); } + if (!IOUtils.IsValidFilePath(targetLocation)) { throw new ArgumentException($@"'{targetLocation}' is not a valid file path.", nameof(targetLocation)); Index: Migration/Scripts/test/Migration.Scripts.Data.Test/FileMigrationScriptTest.cs =================================================================== diff -u -r537365058e32a819778930017608a6b874c89f02 -r64104dbd1703c0a2eadefd2a7833291eaad7d2d5 --- Migration/Scripts/test/Migration.Scripts.Data.Test/FileMigrationScriptTest.cs (.../FileMigrationScriptTest.cs) (revision 537365058e32a819778930017608a6b874c89f02) +++ Migration/Scripts/test/Migration.Scripts.Data.Test/FileMigrationScriptTest.cs (.../FileMigrationScriptTest.cs) (revision 64104dbd1703c0a2eadefd2a7833291eaad7d2d5) @@ -112,6 +112,7 @@ // Assert Assert.IsNotNull(upgradedFile); } + mockRepository.VerifyAll(); } }