public async Task Starts_And_Stops() { // arrange var config = new ConfigurationBuilder() .AddInMemoryCollection(new Dictionary <string, string> { }) .Build(); // act var api = new SupportApiHostedService( config, Mock.Of <ILoggerProvider>(_ => _.CreateLogger(It.IsAny <string>()) == Mock.Of <ILogger>()), Mock.Of <IClusterClient>(), Mock.Of <INetworkPortFinder>()); // assert - white box var host = api.GetType().GetField("_host", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(api) as IWebHost; Assert.NotNull(host); // assert the service starts await api.StartAsync(new CancellationToken()); // assert the api stops await api.StopAsync(new CancellationToken()); // if it did not crash yet we are good Assert.True(true); }
public void Uses_ApiOptions() { // arrange var config = new ConfigurationBuilder() .AddInMemoryCollection(new Dictionary <string, string> { { "Api:Title", "SomeTitle" } }) .Build(); // act var api = new SupportApiHostedService( config, Mock.Of <ILoggerProvider>(), Mock.Of <IClusterClient>(), Mock.Of <INetworkPortFinder>()); // assert - white box var host = api.GetType().GetField("_host", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(api) as IWebHost; Assert.NotNull(host); // assert the cluster client is there var options = host.Services.GetService <IOptions <SupportApiOptions> >(); Assert.Equal("SomeTitle", options.Value.Title); }
public void Uses_Kestrel() { // arrange var config = new ConfigurationBuilder() .AddInMemoryCollection(new Dictionary <string, string> { { "Api:Port:Start", "55555" }, { "Api:Port:End", "55555" } }) .Build(); // act var api = new SupportApiHostedService( config, Mock.Of <ILoggerProvider>(), Mock.Of <IClusterClient>(), Mock.Of <INetworkPortFinder>(_ => _.GetAvailablePortFrom(55555, 55555) == 55555)); // assert - white box var host = api.GetType().GetField("_host", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(api) as IWebHost; Assert.NotNull(host); // assert kestrel is there Assert.NotNull(host.Services.GetService <IOptions <KestrelServerOptions> >()); }
public void Uses_ClusterClient() { // arrange var config = new ConfigurationBuilder() .AddInMemoryCollection(new Dictionary <string, string> { }) .Build(); var client = Mock.Of <IClusterClient>(); // act var api = new SupportApiHostedService( config, Mock.Of <ILoggerProvider>(), client, Mock.Of <INetworkPortFinder>()); // assert - white box var host = api.GetType().GetField("_host", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(api) as IWebHost; Assert.NotNull(host); // assert the cluster client is there Assert.Same(client, host.Services.GetService <IClusterClient>()); }