Exemplo n.º 1
0
        public void HandleAllEventHandlers_WhenMultipleEventHandlersExists()
        {
            var evt = new FakeEventWithoutValidation();

            Assert.IsAssignableFrom <IEvent>(evt);

            var handlerOneCallback = string.Empty;
            var handlerOne         = new Mock <IHandleEvent <FakeEventWithoutValidation> >(MockBehavior.Strict);

            handlerOne.Setup(x => x.Handle(evt)).Callback(() => handlerOneCallback = "handlerOneCallback");

            var handlerTwoCallback = string.Empty;
            var handlerTwo         = new Mock <IHandleEvent <FakeEventWithoutValidation> >(MockBehavior.Strict);

            handlerTwo.Setup(x => x.Handle(evt)).Callback(() => handlerTwoCallback = "handlerTwoCallback");

            var handlers = new List <IHandleEvent <FakeEventWithoutValidation> >
            {
                handlerOne.Object,
                handlerTwo.Object
            };

            var decorator = new MultipleDispatchEventTrigger <FakeEventWithoutValidation>(handlers);

            decorator.Trigger(evt);

            handlerOne.Verify(x => x.Handle(evt), Times.Once);
            handlerTwo.Verify(x => x.Handle(evt), Times.Once);

            Assert.Equal("handlerOneCallback", handlerOneCallback);
            Assert.Equal("handlerTwoCallback", handlerTwoCallback);
        }
        public void TriggerEventHandler_WhenEventHandlersExist()
        {
            var container = new Container();

            var evt = new FakeEventWithoutValidation();

            Assert.IsAssignableFrom <IEvent>(evt);

            var handlers = new List <IHandleEvent <FakeEventWithoutValidation> > {
                new HandleFakeEventWithoutValidation()
            };

            var decorated = new Mock <ITriggerEvent <FakeEventWithoutValidation> >(MockBehavior.Strict);

            decorated.Setup(x => x.Trigger(evt));

            var taskFactory = new Mock <ITaskFactory>(MockBehavior.Strict);

            taskFactory.Setup(factory => factory.StartTask(It.IsAny <Action>())).Callback <Action>(action => action());

            var decorator = new TriggerEventWhenHandlersExistDecorator <FakeEventWithoutValidation>(container, taskFactory.Object, () => decorated.Object, handlers);

            decorator.Trigger(evt);

            taskFactory.Verify(x => x.StartTask(It.IsAny <Action>()), Times.Once);
            decorated.Verify(x => x.Trigger(evt), Times.Once);
        }
        public void HandleAllEventHandlers_WhenMultipleEventHandlersExists()
        {
            var evt = new FakeEventWithoutValidation();
            Assert.IsAssignableFrom<IEvent>(evt);

            var handlerOneCallback = string.Empty;
            var handlerOne = new Mock<IHandleEvent<FakeEventWithoutValidation>>(MockBehavior.Strict);
            handlerOne.Setup(x => x.Handle(evt)).Callback(() => handlerOneCallback = "handlerOneCallback");

            var handlerTwoCallback = string.Empty;
            var handlerTwo = new Mock<IHandleEvent<FakeEventWithoutValidation>>(MockBehavior.Strict);
            handlerTwo.Setup(x => x.Handle(evt)).Callback(() => handlerTwoCallback = "handlerTwoCallback");

            var handlers = new List<IHandleEvent<FakeEventWithoutValidation>>
            {
                handlerOne.Object,
                handlerTwo.Object
            };

            var decorator = new MultipleDispatchEventTrigger<FakeEventWithoutValidation>(handlers);
            decorator.Trigger(evt);

            handlerOne.Verify(x => x.Handle(evt), Times.Once);
            handlerTwo.Verify(x => x.Handle(evt), Times.Once);

            Assert.Equal("handlerOneCallback", handlerOneCallback);
            Assert.Equal("handlerTwoCallback", handlerTwoCallback);
        }
Exemplo n.º 4
0
 public void Execute_InvokesEventHandler_UsingContainerForResolution()
 {
     var events = _fixture.Container.GetInstance<IProcessEvents>();
     var @event = new FakeEventWithoutValidation();
     events.Raise(@event);
     Thread.Sleep(1000); // :-(
     Assert.Equal("faked", @event.ReturnValue);
 }
Exemplo n.º 5
0
        public void Execute_InvokesEventHandler_UsingContainerForResolution()
        {
            var events = _fixture.Container.GetInstance <IProcessEvents>();
            var @event = new FakeEventWithoutValidation();

            events.Raise(@event);
            Thread.Sleep(1000); // :-(
            Assert.Equal("faked", @event.ReturnValue);
        }
        public void DoNotTriggerEventHandler_WhenEventHandlersDoesNotExist()
        {
            var container = new Container();

            var evt = new FakeEventWithoutValidation();
            Assert.IsAssignableFrom<IEvent>(evt);

            var decorated = new Mock<ITriggerEvent<FakeEventWithoutValidation>>(MockBehavior.Strict);
            decorated.Setup(x => x.Trigger(evt));

            var taskFactory = new Mock<ITaskFactory>(MockBehavior.Strict);
            taskFactory.Setup(factory => factory.StartTask(It.IsAny<Action>())).Callback<Action>(action => action());

            var decorator = new TriggerEventWhenHandlersExistDecorator<FakeEventWithoutValidation>(container, taskFactory.Object, () => decorated.Object, null);
            decorator.Trigger(evt);

            taskFactory.Verify(x => x.StartTask(It.IsAny<Action>()), Times.Never);
            decorated.Verify(x => x.Trigger(evt), Times.Never);
        }