public void AddTenant() { var registryHost = new InMemoryRegistryHost(); var hostBuilder = new WebHostBuilder() .ConfigureServices(services => { services.AddNanophone(() => registryHost); }) .Configure(app => { app.AddTenant(nameof(ApplicationBuilderExtensionsShould), "1.0.0", new Uri("http://localhost:1234")); var serviceRegistry = app.ApplicationServices.GetService <ServiceRegistry>(); Assert.NotNull(serviceRegistry); var instances = serviceRegistry.FindAllServicesAsync().Result; Assert.Equal(1, instances.Count); }); using (new TestServer(hostBuilder)) { // ConfigureServices // Configure } }
private async Task <IRegistryHost> GetInMemoryRegistryHost() { var registryHost = new InMemoryRegistryHost(); await registryHost.KeyValuePutAsync("key1", "value1"); await registryHost.KeyValuePutAsync("key2", "value2"); await registryHost.KeyValuePutAsync("folder/key3", "value3"); await registryHost.KeyValuePutAsync("folder/key4", "value4"); return(registryHost); }
public Task AddRemoveTenantAndHealthCheck() { var registryHost = new InMemoryRegistryHost(); var hostBuilder = new WebHostBuilder() .ConfigureServices(services => { services.AddNanophone(() => registryHost); }) .Configure(async app => { // add tenant var registryInformation = app.AddTenant(nameof(ApplicationBuilderExtensionsShould), "1.0.0", new Uri("http://localhost:1234")); Assert.NotNull(registryInformation); var serviceRegistry = app.ApplicationServices.GetService <ServiceRegistry>(); Assert.NotNull(serviceRegistry); var instances = await serviceRegistry.FindAllServicesAsync(); Assert.Equal(1, instances.Count); // add health check Assert.Null(app.AddHealthCheck(registryInformation, new Uri("http://localhost:4321"))); // remove health check Assert.False(app.RemoveHealthCheck(nameof(AddRemoveTenantAndHealthCheck))); // remove tenant Assert.True(app.RemoveTenant(registryInformation.Id)); instances = await serviceRegistry.FindAllServicesAsync(); Assert.Equal(0, instances.Count); }); using (new TestServer(hostBuilder)) { // ConfigureServices // Configure } return(Task.FromResult(0)); }
public async Task BeRegistered() { var registryHost = new InMemoryRegistryHost(); var serviceRegistry = new ServiceRegistry(registryHost); // add tenant var uri = new Uri("http://localhost:1234"); var tenant = new WebApiRegistryTenant(uri); string serviceName = nameof(WebApiRegistryTenantShould); await serviceRegistry.AddTenantAsync(tenant, serviceName, serviceName); // register var instance = (await registryHost.FindAllServicesAsync()) .FirstOrDefault(x => x.Name == serviceName); Assert.Equal(uri.Host, instance.Address); // dergister await registryHost.DeregisterServiceAsync(instance.Id); instance = (await registryHost.FindAllServicesAsync()) .FirstOrDefault(x => x.Name == serviceName); Assert.Null(instance); }