public async Task SpringBootAdminClient_RegistersAndDeletes() { var appsettings = new Dictionary <string, string>() { ["management:endpoints:path"] = "/management", ["management:endpoints:health:path"] = "myhealth", ["URLS"] = "http://localhost:8080;https://localhost:8082", ["spring:boot:admin:client:url"] = "http://springbootadmin:9090", ["spring:application:name"] = "MySteeltoeApplication", }; var config = new ConfigurationBuilder().AddInMemoryCollection(appsettings).Build(); var appInfo = new ApplicationInstanceInfo(config); var sbaOptions = new SpringBootAdminClientOptions(config, appInfo); var mgmtOptions = new ManagementEndpointOptions(config); var healthOptions = new HealthEndpointOptions(config); var httpMessageHandler = new MockHttpMessageHandler(); httpMessageHandler .Expect(HttpMethod.Post, "http://springbootadmin:9090/instances") .Respond("application/json", "{\"Id\":\"1234567\"}"); httpMessageHandler .Expect(HttpMethod.Delete, "http://springbootadmin:9090/instances/1234567") .Respond(req => new HttpResponseMessage(HttpStatusCode.NoContent)); Assert.Null(SpringBootAdminClientHostedService.RegistrationResult); var service = new SpringBootAdminClientHostedService(sbaOptions, mgmtOptions, healthOptions, httpMessageHandler.ToHttpClient()); await service.StartAsync(default);
public void Constructor_BindsConfiguration() { var appsettings = new Dictionary <string, string>() { ["management:endpoints:path"] = "/management", ["management:endpoints:health:path"] = "myhealth", ["URLS"] = "http://localhost:8080;https://localhost:8082", ["spring:boot:admin:client:url"] = "http://springbootadmin:9090", ["spring:boot:admin:client:metadata:user.name"] = "userName", ["spring:boot:admin:client:metadata:user.password"] = "******", ["spring:application:name"] = "MySteeltoeApplication", ["ApplicationName"] = "OtherApplicationName" }; var config = new ConfigurationBuilder().AddInMemoryCollection(appsettings).Build(); var opts = new SpringBootAdminClientOptions(config, new ApplicationInstanceInfo(config)); Assert.NotNull(opts); Assert.Equal("MySteeltoeApplication", opts.ApplicationName); Assert.Equal("http://localhost:8080", opts.BasePath); Assert.Equal("http://springbootadmin:9090", opts.Url); Assert.Contains(new KeyValuePair <string, object>("user.name", "userName"), opts.Metadata); Assert.Contains(new KeyValuePair <string, object>("user.password", "userPassword"), opts.Metadata); }
public void Constructor_BindsFallBack() { var appsettings = new Dictionary <string, string> { { "spring:boot:admin:client:basepath", "http://somehost" } }; var config = new ConfigurationBuilder().AddInMemoryCollection(appsettings).Build(); var opts = new SpringBootAdminClientOptions(config, new ApplicationInstanceInfo(config)); Assert.NotNull(opts); Assert.NotEmpty(opts.ApplicationName); }
public void ConstructorUsesAppInfo() { var appsettings = new Dictionary <string, string> { { "application:Uris:0", "http://somehost" } }; var config = new ConfigurationBuilder().AddInMemoryCollection(appsettings).Build(); var appInfo = new ApplicationInstanceInfo(config, string.Empty); var opts = new SpringBootAdminClientOptions(config, appInfo); Assert.NotNull(opts); Assert.Equal("http://somehost", opts.BasePath); }