public EventConsumerGrainTests() { grainState.Value.Position = initialPosition; consumerName = eventConsumer.GetType().Name; A.CallTo(() => eventStore.CreateSubscription(A <IEventSubscriber> ._, A <string> ._, A <string> ._)) .Returns(eventSubscription); A.CallTo(() => eventConsumer.Name) .Returns(consumerName); A.CallTo(() => eventConsumer.Handles(A <StoredEvent> ._)) .Returns(true); A.CallTo(() => eventConsumer.On(A <IEnumerable <Envelope <IEvent> > > ._)) .Invokes((IEnumerable <Envelope <IEvent> > events) => { foreach (var @event in events) { eventConsumer.On(@event).Wait(); } }); A.CallTo(() => eventSubscription.Sender) .Returns(eventSubscription); A.CallTo(() => formatter.Parse(eventData)) .Returns(envelope); sut = new MyEventConsumerGrain( x => eventConsumer, grainState, eventStore, formatter, log); }
public void Should_subscribe_to_consumer_and_handle_events() { consumerInfo.Position = "2"; sut.Subscribe(eventConsumer); sut.Refresh(); sut.Dispose(); A.CallTo(() => eventConsumer.On(envelope1)).MustHaveHappened(); A.CallTo(() => eventConsumer.On(envelope2)).MustHaveHappened(); A.CallTo(() => eventConsumer.On(envelope3)).MustHaveHappened(); }