Exemple #1
0
        public void PostEndpointsHealth_should_update_endpoints_health_and_adjust_check_time_with_clientServer_time_difference()
        {
            var update1 = new EndpointHealthUpdate {
                EndpointId = Guid.NewGuid(), CheckTimeUtc = _utcNow, Status = EndpointStatus.Offline, ResponseTime = TimeSpan.FromSeconds(5), Details = new Dictionary <string, string> {
                    { "a", "b" }
                }
            };
            var update2 = new EndpointHealthUpdate {
                EndpointId = Guid.NewGuid(), CheckTimeUtc = _utcNow, Status = EndpointStatus.Healthy, ResponseTime = TimeSpan.FromSeconds(5), Details = new Dictionary <string, string> {
                    { "a", "b" }
                }
            };
            var timeDifference = TimeSpan.FromMinutes(5);

            var updates  = new[] { update1, update2 };
            var expected = updates
                           .Select(u => new EndpointHealthUpdate
            {
                CheckTimeUtc = u.CheckTimeUtc - timeDifference,
                Details      = u.Details,
                EndpointId   = u.EndpointId,
                ResponseTime = u.ResponseTime,
                Status       = u.Status
            })
                           .ToArray();

            AuthorizeRequest(SecurityRole.Monitor);

            Assert.IsType <OkResult>(_controller.PostEndpointHealth(_utcNow + timeDifference, update1, update2));

            foreach (var expectedEndpoint in expected)
            {
                _endpointRegistry.Verify(r => r.UpdateHealth(expectedEndpoint.EndpointId, It.Is <EndpointHealth>(h => AssertHealth(h, expectedEndpoint))));
            }
        }
        public void PostEndpointHealth_should_update_health_and_adjust_check_time_with_clientServer_time_difference()
        {
            var endpointId = Guid.NewGuid();
            var update     = new HealthUpdate {
                CheckTimeUtc = _utcNow, Status = EndpointStatus.Offline, ResponseTime = TimeSpan.FromSeconds(5), Details = new Dictionary <string, string> {
                    { "a", "b" }
                }
            };
            var timeDifference = TimeSpan.FromMinutes(5);

            var expected = new HealthUpdate
            {
                CheckTimeUtc = update.CheckTimeUtc - timeDifference,
                Details      = update.Details,
                ResponseTime = update.ResponseTime,
                Status       = update.Status
            };

            _endpointRegistry.Setup(r => r.UpdateHealth(endpointId, It.IsAny <EndpointHealth>())).Returns(true);
            AuthorizeWithId(endpointId);
            Assert.IsType <OkResult>(_controller.PostEndpointHealth(endpointId, update, _utcNow + timeDifference));
            _endpointRegistry.Verify(r => r.UpdateHealth(endpointId, It.Is <EndpointHealth>(h => AssertHealth(h, expected))), Times.Once);
        }
        public void PostEndpointsHealth_should_update_endpoints_health()
        {
            var update1 = new EndpointHealthUpdate {
                EndpointId = Guid.NewGuid(), CheckTimeUtc = DateTime.UtcNow, Status = EndpointStatus.Offline, ResponseTime = TimeSpan.FromSeconds(5), Details = new Dictionary <string, string> {
                    { "a", "b" }
                }
            };
            var update2 = new EndpointHealthUpdate {
                EndpointId = Guid.NewGuid(), CheckTimeUtc = DateTime.UtcNow, Status = EndpointStatus.Healthy, ResponseTime = TimeSpan.FromSeconds(5), Details = new Dictionary <string, string> {
                    { "a", "b" }
                }
            };

            Assert.IsType <OkResult>(_controller.PostEndpointHealth(update1, update2));

            _endpointRegistry.Verify(r => r.UpdateHealth(update1.EndpointId, It.Is <EndpointHealth>(h => AssertHealth(h, update1))));
            _endpointRegistry.Verify(r => r.UpdateHealth(update2.EndpointId, It.Is <EndpointHealth>(h => AssertHealth(h, update2))));
        }