public void CommandFailed_SendUpstream()
        {
            var root = Substitute.For<IRootContainer>();
            var child = Substitute.For<IScopedContainer>();
            var handler = new BlockingHandler<FakeCommand>(x => { throw new Exception(); });
            root.CreateScope().Returns(child);
            child.Resolve<IHandleCommand<FakeCommand>>().Returns(handler);
            var context = Substitute.For<IDownstreamContext>();
            var dispatcher = new IocDispatcher(root);
            var msg = new DispatchCommand(new FakeCommand());

            dispatcher.HandleDownstream(context, msg);

            context.Received().SendUpstream(Arg.Any<CommandFailed>());
            Assert.Equal(1, msg.Attempts);
        }
        public void Dispatch()
        {
            var root = Substitute.For<IRootContainer>();
            var child = Substitute.For<IScopedContainer>();
            var handler = Substitute.For<IHandleCommand<FakeCommand>>();
            root.CreateScope().Returns(child);
            child.Resolve<IHandleCommand<FakeCommand>>().Returns(handler);
            var context = Substitute.For<IDownstreamContext>();
            var dispatcher = new IocDispatcher(root);
            var msg = new DispatchCommand(new FakeCommand());

            dispatcher.HandleDownstream(context, msg);

            handler.Received().Invoke((FakeCommand) msg.Command);
            context.DidNotReceive().SendUpstream(Arg.Any<CommandFailed>());
        }
        public void Dispatch()
        {
            var root    = Substitute.For <IRootContainer>();
            var child   = Substitute.For <IScopedContainer>();
            var handler = Substitute.For <IHandleCommand <FakeCommand> >();

            root.CreateScope().Returns(child);
            child.Resolve <IHandleCommand <FakeCommand> >().Returns(handler);
            var context    = Substitute.For <IDownstreamContext>();
            var dispatcher = new IocDispatcher(root);
            var msg        = new DispatchCommand(new FakeCommand());

            dispatcher.HandleDownstream(context, msg);

            handler.Received().Invoke((FakeCommand)msg.Command);
            context.DidNotReceive().SendUpstream(Arg.Any <CommandFailed>());
        }
        public void CommandFailed_SendUpstream()
        {
            var root    = Substitute.For <IRootContainer>();
            var child   = Substitute.For <IScopedContainer>();
            var handler = new BlockingHandler <FakeCommand>(x => { throw new Exception(); });

            root.CreateScope().Returns(child);
            child.Resolve <IHandleCommand <FakeCommand> >().Returns(handler);
            var context    = Substitute.For <IDownstreamContext>();
            var dispatcher = new IocDispatcher(root);
            var msg        = new DispatchCommand(new FakeCommand());

            dispatcher.HandleDownstream(context, msg);

            context.Received().SendUpstream(Arg.Any <CommandFailed>());
            Assert.Equal(1, msg.Attempts);
        }
Example #5
0
 public AutoCommitUnitOfWork(IocDispatcher dispatcher)
 {
     dispatcher.ScopeStarted += OnScopeStarted;
     dispatcher.ScopeSuccessful += OnScopeSuccessful;
 }