diff --git a/Directory.Build.props b/Directory.Build.props index 6a3dcd7a..1ee7e9c6 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -4,7 +4,7 @@ - 1.0.4.18 + 1.0.4.19 diff --git a/GitHubReleaseNotes.txt b/GitHubReleaseNotes.txt index 1c882871..3a0dc0aa 100644 --- a/GitHubReleaseNotes.txt +++ b/GitHubReleaseNotes.txt @@ -1,3 +1,3 @@ https://github.com/StefH/GitHubReleaseNotes -GitHubReleaseNotes.exe . --output CHANGELOG.md --skip-empty-releases \ No newline at end of file +GitHubReleaseNotes.exe . --output CHANGELOG.md --skip-empty-releases --version 1.0.4.19 \ No newline at end of file diff --git a/README.md b/README.md index 617a6e62..80748659 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,7 @@ A C# .NET version based on [mock4net](https://github.com/alexvictoor/mock4net) w |   **Sonar Bugs** | [![Sonar Bugs](https://sonarcloud.io/api/project_badges/measure?project=wiremock&metric=bugs)](https://sonarcloud.io/project/issues?id=wiremock&resolved=false&types=BUG) | |   **Sonar Code Smells** | [![Sonar Code Smells](https://sonarcloud.io/api/project_badges/measure?project=wiremock&metric=code_smells)](https://sonarcloud.io/project/issues?id=wiremock&resolved=false&types=CODE_SMELL) | |   **Sonar Coverage** | [![Sonar Coverage](https://sonarcloud.io/api/project_badges/measure?project=wiremock&metric=coverage)](https://sonarcloud.io/component_measures?id=wiremock&metric=coverage) | +|   **Codecov** | [![codecov](https://codecov.io/gh/WireMock-Net/WireMock.Net/branch/master/graph/badge.svg)](https://codecov.io/gh/WireMock-Net/WireMock.Net) | |   **Coveralls** | [![Coverage Status](https://coveralls.io/repos/github/WireMock-Net/WireMock.Net/badge.svg?branch=master)](https://coveralls.io/github/WireMock-Net/WireMock.Net?branch=master) | | | | ***NuGet*** |   | diff --git a/src/WireMock.Net.StandAlone/SimpleCommandLineParser.cs b/src/WireMock.Net.StandAlone/SimpleCommandLineParser.cs index 760d9e80..44ddf2d8 100644 --- a/src/WireMock.Net.StandAlone/SimpleCommandLineParser.cs +++ b/src/WireMock.Net.StandAlone/SimpleCommandLineParser.cs @@ -8,28 +8,20 @@ namespace WireMock.Net.StandAlone internal class SimpleCommandLineParser { private const string Sigil = "--"; - private const string SigilAzureServiceFabric = "'--"; - - private enum SigilType - { - Normal, - AzureServiceFabric - } private IDictionary Arguments { get; } = new Dictionary(); - public void Parse(string[] args) + public void Parse(string[] arguments) { - SigilType sigil = SigilType.Normal; string currentName = null; var values = new List(); - foreach (string arg in args) + + // Split a single argument on a space character to fix issue (e.g. Azure Service Fabric) when an argument is supplied like "--x abc" or '--x abc' + foreach (string arg in arguments.SelectMany(arg => arg.Split(' '))) { if (arg.StartsWith(Sigil)) { - sigil = SigilType.Normal; - if (!string.IsNullOrEmpty(currentName)) { Arguments[currentName] = values.ToArray(); @@ -38,33 +30,13 @@ namespace WireMock.Net.StandAlone values.Clear(); currentName = arg.Substring(Sigil.Length); } - // Azure Service Fabric passes the command line parameter surrounded with single quotes. (https://github.com/Microsoft/service-fabric/issues/234) - else if (arg.StartsWith(SigilAzureServiceFabric)) - { - sigil = SigilType.AzureServiceFabric; - - if (!string.IsNullOrEmpty(currentName)) - { - Arguments[currentName] = values.ToArray(); - } - - values.Clear(); - currentName = arg.Substring(SigilAzureServiceFabric.Length); - } else if (string.IsNullOrEmpty(currentName)) { Arguments[arg] = new string[0]; } else { - if (sigil == SigilType.Normal) - { - values.Add(arg); - } - else - { - values.Add(arg.Substring(0, arg.Length - 1)); - } + values.Add(arg); } } diff --git a/test/WireMock.Net.Tests/StandAlone/SimpleCommandLineParserTests.cs b/test/WireMock.Net.Tests/StandAlone/SimpleCommandLineParserTests.cs index f1a0d688..0fbd4874 100644 --- a/test/WireMock.Net.Tests/StandAlone/SimpleCommandLineParserTests.cs +++ b/test/WireMock.Net.Tests/StandAlone/SimpleCommandLineParserTests.cs @@ -31,10 +31,10 @@ namespace WireMock.Net.Tests.StandAlone } [Fact] - public void SimpleCommandLineParser_Parse_ArgumentsWithSingleQuotes() + public void SimpleCommandLineParser_Parse_ArgumentsAsCombinedKeyAndValue() { // Assign - _parser.Parse(new[] { "'--test1", "one'", "'--test2", "two'", "'--test3", "three'" }); + _parser.Parse(new[] { "--test1 one", "--test2 two", "--test3 three" }); // Act string value1 = _parser.GetStringValue("test1"); @@ -51,7 +51,7 @@ namespace WireMock.Net.Tests.StandAlone public void SimpleCommandLineParser_Parse_ArgumentsMixed() { // Assign - _parser.Parse(new[] { "'--test1", "one'", "--test2", "two", "--test3", "three" }); + _parser.Parse(new[] { "--test1 one", "--test2", "two", "--test3 three" }); // Act string value1 = _parser.GetStringValue("test1"); @@ -68,7 +68,7 @@ namespace WireMock.Net.Tests.StandAlone public void SimpleCommandLineParser_Parse_GetBoolValue() { // Assign - _parser.Parse(new[] { "'--test1", "false'", "--test2", "true" }); + _parser.Parse(new[] { "'--test1", "false'", "--test2 true" }); // Act bool value1 = _parser.GetBoolValue("test1"); @@ -85,7 +85,7 @@ namespace WireMock.Net.Tests.StandAlone public void SimpleCommandLineParser_Parse_GetIntValue() { // Assign - _parser.Parse(new[] { "'--test1", "42'", "--test2", "55" }); + _parser.Parse(new[] { "--test1", "42", "--test2 55" }); // Act int? value1 = _parser.GetIntValue("test1");