public void ListenToNewInputs_logs_exception_before_throwing_on_exception() { // Arrange var anyException = new Exception("An error occurred when listening to new inputs!"); var eventBus = new Mock <IRabbitMQEventBus>(); eventBus .Setup(s => s.Subscribe <NewInputIntegrationEvent, NewInputIntegrationEventHandler>()) .Throws(anyException); var logger = new Mock <ILogger <BinaryDiff.Worker.App.Worker> >(); var worker = new BinaryDiff.Worker.App.Worker(logger.Object, eventBus.Object); // Act Assert.Throws <Exception>(() => worker.ListenToNewInputs(TimeSpan.FromSeconds(.5))); // Assert logger.Verify(l => l.Log( LogLevel.Error, 0, It.Is <FormattedLogValues>(v => v.ToString() == anyException.Message), It.Is <Exception>(e => e == anyException), It.IsAny <Func <object, Exception, string> >()) ); }
public void ListenToNewInputs_unsubscribe_from_event_when_closing() { // Arrange var logger = new Mock <ILogger <BinaryDiff.Worker.App.Worker> >(); var eventBus = new Mock <IRabbitMQEventBus>(); var worker = new BinaryDiff.Worker.App.Worker(logger.Object, eventBus.Object); // Act worker.ListenToNewInputs(TimeSpan.FromSeconds(.5)); // Assert eventBus.Verify(eb => eb.Unsubscribe <NewInputIntegrationEvent, NewInputIntegrationEventHandler>(), Times.Once ); }