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); }
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 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); }