mirror of
https://github.com/nsnail/Ocelot.git
synced 2025-04-25 01:52:51 +08:00
59 lines
1.8 KiB
C#
59 lines
1.8 KiB
C#
namespace Ocelot.UnitTests
|
|
{
|
|
using System;
|
|
using System.IO;
|
|
using System.Net.Http;
|
|
using Microsoft.AspNetCore.TestHost;
|
|
using Microsoft.AspNetCore.Hosting;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using Microsoft.AspNetCore.Builder;
|
|
|
|
public abstract class ServerHostedMiddlewareTest : IDisposable
|
|
{
|
|
protected TestServer Server { get; private set; }
|
|
protected HttpClient Client { get; private set; }
|
|
protected string Url { get; private set; }
|
|
protected HttpResponseMessage ResponseMessage { get; private set; }
|
|
|
|
public ServerHostedMiddlewareTest()
|
|
{
|
|
Url = "http://localhost:51879";
|
|
}
|
|
|
|
protected virtual void GivenTheTestServerIsConfigured()
|
|
{
|
|
var builder = new WebHostBuilder()
|
|
.ConfigureServices(x => GivenTheTestServerServicesAreConfigured(x))
|
|
.UseUrls(Url)
|
|
.UseKestrel()
|
|
.UseContentRoot(Directory.GetCurrentDirectory())
|
|
.UseIISIntegration()
|
|
.Configure(app => GivenTheTestServerPipelineIsConfigured(app));
|
|
|
|
Server = new TestServer(builder);
|
|
Client = Server.CreateClient();
|
|
}
|
|
|
|
protected virtual void GivenTheTestServerServicesAreConfigured(IServiceCollection services)
|
|
{
|
|
// override this in your test fixture to set up service dependencies
|
|
}
|
|
|
|
protected virtual void GivenTheTestServerPipelineIsConfigured(IApplicationBuilder app)
|
|
{
|
|
// override this in your test fixture to set up the test server pipeline
|
|
}
|
|
|
|
protected void WhenICallTheMiddleware()
|
|
{
|
|
ResponseMessage = Client.GetAsync(Url).Result;
|
|
}
|
|
|
|
public void Dispose()
|
|
{
|
|
Client.Dispose();
|
|
Server.Dispose();
|
|
}
|
|
}
|
|
}
|