diff --git a/README.md b/README.md index 45c702a4..dd6f1def 100644 --- a/README.md +++ b/README.md @@ -14,9 +14,18 @@ A C# .NET version based on [mock4net](https://github.com/alexvictoor/mock4net) w ### Frameworks The following frameworks are supported: -- net 4.5 - net 4.5.2 and up +- net 4.6 and up - netstandard 1.3 +- netstandard 2.0 + +## Build info +To build you need: +- Microsoft .NET Framework 4.5.2 Developer Pack (https://www.microsoft.com/en-us/download/details.aspx?id=42637) +- Microsoft .NET Framework 4.6 Targeting Pack (https://www.microsoft.com/en-us/download/confirmation.aspx?id=48136) +- Microsoft .NET Framework 4.6.2 Developer Pack (https://www.microsoft.com/en-us/download/confirmation.aspx?id=53321) +* .NET Core 2.0 Preview 2 (https://www.microsoft.com/net/core/preview#windowscmd) + ## Stubbing A core feature of WireMock.Net is the ability to return canned/predefined HTTP responses for requests matching criteria, see [Wiki : Stubbing](https://github.com/StefH/WireMock.Net/wiki/Stubbing). diff --git a/appveyor.yml b/appveyor.yml index 42848830..05034d77 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -9,8 +9,8 @@ init: - ps: $Env:LABEL = "CI" + $Env:APPVEYOR_BUILD_NUMBER.PadLeft(5, "0") install: - - ps: Start-FileDownload 'https://download.microsoft.com/download/8/F/9/8F9659B9-E628-4D1A-B6BF-C3004C8C954B/dotnet-1.1.1-sdk-win-x64.exe' - - cmd: dotnet-1.1.1-sdk-win-x64.exe /quiet + - ps: Start-FileDownload 'https://download.microsoft.com/download/6/1/B/61B3E81F-5509-48D2-BB4F-5189E23CD29A/dotnet-sdk-2.0.0-preview2-006497-win-x64.exe' + - cmd: dotnet-sdk-2.0.0-preview2-006497-win-x64.exe /quiet - ps: $env:DOTNET_SKIP_FIRST_TIME_EXPERIENCE = "true" environment: @@ -20,7 +20,6 @@ environment: before_build: - dotnet restore .\src\WireMock.Net\WireMock.Net.csproj -- dotnet restore .\src\WireMock.Net.Client\WireMock.Net.Client.csproj - dotnet restore .\src\WireMock.Net.Standalone\WireMock.Net.Standalone.csproj - nuget restore .\examples\WireMock.Net.ConsoleApplication\WireMock.Net.ConsoleApplication.csproj -PackagesDirectory packages @@ -28,13 +27,13 @@ build_script: # build WireMock.Net - dotnet build .\src\WireMock.Net\WireMock.Net.csproj -c %CONFIGURATION% +# build WireMock.Net.Standalone +- dotnet build .\src\WireMock.Net.Standalone\WireMock.Net.Standalone.csproj -c %CONFIGURATION% + # restore and build WireMock.Net.Tests - dotnet restore .\test\WireMock.Net.Tests\WireMock.Net.Tests.csproj - dotnet build .\test\WireMock.Net.Tests\WireMock.Net.Tests.csproj -c %CONFIGURATION% -# build WireMock.Net.Standalone -- dotnet build .\src\WireMock.Net.Standalone\WireMock.Net.Standalone.csproj -c %CONFIGURATION% - test_script: - nuget.exe install OpenCover -ExcludeVersion - nuget.exe install coveralls.net -ExcludeVersion diff --git a/src/WireMock.Net.Client/Program.cs b/examples/WireMock.Net.Client/Program.cs similarity index 100% rename from src/WireMock.Net.Client/Program.cs rename to examples/WireMock.Net.Client/Program.cs diff --git a/src/WireMock.Net.Client/WireMock.Net.Client.csproj b/examples/WireMock.Net.Client/WireMock.Net.Client.csproj similarity index 100% rename from src/WireMock.Net.Client/WireMock.Net.Client.csproj rename to examples/WireMock.Net.Client/WireMock.Net.Client.csproj diff --git a/src/WireMock.Net.StandAlone/WireMock.Net.StandAlone.csproj b/src/WireMock.Net.StandAlone/WireMock.Net.StandAlone.csproj index 2d955e04..8dfc987d 100644 --- a/src/WireMock.Net.StandAlone/WireMock.Net.StandAlone.csproj +++ b/src/WireMock.Net.StandAlone/WireMock.Net.StandAlone.csproj @@ -1,40 +1,41 @@ - - - - Lightweight StandAlone Http Mocking Server for .Net. - WireMock.Net.StandAlone - 1.0.2.1 - Stef Heyenrath - net45;net452;net46;netstandard1.3 - true - WireMock.Net.StandAlone - WireMock.Net.StandAlone - tdd;mock;http;wiremock;test;server;unittest - - https://raw.githubusercontent.com/WireMock-Net/WireMock.Net/master/WireMock.Net-Logo.png - https://github.com/WireMock-Net/WireMock.Net - https://raw.githubusercontent.com/WireMock-Net/WireMock.Net/master/LICENSE - git - https://github.com/WireMock-Net/WireMock.Net - True - full - ../../WireMock.Net-Logo.ico - WireMock.Net.StandAlone - - - - NETSTANDARD - - - - - All - - - - - - - - + + + + Lightweight StandAlone Http Mocking Server for .Net. + WireMock.Net.StandAlone + 1.0.2.4-preview-01 + Stef Heyenrath + net452;net46;netstandard1.3;netstandard2.0 + + true + WireMock.Net.StandAlone + WireMock.Net.StandAlone + tdd;mock;http;wiremock;test;server;unittest + + https://raw.githubusercontent.com/WireMock-Net/WireMock.Net/master/WireMock.Net-Logo.png + https://github.com/WireMock-Net/WireMock.Net + https://raw.githubusercontent.com/WireMock-Net/WireMock.Net/master/LICENSE + git + https://github.com/WireMock-Net/WireMock.Net + True + full + ../../WireMock.Net-Logo.ico + WireMock.Net.StandAlone + + + + NETSTANDARD + + + + + All + + + + + + + + \ No newline at end of file diff --git a/src/WireMock.Net/Owin/AspNetCoreSelfHost.cs b/src/WireMock.Net/Owin/AspNetCoreSelfHost.cs index 7b8da81b..ea6777c8 100644 --- a/src/WireMock.Net/Owin/AspNetCoreSelfHost.cs +++ b/src/WireMock.Net/Owin/AspNetCoreSelfHost.cs @@ -45,23 +45,28 @@ namespace WireMock.Owin public Task StartAsync() { - return Task.Run(() => - { - var host = new WebHostBuilder() - .ConfigureLogging(factory => factory.AddConsole(LogLevel.None)) + IWebHost host = new WebHostBuilder() + // .ConfigureLogging(factory => factory.AddConsole(LogLevel.None)) .Configure(appBuilder => { - // appBuilder.UseExceptionHandler(builder => ) appBuilder.UseMiddleware(_options); }) .UseKestrel() .UseUrls(_uriPrefixes) .Build(); +#if NETSTANDARD1_3 + System.Console.WriteLine("WireMock.Net server using netstandard1.3"); + return Task.Run(() => + { host.Run(_cts.Token); - IsStarted = true; }, _cts.Token); +#else + System.Console.WriteLine("WireMock.Net server using netstandard2.0"); + IsStarted = true; + return host.RunAsync(_cts.Token); +#endif } public Task StopAsync() @@ -73,31 +78,5 @@ namespace WireMock.Owin return Task.FromResult(true); } } - - internal class Startup - { - public Startup(IHostingEnvironment env) - { - //var builder = new ConfigurationBuilder() - // .SetBasePath(env.ContentRootPath) - // .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true) - // .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true) - // .AddEnvironmentVariables(); - //Configuration = builder.Build(); - } - - // public IConfigurationRoot Configuration { get; } - - // This method gets called by the runtime. Use this method to add services to the container. - public void ConfigureServices(IServiceCollection services) - { - } - - // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. - public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) - { - app.UseMiddleware(); - } - } } #endif \ No newline at end of file diff --git a/src/WireMock.Net/Owin/OwinSelfHost.cs b/src/WireMock.Net/Owin/OwinSelfHost.cs index 9d866d55..89447c1f 100644 --- a/src/WireMock.Net/Owin/OwinSelfHost.cs +++ b/src/WireMock.Net/Owin/OwinSelfHost.cs @@ -15,7 +15,6 @@ namespace WireMock.Owin { private readonly WireMockMiddlewareOptions _options; private readonly CancellationTokenSource _cts = new CancellationTokenSource(); - private Thread _internalThread; public OwinSelfHost([NotNull] WireMockMiddlewareOptions options, [NotNull] params string[] uriPrefixes) { @@ -55,23 +54,13 @@ namespace WireMock.Owin { _cts.Cancel(); - var tcs = new TaskCompletionSource(); - var timer = new System.Timers.Timer(999); - timer.Elapsed += (sender, e) => - { - if (_internalThread == null) - { - timer.Stop(); - tcs.SetResult(true); - } - }; - timer.Start(); - - return tcs.Task; + return Task.FromResult(true); } private void StartServers() { + System.Console.WriteLine("WireMock.Net server using .net 4.5.x or .net 4.6.x"); + Action startup = app => { app.Use(_options); @@ -86,12 +75,16 @@ namespace WireMock.Owin IsStarted = true; while (!_cts.IsCancellationRequested) - Thread.Sleep(1000); + { + Thread.Sleep(30000); + } IsStarted = false; foreach (var server in servers) + { server.Dispose(); + } } } } diff --git a/src/WireMock.Net/WireMock.Net.csproj b/src/WireMock.Net/WireMock.Net.csproj index 9d84c056..ba929198 100644 --- a/src/WireMock.Net/WireMock.Net.csproj +++ b/src/WireMock.Net/WireMock.Net.csproj @@ -3,9 +3,10 @@ Lightweight Http Mocking Server for .Net, inspired by WireMock from the Java landscape. WireMock.Net - 1.0.2.3 + 1.0.2.4-preview-01 Alexandre Victoor;Stef Heyenrath - net45;net452;net46;netstandard1.3 + net452;net46;netstandard1.3;netstandard2.0 + true WireMock.Net WireMock.Net @@ -22,7 +23,7 @@ WireMock - + NETSTANDARD @@ -31,7 +32,7 @@ All - + @@ -60,4 +61,9 @@ + + + + + \ No newline at end of file