Index: Migration/Console/src/Migration.Console/ErrorCode.cs =================================================================== diff -u -r111d72b3e14a3dddfaacddbae3f06ae214049f91 -rdb555a35f4ca5c9bb274d0842d1cce5dab6c34ee --- Migration/Console/src/Migration.Console/ErrorCode.cs (.../ErrorCode.cs) (revision 111d72b3e14a3dddfaacddbae3f06ae214049f91) +++ Migration/Console/src/Migration.Console/ErrorCode.cs (.../ErrorCode.cs) (revision db555a35f4ca5c9bb274d0842d1cce5dab6c34ee) @@ -27,13 +27,18 @@ public enum ErrorCode { /// + /// Exit successfully. + /// + ErrorSuccess = 0, + + /// /// Exit because the command provide failed. /// ErrorBadCommand = 22, /// - /// Exit because bad arguments were provided. + /// Exit because invalid command line arguments were provided. /// - ErrorBadArguments = 160 + ErrorInvalidCommandLine = 160 } } \ No newline at end of file Index: Migration/Console/src/Migration.Console/RingtoetsMigrationTool.cs =================================================================== diff -u -r111d72b3e14a3dddfaacddbae3f06ae214049f91 -rdb555a35f4ca5c9bb274d0842d1cce5dab6c34ee --- Migration/Console/src/Migration.Console/RingtoetsMigrationTool.cs (.../RingtoetsMigrationTool.cs) (revision 111d72b3e14a3dddfaacddbae3f06ae214049f91) +++ Migration/Console/src/Migration.Console/RingtoetsMigrationTool.cs (.../RingtoetsMigrationTool.cs) (revision db555a35f4ca5c9bb274d0842d1cce5dab6c34ee) @@ -24,6 +24,7 @@ using Migration.Console.Properties; using Migration.Core.Storage; using Migration.Scripts.Data; +using Migration.Scripts.Data.Exceptions; using SystemConsole = System.Console; namespace Migration.Console @@ -52,11 +53,22 @@ { ExecuteCommand(args); } - catch (ArgumentException exception) + catch (Exception exception) { ConsoleHelper.WriteErrorLine(exception.Message); - Exit(ErrorCode.ErrorBadArguments); + ConsoleHelper.WriteErrorLine(""); + DisplayAllCommands(); + + if (exception is CriticalDatabaseMigrationException || exception is NotSupportedException) + { + Exit(ErrorCode.ErrorBadCommand); + return; + } + Exit(ErrorCode.ErrorInvalidCommandLine); + return; } + + Exit(ErrorCode.ErrorSuccess); } private static void ExecuteCommand(string[] args) @@ -75,8 +87,6 @@ break; default: InvalidCommand(command); - DisplayAllCommands(); - Exit(ErrorCode.ErrorBadCommand); break; } } @@ -99,8 +109,7 @@ private static void InvalidCommand(string command) { - ConsoleHelper.WriteErrorLine(Resources.CommandInvalid_Command_0_Is_not_valid, command); - SystemConsole.WriteLine(""); + throw new NotSupportedException(string.Format(Resources.CommandInvalid_Command_0_Is_not_valid, command)); } #endregion @@ -111,11 +120,8 @@ { if (args.Length != 2) { - ConsoleHelper.WriteErrorLine(Resources.Command_0_Incorrect_number_of_parameters, commandVersionSupported); - SystemConsole.WriteLine(""); - ShowSupportedCommand(); - Exit(ErrorCode.ErrorBadArguments); - return; + throw new InvalidOperationException(string.Format(Resources.Command_0_Incorrect_number_of_parameters, + commandVersionSupported)); } string version = args[1]; @@ -142,13 +148,9 @@ { if (args.Length != 4) { - ConsoleHelper.WriteErrorLine(Resources.Command_0_Incorrect_number_of_parameters, commandMigrate); - SystemConsole.WriteLine(""); - ShowMigrateCommand(); - Exit(ErrorCode.ErrorBadArguments); - return; + throw new InvalidOperationException(string.Format(Resources.Command_0_Incorrect_number_of_parameters, + commandMigrate)); } - var migrator = new VersionedFileMigrator(); string filepath = args[1]; @@ -157,20 +159,7 @@ var sourceFile = new VersionedFile(filepath); - try - { - migrator.Migrate(sourceFile, toVersion, toFilepath); - } - catch (Exception exception) - { - ConsoleHelper.WriteErrorLine(exception.Message); - if (exception is ArgumentException) - { - Exit(ErrorCode.ErrorBadArguments); - return; - } - Exit(ErrorCode.ErrorBadCommand); - } + migrator.Migrate(sourceFile, toVersion, toFilepath); } private static void ShowMigrateCommand() Index: Migration/Console/test/Migration.Console.Test/RingtoetsMigrationToolTest.cs =================================================================== diff -u -rb5aa83e7766c6fccd8ad0bc55eca6548c3da43de -rdb555a35f4ca5c9bb274d0842d1cce5dab6c34ee --- Migration/Console/test/Migration.Console.Test/RingtoetsMigrationToolTest.cs (.../RingtoetsMigrationToolTest.cs) (revision b5aa83e7766c6fccd8ad0bc55eca6548c3da43de) +++ Migration/Console/test/Migration.Console.Test/RingtoetsMigrationToolTest.cs (.../RingtoetsMigrationToolTest.cs) (revision db555a35f4ca5c9bb274d0842d1cce5dab6c34ee) @@ -137,7 +137,15 @@ // Result Assert.AreEqual($"Er is een verkeerd aantal parameters opgegeven voor de opdracht '{supportedCommand}'" + Environment.NewLine + Environment.NewLine - + $"{supportedCommand} RINGTOETSBESTANDSPAD\t" + + "--help\tGeef het hulp menu weer." + + Environment.NewLine + + "--migrate RINGTOETSBESTANDSPAD NIEUWEVERSIE UITVOERPAD" + + "\t" + + "RINGTOETSBESTANDSPAD is het bestandspad naar het Ringtoetsdatabase bestand dat gemigreerd moet worden. " + + "NIEUWEVERSIE is de versie naar waar gemigreerd moet worden. " + + "UITVOERPAD is het pad waar de het gemigreerde Ringtoetsbestand opgeslagen zal worden." + + Environment.NewLine + + "--supported RINGTOETSBESTANDSPAD\t" + "RINGTOETSBESTANDSPAD is het bestandspad naar het Ringtoetsdatabase bestand waarvan de versie gevalideerd moet worden." + Environment.NewLine , consoleText); @@ -195,12 +203,17 @@ // Result Assert.AreEqual($"Er is een verkeerd aantal parameters opgegeven voor de opdracht '{migrateCommand}'" + Environment.NewLine + Environment.NewLine - + $"{migrateCommand} RINGTOETSBESTANDSPAD NIEUWEVERSIE UITVOERPAD\t" + + "--help\tGeef het hulp menu weer." + + Environment.NewLine + + "--migrate RINGTOETSBESTANDSPAD NIEUWEVERSIE UITVOERPAD" + + "\t" + "RINGTOETSBESTANDSPAD is het bestandspad naar het Ringtoetsdatabase bestand dat gemigreerd moet worden. " + "NIEUWEVERSIE is de versie naar waar gemigreerd moet worden. " + "UITVOERPAD is het pad waar de het gemigreerde Ringtoetsbestand opgeslagen zal worden." + Environment.NewLine - , consoleText); + + "--supported RINGTOETSBESTANDSPAD\t" + + "RINGTOETSBESTANDSPAD is het bestandspad naar het Ringtoetsdatabase bestand waarvan de versie gevalideerd moet worden." + + Environment.NewLine, consoleText); Assert.AreEqual(160, environmentControl.ErrorCodeCalled); } @@ -266,7 +279,18 @@ // Result Assert.That(consoleText.StartsWith("Er is een onverwachte fout opgetreden tijdens het verplaatsen van het gemigreerde bestand ")); - Assert.That(consoleText.EndsWith($" naar '{targetFilePath}'." + Environment.NewLine)); + Assert.That(consoleText.EndsWith($" naar '{targetFilePath}'." + Environment.NewLine + Environment.NewLine + + "--help\tGeef het hulp menu weer." + + Environment.NewLine + + "--migrate RINGTOETSBESTANDSPAD NIEUWEVERSIE UITVOERPAD" + + "\t" + + "RINGTOETSBESTANDSPAD is het bestandspad naar het Ringtoetsdatabase bestand dat gemigreerd moet worden. " + + "NIEUWEVERSIE is de versie naar waar gemigreerd moet worden. " + + "UITVOERPAD is het pad waar de het gemigreerde Ringtoetsbestand opgeslagen zal worden." + + Environment.NewLine + + "--supported RINGTOETSBESTANDSPAD\t" + + "RINGTOETSBESTANDSPAD is het bestandspad naar het Ringtoetsdatabase bestand waarvan de versie gevalideerd moet worden." + + Environment.NewLine)); Assert.AreEqual(22, environmentControl.ErrorCodeCalled); } } Index: Migration/Core/test/Migration.Core.Storage.Test/Migration.Core.Storage.Test.csproj =================================================================== diff -u -rf312ebb819e2bae83d5e3b55aa92773b79712bfa -rdb555a35f4ca5c9bb274d0842d1cce5dab6c34ee --- Migration/Core/test/Migration.Core.Storage.Test/Migration.Core.Storage.Test.csproj (.../Migration.Core.Storage.Test.csproj) (revision f312ebb819e2bae83d5e3b55aa92773b79712bfa) +++ Migration/Core/test/Migration.Core.Storage.Test/Migration.Core.Storage.Test.csproj (.../Migration.Core.Storage.Test.csproj) (revision db555a35f4ca5c9bb274d0842d1cce5dab6c34ee) @@ -83,6 +83,10 @@ {D749EE4C-CE50-4C17-BF01-9A953028C126} Core.Common.TestUtil + + {6a074d65-a81c-4c1c-8e24-f36c916e4ed7} + Ringtoets.Common.Utils + {EED7826A-5397-4EEB-A1F8-A7550078459E} Migration.Ringtoets.Data