From 1fb5791bdc1bbe1400d1cbb2fdd1574504d8700c Mon Sep 17 00:00:00 2001 From: Stef Heyenrath Date: Thu, 26 Nov 2020 09:50:03 +0000 Subject: [PATCH] .NET 5 --- WireMock.Net Solution.sln | 7 +++ .../WireMock.Net.Console.NET5.csproj | 55 +++++++++++++++++++ .../__admin/mappings/1.cs | 1 + .../11111110-a633-40e8-a244-5cb80bc0ab66.json | 22 ++++++++ .../791a3f31-6946-4ce7-8e6f-0237c7443275.json | 29 ++++++++++ .../873d495f-940e-4b86-a1f4-4f0fc7be8b8b.json | 19 +++++++ .../__admin/mappings/BodyAsFileExample.json | 22 ++++++++ .../__admin/mappings/MyXmlResponse.xml | 3 + .../__admin/mappings/array.json | 46 ++++++++++++++++ .../WireMock.Net.StandAlone.csproj | 2 +- src/WireMock.Net/Http/HttpClientHelper.cs | 2 +- .../Matchers/CSharpCodeMatcher.cs | 2 +- src/WireMock.Net/Owin/AspNetCoreSelfHost.cs | 2 + src/WireMock.Net/WireMock.Net.csproj | 10 +++- .../dotnet-WireMock.csproj | 2 +- 15 files changed, 218 insertions(+), 6 deletions(-) create mode 100644 examples/WireMock.Net.Console.NET5/WireMock.Net.Console.NET5.csproj create mode 100644 examples/WireMock.Net.Console.NET5/__admin/mappings/1.cs create mode 100644 examples/WireMock.Net.Console.NET5/__admin/mappings/11111110-a633-40e8-a244-5cb80bc0ab66.json create mode 100644 examples/WireMock.Net.Console.NET5/__admin/mappings/791a3f31-6946-4ce7-8e6f-0237c7443275.json create mode 100644 examples/WireMock.Net.Console.NET5/__admin/mappings/873d495f-940e-4b86-a1f4-4f0fc7be8b8b.json create mode 100644 examples/WireMock.Net.Console.NET5/__admin/mappings/BodyAsFileExample.json create mode 100644 examples/WireMock.Net.Console.NET5/__admin/mappings/MyXmlResponse.xml create mode 100644 examples/WireMock.Net.Console.NET5/__admin/mappings/array.json diff --git a/WireMock.Net Solution.sln b/WireMock.Net Solution.sln index ea9086e57..319c92a18 100644 --- a/WireMock.Net Solution.sln +++ b/WireMock.Net Solution.sln @@ -75,6 +75,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WireMock.Net.Console.NETCor EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "dotnet-WireMock", "src\dotnet-WireMock.Net\dotnet-WireMock.csproj", "{40BF24B5-12E6-4610-9489-138798632E28}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WireMock.Net.Console.NET5", "examples\WireMock.Net.Console.NET5\WireMock.Net.Console.NET5.csproj", "{3F8CF0AE-5F24-4A54-89E7-A3EE829DB5F8}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -185,6 +187,10 @@ Global {40BF24B5-12E6-4610-9489-138798632E28}.Debug|Any CPU.Build.0 = Debug|Any CPU {40BF24B5-12E6-4610-9489-138798632E28}.Release|Any CPU.ActiveCfg = Release|Any CPU {40BF24B5-12E6-4610-9489-138798632E28}.Release|Any CPU.Build.0 = Release|Any CPU + {3F8CF0AE-5F24-4A54-89E7-A3EE829DB5F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3F8CF0AE-5F24-4A54-89E7-A3EE829DB5F8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3F8CF0AE-5F24-4A54-89E7-A3EE829DB5F8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3F8CF0AE-5F24-4A54-89E7-A3EE829DB5F8}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -216,6 +222,7 @@ Global {E1C56967-3DC7-46CB-A1DF-B13167A0D9D4} = {985E0ADB-D4B4-473A-AA40-567E279B7946} {925E421A-1B3F-4202-B48F-734743573A4B} = {985E0ADB-D4B4-473A-AA40-567E279B7946} {40BF24B5-12E6-4610-9489-138798632E28} = {8F890C6F-9ACC-438D-928A-AD61CDA862F2} + {3F8CF0AE-5F24-4A54-89E7-A3EE829DB5F8} = {985E0ADB-D4B4-473A-AA40-567E279B7946} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {DC539027-9852-430C-B19F-FD035D018458} diff --git a/examples/WireMock.Net.Console.NET5/WireMock.Net.Console.NET5.csproj b/examples/WireMock.Net.Console.NET5/WireMock.Net.Console.NET5.csproj new file mode 100644 index 000000000..f33335baa --- /dev/null +++ b/examples/WireMock.Net.Console.NET5/WireMock.Net.Console.NET5.csproj @@ -0,0 +1,55 @@ + + + + Exe + net5.0 + ../../WireMock.Net-Logo.ico + + + + + + + + + + + PreserveNewest + + + + + + + + + + + + + + + + + + + + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + Never + + + PreserveNewest + + + + \ No newline at end of file diff --git a/examples/WireMock.Net.Console.NET5/__admin/mappings/1.cs b/examples/WireMock.Net.Console.NET5/__admin/mappings/1.cs new file mode 100644 index 000000000..c8143e099 --- /dev/null +++ b/examples/WireMock.Net.Console.NET5/__admin/mappings/1.cs @@ -0,0 +1 @@ +// C# Hello \ No newline at end of file diff --git a/examples/WireMock.Net.Console.NET5/__admin/mappings/11111110-a633-40e8-a244-5cb80bc0ab66.json b/examples/WireMock.Net.Console.NET5/__admin/mappings/11111110-a633-40e8-a244-5cb80bc0ab66.json new file mode 100644 index 000000000..9c761369d --- /dev/null +++ b/examples/WireMock.Net.Console.NET5/__admin/mappings/11111110-a633-40e8-a244-5cb80bc0ab66.json @@ -0,0 +1,22 @@ +{ + "Request": { + "Path": { + "Matchers": [ + { + "Name": "WildcardMatcher", + "Pattern": "/static/mapping" + } + ] + }, + "Methods": [ + "get" + ] + }, + "Response": { + "BodyAsJson": { "body": "static mapping" }, + "Headers": { + "Content-Type": "application/json", + "Test-X": [ "test 1", "test 2" ] + } + } +} \ No newline at end of file diff --git a/examples/WireMock.Net.Console.NET5/__admin/mappings/791a3f31-6946-4ce7-8e6f-0237c7443275.json b/examples/WireMock.Net.Console.NET5/__admin/mappings/791a3f31-6946-4ce7-8e6f-0237c7443275.json new file mode 100644 index 000000000..d7a6cbdd7 --- /dev/null +++ b/examples/WireMock.Net.Console.NET5/__admin/mappings/791a3f31-6946-4ce7-8e6f-0237c7443275.json @@ -0,0 +1,29 @@ +{ + "Guid": "791a3f31-6946-4ce7-8e6f-0237c7443275", + "Title": "", + "Priority": 0, + "Request": { + "Path": "/proxy-google-test-post", + "Methods": [ + "post" + ], + "Body": {} + }, + "Response": { + "StatusCode": 404, + "Body": "\n\n \n \n Error 404 (Not Found)!!1\n \n \n

404. That’s an error.\n

The requested URL /proxy-google-test-post was not found on this server. That’s all we know.\n", + "BodyAsBytes": "PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ZW4+CiAgPG1ldGEgY2hhcnNldD11dGYtOD4KICA8bWV0YSBuYW1lPXZpZXdwb3J0IGNvbnRlbnQ9ImluaXRpYWwtc2NhbGU9MSwgbWluaW11bS1zY2FsZT0xLCB3aWR0aD1kZXZpY2Utd2lkdGgiPgogIDx0aXRsZT5FcnJvciA0MDQgKE5vdCBGb3VuZCkhITE8L3RpdGxlPgogIDxzdHlsZT4KICAgICp7bWFyZ2luOjA7cGFkZGluZzowfWh0bWwsY29kZXtmb250OjE1cHgvMjJweCBhcmlhbCxzYW5zLXNlcmlmfWh0bWx7YmFja2dyb3VuZDojZmZmO2NvbG9yOiMyMjI7cGFkZGluZzoxNXB4fWJvZHl7bWFyZ2luOjclIGF1dG8gMDttYXgtd2lkdGg6MzkwcHg7bWluLWhlaWdodDoxODBweDtwYWRkaW5nOjMwcHggMCAxNXB4fSogPiBib2R5e2JhY2tncm91bmQ6dXJsKC8vd3d3Lmdvb2dsZS5jb20vaW1hZ2VzL2Vycm9ycy9yb2JvdC5wbmcpIDEwMCUgNXB4IG5vLXJlcGVhdDtwYWRkaW5nLXJpZ2h0OjIwNXB4fXB7bWFyZ2luOjExcHggMCAyMnB4O292ZXJmbG93OmhpZGRlbn1pbnN7Y29sb3I6Izc3Nzt0ZXh0LWRlY29yYXRpb246bm9uZX1hIGltZ3tib3JkZXI6MH1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjc3MnB4KXtib2R5e2JhY2tncm91bmQ6bm9uZTttYXJnaW4tdG9wOjA7bWF4LXdpZHRoOm5vbmU7cGFkZGluZy1yaWdodDowfX0jbG9nb3tiYWNrZ3JvdW5kOnVybCgvL3d3dy5nb29nbGUuY29tL2ltYWdlcy9icmFuZGluZy9nb29nbGVsb2dvLzF4L2dvb2dsZWxvZ29fY29sb3JfMTUweDU0ZHAucG5nKSBuby1yZXBlYXQ7bWFyZ2luLWxlZnQ6LTVweH1AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjoxOTJkcGkpeyNsb2dve2JhY2tncm91bmQ6dXJsKC8vd3d3Lmdvb2dsZS5jb20vaW1hZ2VzL2JyYW5kaW5nL2dvb2dsZWxvZ28vMngvZ29vZ2xlbG9nb19jb2xvcl8xNTB4NTRkcC5wbmcpIG5vLXJlcGVhdCAwJSAwJS8xMDAlIDEwMCU7LW1vei1ib3JkZXItaW1hZ2U6dXJsKC8vd3d3Lmdvb2dsZS5jb20vaW1hZ2VzL2JyYW5kaW5nL2dvb2dsZWxvZ28vMngvZ29vZ2xlbG9nb19jb2xvcl8xNTB4NTRkcC5wbmcpIDB9fUBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzoyKXsjbG9nb3tiYWNrZ3JvdW5kOnVybCgvL3d3dy5nb29nbGUuY29tL2ltYWdlcy9icmFuZGluZy9nb29nbGVsb2dvLzJ4L2dvb2dsZWxvZ29fY29sb3JfMTUweDU0ZHAucG5nKSBuby1yZXBlYXQ7LXdlYmtpdC1iYWNrZ3JvdW5kLXNpemU6MTAwJSAxMDAlfX0jbG9nb3tkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6NTRweDt3aWR0aDoxNTBweH0KICA8L3N0eWxlPgogIDxhIGhyZWY9Ly93d3cuZ29vZ2xlLmNvbS8+PHNwYW4gaWQ9bG9nbyBhcmlhLWxhYmVsPUdvb2dsZT48L3NwYW4+PC9hPgogIDxwPjxiPjQwNC48L2I+IDxpbnM+VGhhdOKAmXMgYW4gZXJyb3IuPC9pbnM+CiAgPHA+VGhlIHJlcXVlc3RlZCBVUkwgPGNvZGU+L3Byb3h5LWdvb2dsZS10ZXN0LXBvc3Q8L2NvZGU+IHdhcyBub3QgZm91bmQgb24gdGhpcyBzZXJ2ZXIuICA8aW5zPlRoYXTigJlzIGFsbCB3ZSBrbm93LjwvaW5zPgo=", + "BodyEncoding": { + "CodePage": 65001, + "EncodingName": "Unicode (UTF-8)", + "WebName": "utf-8" + }, + "UseTransformer": false, + "Headers": { + "Date": "Wed, 27 Oct 2017 18:57:40 GMT", + "Alt-Svc": "quic=\":443\"; ma=2592000; v=\"39,38,37,35\"", + "Referrer-Policy": "no-referrer", + "Connection": "close" + } + } +} \ No newline at end of file diff --git a/examples/WireMock.Net.Console.NET5/__admin/mappings/873d495f-940e-4b86-a1f4-4f0fc7be8b8b.json b/examples/WireMock.Net.Console.NET5/__admin/mappings/873d495f-940e-4b86-a1f4-4f0fc7be8b8b.json new file mode 100644 index 000000000..dd5018000 --- /dev/null +++ b/examples/WireMock.Net.Console.NET5/__admin/mappings/873d495f-940e-4b86-a1f4-4f0fc7be8b8b.json @@ -0,0 +1,19 @@ +{ + "Guid": "873d495f-940e-4b86-a1f4-4f0fc7be8b8b", + "Priority": 4, + "Request": { + "Path": {}, + "Methods": [ + "get" + ] + }, + "Response": { + "StatusCode": 200, + "BodyDestination": "SameAsSource", + "Body": "NO PATH OR URL", + "UseTransformer": false, + "Headers": { + "Content-Type": "application/json" + } + } +} \ No newline at end of file diff --git a/examples/WireMock.Net.Console.NET5/__admin/mappings/BodyAsFileExample.json b/examples/WireMock.Net.Console.NET5/__admin/mappings/BodyAsFileExample.json new file mode 100644 index 000000000..633db99eb --- /dev/null +++ b/examples/WireMock.Net.Console.NET5/__admin/mappings/BodyAsFileExample.json @@ -0,0 +1,22 @@ +{ + "Request": { + "Path": { + "Matchers": [ + { + "Name": "WildcardMatcher", + "Pattern": "/bodyasfilexmltest", + "IgnoreCase": false + } + ] + }, + "Methods": [ + "get" + ] + }, + "Response": { + "StatusCode": 200, + "Headers": {"Content-Type": "application/xml"}, + "BodyAsFile": "MyXmlResponse.xml", + "UseTransformer": false + } +} \ No newline at end of file diff --git a/examples/WireMock.Net.Console.NET5/__admin/mappings/MyXmlResponse.xml b/examples/WireMock.Net.Console.NET5/__admin/mappings/MyXmlResponse.xml new file mode 100644 index 000000000..24fd28d33 --- /dev/null +++ b/examples/WireMock.Net.Console.NET5/__admin/mappings/MyXmlResponse.xml @@ -0,0 +1,3 @@ + +world + \ No newline at end of file diff --git a/examples/WireMock.Net.Console.NET5/__admin/mappings/array.json b/examples/WireMock.Net.Console.NET5/__admin/mappings/array.json new file mode 100644 index 000000000..79f338ae7 --- /dev/null +++ b/examples/WireMock.Net.Console.NET5/__admin/mappings/array.json @@ -0,0 +1,46 @@ +[ + { + "Title": "1", + "Request": { + "Path": { + "Matchers": [ + { + "Name": "WildcardMatcher", + "Pattern": "/mappings_static_1" + } + ] + }, + "Methods": [ + "get" + ] + }, + "Response": { + "BodyAsJson": { "result": "mappings static_1" }, + "Headers": { + "Content-Type": "application/json" + } + } + }, + { + "Title": "2", + "Request": { + "Path": { + "Matchers": [ + { + "Name": "WildcardMatcher", + "Pattern": "/mappings_static_2" + } + ] + }, + "Methods": [ + "get" + ] + }, + "Response": { + "BodyAsJson": { "result": "mappings static_2" }, + "Headers": { + "Content-Type": "application/json" + } + } + } +] \ No newline at end of file diff --git a/src/WireMock.Net.StandAlone/WireMock.Net.StandAlone.csproj b/src/WireMock.Net.StandAlone/WireMock.Net.StandAlone.csproj index daee0e5a3..2347640cb 100644 --- a/src/WireMock.Net.StandAlone/WireMock.Net.StandAlone.csproj +++ b/src/WireMock.Net.StandAlone/WireMock.Net.StandAlone.csproj @@ -3,7 +3,7 @@ Lightweight StandAlone Http Mocking Server for .Net. WireMock.Net.StandAlone Stef Heyenrath - net451;net452;net46;net461;netstandard1.3;netstandard2.0;netstandard2.1;netcoreapp3.1 + net451;net452;net46;net461;netstandard1.3;netstandard2.0;netstandard2.1;netcoreapp3.1;net5.0 true WireMock.Net.StandAlone WireMock.Net.StandAlone diff --git a/src/WireMock.Net/Http/HttpClientHelper.cs b/src/WireMock.Net/Http/HttpClientHelper.cs index eab1ac385..d116cdd0a 100644 --- a/src/WireMock.Net/Http/HttpClientHelper.cs +++ b/src/WireMock.Net/Http/HttpClientHelper.cs @@ -13,7 +13,7 @@ internal static class HttpClientHelper { public static HttpClient CreateHttpClient(IProxyAndRecordSettings settings) { -#if NETSTANDARD || NETCOREAPP3_1 +#if NETSTANDARD || NETCOREAPP3_1 || NET5_0 var handler = new HttpClientHandler { CheckCertificateRevocationList = false, diff --git a/src/WireMock.Net/Matchers/CSharpCodeMatcher.cs b/src/WireMock.Net/Matchers/CSharpCodeMatcher.cs index 8252abdb8..f68b05048 100644 --- a/src/WireMock.Net/Matchers/CSharpCodeMatcher.cs +++ b/src/WireMock.Net/Matchers/CSharpCodeMatcher.cs @@ -151,7 +151,7 @@ private bool IsMatch(dynamic input, string pattern) throw new WireMockException("CSharpCodeMatcher: Problem calling method 'IsMatch' in WireMock.CodeHelper", ex); } -#elif (NETSTANDARD2_0 || NETSTANDARD2_1 || NETCOREAPP3_1) +#elif (NETSTANDARD2_0 || NETSTANDARD2_1 || NETCOREAPP3_1 || NET5_0) dynamic script; try { diff --git a/src/WireMock.Net/Owin/AspNetCoreSelfHost.cs b/src/WireMock.Net/Owin/AspNetCoreSelfHost.cs index 717200d69..ef647d3ed 100644 --- a/src/WireMock.Net/Owin/AspNetCoreSelfHost.cs +++ b/src/WireMock.Net/Owin/AspNetCoreSelfHost.cs @@ -122,6 +122,8 @@ private Task RunHost(CancellationToken token) _logger.Info("WireMock.Net server using netstandard2.1"); #elif NETCOREAPP3_1 _logger.Info("WireMock.Net server using .NET Core 3.1"); +#elif NET5_0 + _logger.Info("WireMock.Net server using .NET 5.0"); #elif NET46 _logger.Info("WireMock.Net server using .NET Framework 4.6.1 or higher"); #endif diff --git a/src/WireMock.Net/WireMock.Net.csproj b/src/WireMock.Net/WireMock.Net.csproj index 72ea8962e..d1a4a1efe 100644 --- a/src/WireMock.Net/WireMock.Net.csproj +++ b/src/WireMock.Net/WireMock.Net.csproj @@ -3,7 +3,7 @@ Lightweight Http Mocking Server for .Net, inspired by WireMock from the Java landscape. WireMock.Net Stef Heyenrath - net451;net452;net46;net461;netstandard1.3;netstandard2.0;netstandard2.1;netcoreapp3.1 + net451;net452;net46;net461;netstandard1.3;netstandard2.0;netstandard2.1;netcoreapp3.1;net5.0 true WireMock.Net WireMock.Net @@ -42,7 +42,7 @@ NETSTANDARD;USE_ASPNETCORE - + USE_ASPNETCORE @@ -141,6 +141,12 @@ + + + + + + diff --git a/src/dotnet-WireMock.Net/dotnet-WireMock.csproj b/src/dotnet-WireMock.Net/dotnet-WireMock.csproj index 69b3e3fcb..359734502 100644 --- a/src/dotnet-WireMock.Net/dotnet-WireMock.csproj +++ b/src/dotnet-WireMock.Net/dotnet-WireMock.csproj @@ -2,7 +2,7 @@ Exe - net5 + net5.0 true dotnet-wiremock A dotnet commandline tool for WireMock.Net (A Lightweight Http Mocking Server for .NET)