Ejemplo n.º 1
0
        public async Task ClientNotInitializedTest()
        {
            var _clientAccessorMock = new Mock <IClientAccessor>();

            _clientAccessorMock.Setup(m => m.Client).Returns((IClient)null);

            IJsonSerializer _serializer = new NewtonSoftJsonSerializer();
            var             _config     = new Mock <IRuntimeStateReporterConfiguration>();

            _config.Setup(c => c.EnableRuntimeStateReporting).Returns(true);

            var _logger = TraceLogger.Create();

            var runtimeStateReporter = new RuntimeStateReporter(
                _clientAccessorMock.Object,
                _serializer,
                _config.Object,
                _logger
                );

            await runtimeStateReporter.SendRestartAnnouncement().ConfigureAwait(false);

            await FluentActions
            .Invoking(async() => await runtimeStateReporter.SendRestartAnnouncement().ConfigureAwait(false))
            .Should()
            .NotThrowAsync()
            .ConfigureAwait(false);
        }
Ejemplo n.º 2
0
        public async Task ReportingDisabledTest()
        {
            var _client             = new Mock <IClient>();
            var _clientAccessorMock = new Mock <IClientAccessor>();

            _clientAccessorMock.Setup(m => m.Client).Returns(_client.Object);

            IJsonSerializer _serializer = new NewtonSoftJsonSerializer();
            var             _config     = new Mock <IRuntimeStateReporterConfiguration>();

            // This will disable state reporting.
            _config.Setup(c => c.EnableRuntimeStateReporting).Returns(false);

            var _logger = TraceLogger.Create();

            var runtimeStateReporter = new RuntimeStateReporter(
                _clientAccessorMock.Object,
                _serializer,
                _config.Object,
                _logger
                );

            await FluentActions
            .Invoking(async() => await runtimeStateReporter.SendRestartAnnouncement().ConfigureAwait(false))
            .Should()
            .NotThrowAsync()
            .ConfigureAwait(false);

            _client.Verify(c => c.SendEventAsync(It.IsAny <string>(), It.IsAny <Message>()), Times.Never());
        }
Ejemplo n.º 3
0
        public async Task ReportingTest()
        {
            var receivedParameters = new List <Tuple <string, Message> >();

            var _client = new Mock <IClient>();

            _client
            .Setup(c => c.SendEventAsync(It.IsAny <string>(), It.IsAny <Message>()))
            .Callback <string, Message>((outputName, message) => receivedParameters.Add(Tuple.Create(outputName, message)))
            .Returns(Task.CompletedTask);

            var _clientAccessorMock = new Mock <IClientAccessor>();

            _clientAccessorMock.Setup(m => m.Client).Returns(_client.Object);

            IJsonSerializer _serializer = new NewtonSoftJsonSerializer();
            var             _config     = new Mock <IRuntimeStateReporterConfiguration>();

            _config.Setup(c => c.EnableRuntimeStateReporting).Returns(true);

            var _logger = TraceLogger.Create();

            var runtimeStateReporter = new RuntimeStateReporter(
                _clientAccessorMock.Object,
                _serializer,
                _config.Object,
                _logger
                );

            await FluentActions
            .Invoking(async() => await runtimeStateReporter.SendRestartAnnouncement().ConfigureAwait(false))
            .Should()
            .NotThrowAsync()
            .ConfigureAwait(false);

            _client.Verify(c => c.SendEventAsync(It.IsAny <string>(), It.IsAny <Message>()), Times.Once());

            Assert.Equal(1, receivedParameters.Count);
            Assert.Equal("runtimeinfo", receivedParameters[0].Item1);

            var message = receivedParameters[0].Item2;

            Assert.Equal("application/json", message.ContentType);
            Assert.Equal("utf-8", message.ContentEncoding);

            var body = Encoding.UTF8.GetString(message.GetBytes());

            Assert.Equal("{\"MessageType\":\"restartAnnouncement\",\"MessageVersion\":1}", body);
        }