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); }
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()); }
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); }