Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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;
        }