public async Task TestRegister()
        {
            var serviceName = Guid.NewGuid().ToString();

            using (var manager = new ServiceManager(serviceName))
            {
                manager.AddApiUrl("api/testurl");
                var registrationResult = await manager.RegisterServiceAsync();

                Assert.Equal(true, registrationResult);
            }
        }
        public async Task TestRegister()
        {
            var serviceName = Guid.NewGuid().ToString();
            var opts        = Options.Create(new ServiceManagerConfig()
            {
                ServicePort = 2222
            });

            using (var manager = new ServiceManager(opts))
            {
                manager.AddApiUrl("api/testurl");
                var registrationResult = await manager.RegisterServiceAsync();

                Assert.Equal(true, registrationResult);
            }
        }
예제 #3
0
        public async Task CanRegisterRoutes()
        {
            var wait = new AsyncManualResetEvent <bool>();

            var agentAddress = "localhost";
            var config       = new CondenserConfiguration
            {
                AgentAddress = agentAddress,
                AgentPort    = 8500
            };
            var router = BuildRouter();

            var host = new RoutingHost(router, config, null, RoutingData.BuildDefault(),
                                       new IService[0], () => new Service(new CurrentState(), null))
            {
                OnRouteBuilt = servers =>
                {
                    {
                        if (servers.ContainsKey("Google"))
                        {
                            wait.Set(true);
                        }
                    }
                }
            };

            var google = new ServiceManager("Google",
                                            agentAddress, 8500)
            {
                ServiceAddress = "www.google.com",
                ServicePort    = 80
            };

            await google.AddApiUrl("/search")
            .RegisterServiceAsync();

            await wait.WaitAsync();

            var routeContext = await RouteRequest(router, "/search");

            Assert.Equal(200, routeContext.HttpContext.Response.StatusCode);

            google = new ServiceManager("Google", "Google2", agentAddress, 8500)
            {
                ServiceAddress = "www.google.com",
                ServicePort    = 80
            };

            wait.Reset();

            await google.AddApiUrl("/gmail")
            .AddHttpHealthCheck("/gmail", 10)
            .RegisterServiceAsync();

            await wait.WaitAsync();

            routeContext = await RouteRequest(router, "/gmail");

            Assert.Equal(200, routeContext.HttpContext.Response.StatusCode);

            routeContext = await RouteRequest(router, "/search");

            Assert.Null(routeContext);
        }