public void Should_register_a_new_endpoint()
        {
            var           context        = new MyContext();
            EndpointsView auditedMessage = null;

            Scenario.Define(context)
            .WithEndpoint <ManagementEndpoint>(c => c.AppConfig(PathToAppConfig))
            .WithEndpoint <Sender>(b => b.Given((bus, c) =>
            {
                c.EndpointNameOfSendingEndpoint = Configure.EndpointName;
                bus.Send(new MyMessage());
            }))
            .WithEndpoint <Receiver>()
            .Done(c =>
            {
                if (
                    !TryGetSingle("/api/endpoints", out auditedMessage,
                                  m => m.Name == c.EndpointNameOfSendingEndpoint))
                {
                    return(false);
                }

                return(true);
            })
            .Run(TimeSpan.FromSeconds(30));

            Assert.AreEqual(context.EndpointNameOfSendingEndpoint, auditedMessage.Name);
        }
        public async Task Should_register_a_new_endpoint()
        {
            var           context  = new MyContext();
            EndpointsView endpoint = null;

            await Define(context)
            .WithEndpoint <Sender>(b => b.Given((bus, c) =>
            {
                bus.Send(new MyMessage());
            }))
            .WithEndpoint <Receiver>()
            .Done(async c =>
            {
                var result = await TryGetSingle <EndpointsView>("/api/endpoints", m => m.Name == c.EndpointNameOfSendingEndpoint);
                endpoint   = result;
                if (!result)
                {
                    return(false);
                }

                return(true);
            })
            .Run(TimeSpan.FromSeconds(30));

            Assert.AreEqual(context.EndpointNameOfSendingEndpoint, endpoint.Name);
        }
        public async Task Should_be_marked_as_monitored()
        {
            EndpointsView endpoint = null;

            await Define <MyContext>()
            .WithEndpoint <WithoutHeartbeat>(c => c.When(bus =>
            {
                var options = new SendOptions();

                options.DoNotEnforceBestPractices();
                options.SetDestination(Settings.DEFAULT_SERVICE_NAME);

                return(bus.Send(new NewEndpointDetected
                {
                    Endpoint = new ServiceControl.Contracts.Operations.EndpointDetails
                    {
                        HostId = Guid.NewGuid(),
                        Host = "myhost",
                        Name = EndpointName
                    },
                    DetectedAt = DateTime.UtcNow
                }, options));
            }))
            .Done(async c =>
            {
                var result = await this.TryGetSingle <EndpointsView>("/api/endpoints", e => e.Name == EndpointName);

                endpoint = result.Item;

                return(result.HasResult);
            })
            .Run();

            Assert.IsFalse(endpoint.MonitorHeartbeat);
            Assert.IsFalse(endpoint.Monitored);

            await Define <MyContext>()
            .WithEndpoint <WithHeartbeat>()
            .Done(async c =>
            {
                var result = await this.TryGetSingle <EndpointsView>("/api/endpoints", e => e.Name == EndpointName && e.IsSendingHeartbeats);

                endpoint = result.Item;

                return(result.HasResult);
            })
            .Run();

            Assert.IsTrue(endpoint.MonitorHeartbeat, "Should have heartbeat monitoring on");
            Assert.IsTrue(endpoint.Monitored, "Should be flagged as monitored");
            Assert.IsTrue(endpoint.IsSendingHeartbeats, "Should be emitting heartbeats");
        }
        public async Task Should_be_monitored_and_active()
        {
            EndpointsView endpoint = null;

            await Define <MyContext>()
            .WithEndpoint <StartingEndpoint>()
            .Done(async c =>
            {
                var result = await this.TryGetSingle <EndpointsView>("/api/endpoints/", e => e.Name == EndpointName && e.Monitored && e.MonitorHeartbeat && e.IsSendingHeartbeats);
                endpoint   = result.Item;
                return(result.HasResult);
            })
            .Run();

            Assert.IsTrue(endpoint.Monitored);
            Assert.IsTrue(endpoint.IsSendingHeartbeats);
        }
Beispiel #5
0
        public async Task Should_register_a_new_endpoint()
        {
            var endpointName = Conventions.EndpointNamingConvention(typeof(Sender));

            EndpointsView endpoint = null;

            await Define <MyContext>()
            .WithEndpoint <Sender>(b => b.When((bus, c) => bus.Send(new MyMessage())))
            .WithEndpoint <Receiver>()
            .Done(async c =>
            {
                var result = await this.TryGetSingle <EndpointsView>("/api/endpoints", m => m.Name == endpointName);
                endpoint   = result;
                if (!result)
                {
                    return(false);
                }

                return(true);
            })
            .Run();

            Assert.AreEqual(endpointName, endpoint?.Name);
        }