예제 #1
0
        public EventFlowValidator <TRequestContext> Complete()
        {
            // Add general handler for result handling
            Context.Setup(rc => rc.SendResult(It.IsAny <TRequestContext>()))
            .Callback <TRequestContext>(r => ReceivedEvents.Add(new ReceivedEvent
            {
                EventObject = r,
                EventType   = EventTypes.Result
            }))
            .Returns(Task.FromResult(0));

            // Add general handler for error event
            Context.AddErrorHandling((msg, code) =>
            {
                ReceivedEvents.Add(new ReceivedEvent
                {
                    EventObject = new Error {
                        Message = msg, Code = code
                    },
                    EventType = EventTypes.Error
                });
            });

            _completed = true;
            return(this);
        }
예제 #2
0
        public EventFlowValidator <TRequestContext> AddEventValidation <TParams>(EventType <TParams> expectedEvent, Action <TParams> paramValidation, Action <TParams> userCallback = null)
        {
            ExpectedEvents.Add(new ExpectedEvent
            {
                EventType = EventTypes.Event,
                ParamType = typeof(TParams),
                Validator = paramValidation
            });

            Context.Setup(rc => rc.SendEvent(expectedEvent, It.IsAny <TParams>()))
            .Callback <EventType <TParams>, TParams>((et, p) =>
            {
                ReceivedEvents.Add(new ReceivedEvent
                {
                    EventObject = p,
                    EventType   = EventTypes.Event
                });
                userCallback?.DynamicInvoke(p);
            })
            .Returns(Task.FromResult(0));

            return(this);
        }
 private void ObserveBarEvent(BarEvent e)
 {
     ReceivedEvents.Add(e);
 }
 private void ObserveFooEvent(FooEvent e)
 {
     ReceivedEvents.Add(e);
 }
예제 #5
0
 public void ReceiveEvent(BaseEvent ev)
 {
     ReceivedEvents.Add(ev);
 }
예제 #6
0
 public Task ConsumeAsync(IntegrationEvent <T> integrationEvent)
 {
     ReceivedEvents.Add(integrationEvent.Content);
     return(Task.CompletedTask);
 }
 protected override void OnEvent(TestEvent @event)
 {
     ReceivedEvents.Add(@event);
 }