Knocks/BackEnd/Knoks.Test.Integrations/Api/Tools/ApiTestServer.cs

50 lines
1.4 KiB
C#

using Knoks.Api;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.TestHost;
using System;
using System.IO;
using System.Net.Http;
namespace Knoks.Test.Integrations.Api.Tools
{
public static class ApiTestServer
{
public const string ApiIndetifier = "138659EBEBBF408AA1282D46EBDFBDC7";
public const string BaseAddress = "http://localhost:52281/v1/";
public static HttpClient CreateClient()
{
var httpClient = TestServer.CreateClient();
if (!string.IsNullOrEmpty(BaseAddress))
httpClient.BaseAddress = new Uri(BaseAddress);
return httpClient;
}
private static object obj = new object();
private static TestServer _testServer;
public static TestServer TestServer
{
get
{
if (_testServer == null)
{
lock (obj)
{
if (_testServer == null)
{
var builder = new WebHostBuilder()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseStartup(typeof(Startup));
_testServer = new TestServer(builder);
}
}
}
return _testServer;
}
}
}
}