GetObservableEvent() публичный Метод

public GetObservableEvent ( ) : IObservable>
Результат IObservable>
Пример #1
0
        public void all_sources_are_unsubscribed_when_complete_is_received()
        {
            var sourceA = new EventOwner();
            var sourceC = new EventOwner();

            var obs = Observable.Amb(
                sourceA.GetObservableEvent(),
                Observable.Empty<IEvent<EventArgs>>(),
                sourceC.GetObservableEvent()
                );

            var stats = new StatsObserver<IEvent<EventArgs>>();
            obs.Subscribe(stats);

            Assert.IsFalse(sourceA.HasSubscriptions);
            Assert.IsFalse(sourceC.HasSubscriptions);
        }
Пример #2
0
        public void all_sources_are_unsubscribed_when_error_is_received()
        {
            var sourceA = new EventOwner();
            var sourceB = new EventOwner();

            var obs = Observable.Amb(
                sourceA.GetObservableEvent(),
                sourceB.GetObservableEvent(),
                Observable.Throw<IEvent<EventArgs>>(new Exception())
                );

            var stats = new StatsObserver<IEvent<EventArgs>>();
            obs.Subscribe(stats);

            Assert.IsFalse(sourceA.HasSubscriptions);
            Assert.IsFalse(sourceB.HasSubscriptions);
            Assert.IsTrue(stats.ErrorCalled);
        }
Пример #3
0
        public void other_sources_are_unsubscribed_when_value_is_received()
        {
            var sourceA = new EventOwner();
            var sourceB = new EventOwner();
            var sourceC = new EventOwner();

            var obs = Observable.Amb(
                sourceA.GetObservableEvent(),
                sourceB.GetObservableEvent(),
                sourceC.GetObservableEvent()
                );

            var stats = new StatsObserver<IEvent<EventArgs>>();
            obs.Subscribe(stats);

            sourceB.Fire();

            Assert.IsFalse(sourceA.HasSubscriptions);
            Assert.IsTrue(sourceB.HasSubscriptions);
            Assert.IsFalse(sourceC.HasSubscriptions);
        }
Пример #4
0
        public void source_is_unscribed_from_on_disconnect()
        {
            EventOwner owner = new EventOwner();

            var source = owner.GetObservableEvent();

            var obs = source.Prune();
            var connection = obs.Connect();

            Assert.IsTrue(owner.HasSubscriptions);

            connection.Dispose();

            Assert.IsFalse(owner.HasSubscriptions);
        }
Пример #5
0
        public void source_is_resubscribed_to_if_on_reconnect()
        {
            EventOwner owner = new EventOwner();

            var source = owner.GetObservableEvent();

            var obs = source.Prune();
            var connectionA = obs.Connect();

            Assert.IsTrue(owner.HasSubscriptions);

            connectionA.Dispose();

            Assert.IsFalse(owner.HasSubscriptions);

            var connectionB = obs.Connect();

            Assert.IsTrue(owner.HasSubscriptions);

            connectionB.Dispose();

            Assert.IsFalse(owner.HasSubscriptions);
        }
Пример #6
0
        public void source_is_only_subscribed_to_once_for_multiple_connections()
        {
            EventOwner owner = new EventOwner();

            var source = owner.GetObservableEvent();

            var obs = source.Prune();
            obs.Connect();
            obs.Connect();

            Assert.AreEqual(1, owner.SubscriptionCount);
        }
Пример #7
0
        public void source_is_not_subscribed_to_until_connect()
        {
            EventOwner owner = new EventOwner();

            var source = owner.GetObservableEvent();

            var obs = source.Prune();

            Assert.IsFalse(owner.HasSubscriptions);

            obs.Connect();

            Assert.IsTrue(owner.HasSubscriptions);
        }