public void Issue45TestCase_OpenGenerics() { var router = new Router <TestModel>(new TestModel()); var stream = EventObservable.Merge <BaseEvent, IEventContext, TestModel>( router.GetEventObservable <Foo <string> >(), router.GetEventObservable <Foo <int> >() ); stream.Observe((ev, model) => Assert.Pass()); router.PublishEvent(new Foo <string>()); Assert.Fail(); }
public void CanMergeEventStreams() { var receivedEvents = new List <BaseEvent>(); var stream = EventObservable.Merge( _router.GetEventObservable <BaseEvent, TestModel>(_model1.Id), // stream 1 _router.GetEventObservable <Event2, TestModel>(_model1.Id, ObservationStage.Preview), // stream 2 _router.GetEventObservable <Event3, TestModel>(_model1.Id) // stream 3 ); stream.Observe((baseEvent, context, model) => { receivedEvents.Add(baseEvent); }); _router.PublishEvent(_model1.Id, new Event1()); receivedEvents.Count.ShouldBe(1); // stream 1 should procure _router.PublishEvent(_model1.Id, new Event2()); receivedEvents.Count.ShouldBe(3); // stream 1 and 2 should procure _router.PublishEvent(_model1.Id, new Event3()); receivedEvents.Count.ShouldBe(5); // stream 1 and 3 should procure }