public async Task ProcessAsync_DoesNotThrowWhenRelayAsyncThrows() { _relayMock.Setup(i => i.RelayAsync(It.IsAny <MqttMessage>())).Throws(new Exception()); var service = new MqttMessageDispatchService(_scopeFactoryMock.Object); var message = new MqttMessage("iot/device-alpha/sensor-beta", "120", _clock.GetCurrentInstant()); await service.ProcessAsync(message); }
public MqttMessageDispatchServiceTest() { _scopeFactoryMock = new Mock <IServiceScopeFactory>(); _scopeMock = new Mock <IServiceScope>(); _ingestMock = new Mock <IMqttMessageIngestionService>(); _relayMock = new Mock <IMqttMessageRelayService>(); var serviceCollection = new ServiceCollection(); serviceCollection.AddScoped <IMqttMessageIngestionService>(provider => _ingestMock.Object); serviceCollection.AddScoped <IMqttMessageRelayService>(provider => _relayMock.Object); _scopeMock.Setup(s => s.ServiceProvider).Returns(serviceCollection.BuildServiceProvider()); _scopeFactoryMock.Setup(s => s.CreateScope()).Returns(_scopeMock.Object); _service = new MqttMessageDispatchService(_scopeFactoryMock.Object); _initial = SystemClock.Instance.GetCurrentInstant(); _clock = new FakeClock(_initial); }