Пример #1
0
        public void Should_be_called_when_send_faulted()
        {
            ICommandRouter router = new CommandRouter();

            router.ConnectPipe(Pipe.New <CommandContext <SetConcurrencyLimit> >(cfg =>
            {
                cfg.UseExecute(cxt =>
                {
                    throw new IntentionalTestException("Wow!");
                });
            }));

            var observer = new Observer <CommandContext <SetConcurrencyLimit> >();

            router.ConnectObserver(observer);

            var observer2 = new Observer();

            router.ConnectObserver(observer2);

            Assert.That(async() => await router.SetConcurrencyLimit(32), Throws.TypeOf <IntentionalTestException>());

            Assert.That(async() => await observer.SendFaulted, Throws.TypeOf <IntentionalTestException>());

            Assert.That(async() => await observer2.SendFaulted, Throws.TypeOf <IntentionalTestException>());
        }
Пример #2
0
        public async Task Should_be_called_pre_send()
        {
            ICommandRouter router = new CommandRouter();

            router.ConnectPipe(Pipe.Empty <CommandContext <SetConcurrencyLimit> >());

            var observer = new Observer <CommandContext <SetConcurrencyLimit> >();

            router.ConnectObserver(observer);

            var observer2 = new Observer();

            router.ConnectObserver(observer2);

            await router.SetConcurrencyLimit(32);

            await observer.PreSent;

            Assert.That(async() => await observer2.PreSent, Is.InstanceOf <CommandContext <SetConcurrencyLimit> >());
        }