示例#1
0
        /// <summary>
        ///     Creates a new instance of <see cref="QueueListener" />.
        /// </summary>
        /// <param name="inboundQueue">Used to receive messages</param>
        /// <param name="outboundRouter">Routes messages through different queues</param>
        /// <param name="scopeFactory"></param>
        public QueueListener(IMessageQueue inboundQueue, IMessageRouter outboundRouter,
                             IHandlerScopeFactory scopeFactory)
        {
            _outboundRouter = outboundRouter;

            _scopeFactory = scopeFactory ?? throw new ArgumentNullException(nameof(scopeFactory));
            _queue        = inboundQueue ?? throw new ArgumentNullException(nameof(inboundQueue));
        }
        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;
        }