private IMessageInvoker MessageInvokerFactory(IHandlerScope arg) { var k = arg.ResolveDependency <IMessageHandler <FeedbackAttachedToIncident> >(); var invoker = new MessageInvoker(arg); invoker.HandlerMissing += (sender, args) => { _logger.Warn( "Failed to find a handler for " + args.Message.Body.GetType()); }; invoker.HandlerInvoked += (sender, args) => { if (args.Exception == null) { return; } Err.Report(args.Exception, new { args.Message, HandlerType = args.Handler.GetType(), args.ExecutionTime }); _logger.Error( $"Ran {args.Handler}, took {args.ExecutionTime.TotalMilliseconds}ms, but FAILED.", args.Exception); }; return(invoker); }
public QueueListenerTests(TestDbFixture fixture) { fixture.ClearQueue("QLInbound"); _inboundQueue = fixture.OpenQueue("QLInbound"); _scopeFactory = Substitute.For <IHandlerScopeFactory>(); _queueListener = new QueueListener(_inboundQueue, fixture.OpenQueue("QLOutbound"), _scopeFactory); _handlerScope = Substitute.For <IHandlerScope>(); _scopeFactory.CreateScope().Returns(_handlerScope); _messageInvoker = Substitute.For <IMessageInvoker>(); _handlerScope.ResolveDependency <IMessageInvoker>().Returns(new[] { _messageInvoker }); this._fixture = fixture; }