예제 #1
0
        public async Task exceptions_thrown_by_router_dont_break_other_messages()
        {
            _router.DeliverToLocalProcessors(_sut.Envelopes[0]).Throws(new Exception("router exception"));
            _sut.Add();
            _sut.StartReceiving(_router);

            _sut.Next();

            _router.Received(2).DeliverToLocalProcessors(Arg.Any <EnvelopeToClient>());
            _sut.Handled.Should().Be(_sut.Envelopes[1]);
        }
        protected void Callback(object state)
        {
            var items = GetMessages();

            items.ForEach(async env =>
            {
                try
                {
                    await _dispatcher.DeliverToLocalProcessors(env).ConfigureFalse();
                    MarkAsHandled(env);
                }
                catch (Exception ex)
                {
                    this.LogError(ex);
                }
            });
        }