Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }