Exemplo n.º 1
0
        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);
        }