aspnetcore/test/Microsoft.AspNet.Server.Kes.../TestServer.cs

49 lines
1.2 KiB
C#

using Microsoft.AspNet.Server.Kestrel;
using Microsoft.AspNet.Server.Kestrel.Http;
using Microsoft.Framework.Runtime;
using Microsoft.Framework.Runtime.Infrastructure;
using System;
using System.Threading.Tasks;
namespace Microsoft.AspNet.Server.KestralTests
{
/// <summary>
/// Summary description for TestServer
/// </summary>
public class TestServer : IDisposable
{
private KestrelEngine _engine;
private IDisposable _server;
public TestServer(Func<Frame, Task> app)
{
Create(app);
}
ILibraryManager LibraryManager
{
get
{
var services = CallContextServiceLocator.Locator.ServiceProvider;
return (ILibraryManager)services.GetService(typeof(ILibraryManager));
}
}
public void Create(Func<Frame, Task> app)
{
_engine = new KestrelEngine(LibraryManager);
_engine.Start(1);
_server = _engine.CreateServer(
"http",
"localhost",
54321,
app);
}
public void Dispose()
{
_server.Dispose();
_engine.Dispose();
}
}
}