-
Notifications
You must be signed in to change notification settings - Fork 0
/
TestSuiteFixture.cs
53 lines (48 loc) · 1.86 KB
/
TestSuiteFixture.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
using System;
using System.IO;
using ConfIT;
using ConfIT.Contract;
using ConfIT.Server.Http;
using Microsoft.Extensions.DependencyInjection;
using User.Api.Persistence;
using User.ComponentTests.SetUp.TestProcessor;
namespace User.ComponentTests.SetUp
{
public class TestSuiteFixture
{
public TestSuiteFixture()
{
var server = InitializeServer();
InitializeDb(server);
}
public TestHttpClient TestHttpClient { get; private set; }
public SuiteConfig SuiteConfig { get; private set; }
public ITestProcessorFactory TestProcessFactory { get; private set; }
public TestFilter Filter { get; private set; }
private TestSuiteInitializer<TestServerStartup> InitializeServer()
{
var initializer = new TestSuiteInitializer<TestServerStartup>("appsettings.Tests.json");
TestHttpClient = initializer.TestHttpClient;
SuiteConfig = new SuiteConfig
{
MockServerUrl = "http://localhost:8888",
ApiResponseFolder = CreateDirectoryForResponse()
};
TestProcessFactory = new TestProcessFactory();
// if we want to run few tests by names or by tags, if we pass those values in filter
// Filter = TestFilter.Create("pool1,user", null);
return initializer;
}
private static void InitializeDb(TestSuiteInitializer<TestServerStartup> suite)
{
var dbContext = suite.TestServer.Services.GetService<UserDbContext>();
var dbInitializer = new UserDbInitializer(dbContext);
dbInitializer.Seed();
}
private string CreateDirectoryForResponse()
{
var directoryInfo = Directory.CreateDirectory(Environment.CurrentDirectory + "/responses");
return directoryInfo.FullName;
}
}
}