private async Task GivenAServerIsRunning(string baseUrl) { Server server = null; IMessageSender messageSender = null; ServerInCluster serverInCluster = null; IMessageBus messageBus = null; IStateMachine stateMachine = null; var webHost = new WebHostBuilder() .UseUrls(baseUrl) .UseKestrel() .UseContentRoot(Directory.GetCurrentDirectory()) .ConfigureServices(s => { s.AddSingleton <IMessageSender, HttpClientMessageSender>(); s.AddSingleton <IMessageBus, InMemoryBus>(); s.AddSingleton <IStateMachine, FakeStateMachine>(); s.AddSingleton <IServersInCluster, InMemoryServersInCluster>(); s.AddSingleton <IServiceRegistry>(_serviceRegistry); }) .Configure(app => { var loggerFactory = app.ApplicationServices.GetRequiredService <ILoggerFactory>(); messageSender = app.ApplicationServices.GetRequiredService <IMessageSender>(); messageBus = app.ApplicationServices.GetRequiredService <IMessageBus>(); stateMachine = app.ApplicationServices.GetRequiredService <IStateMachine>(); var result = app.UseRaftyForTesting(new Uri(baseUrl), messageSender, messageBus, stateMachine, _serviceRegistry, loggerFactory, _serversInCluster); server = result.server; serverInCluster = result.serverInCluster; }) .Build(); webHost.Start(); var serverContainer = new ServerContainer(webHost, server, baseUrl, messageSender, serverInCluster, messageBus, stateMachine); _servers.Add(serverContainer); }
private async Task GivenAServerIsRunning(string baseUrl) { Server server = null; HttpClientMessageSender messageSender = null; ServerInCluster serverInCluster = null; InMemoryBus messageBus = null; IStateMachine stateMachine = null; var webHost = new WebHostBuilder() .UseUrls(baseUrl) .UseKestrel() .UseContentRoot(Directory.GetCurrentDirectory()) .ConfigureServices(x => { }) .Configure(app => { var logger = new ConsoleLogger("ConsoleLogger", (x, y) => true, true); messageSender = new HttpClientMessageSender(_serviceRegistry, logger); messageBus = new InMemoryBus(messageSender); stateMachine = new FakeStateMachine(); var result = app.UseRaftyForTesting(new Uri(baseUrl), messageSender, messageBus, stateMachine, _serviceRegistry, logger, _serversInCluster); server = result.server; serverInCluster = result.serverInCluster; }) .Build(); webHost.Start(); var serverContainer = new ServerContainer(webHost, server, baseUrl, messageSender, serverInCluster, messageBus, stateMachine); _servers.Add(serverContainer); }