コード例 #1
0
        public void complete_does_not_unsubscribe_from_other_subjects()
        {
            var subjectA = new StatsSubject <int>();
            var subjectB = new StatsSubject <int>();
            var subjectC = new StatsSubject <int>();
            var subjectD = new StatsSubject <int>();

            var stats = new StatsObserver <string>();

            Observable.Join(
                subjectA.And(subjectB).Then((x, y) => x.ToString() + "," + y.ToString()),
                subjectC.And(subjectD).Then((x, y) => x.ToString() + "," + y.ToString())
                )
            .Subscribe(stats);

            Assert.AreEqual(1, subjectA.SubscriptionCount);
            Assert.AreEqual(1, subjectB.SubscriptionCount);
            Assert.AreEqual(1, subjectC.SubscriptionCount);
            Assert.AreEqual(1, subjectD.SubscriptionCount);

            subjectA.OnCompleted();

            Assert.AreEqual(0, subjectA.SubscriptionCount);
            Assert.AreEqual(1, subjectB.SubscriptionCount);
            Assert.AreEqual(1, subjectC.SubscriptionCount);
            Assert.AreEqual(1, subjectD.SubscriptionCount);
        }
コード例 #2
0
ファイル: JoinsFixture.cs プロジェクト: agation/raix
        public void errors_cause_all_subscriptions_to_be_removed()
        {
            var subjectA = new StatsSubject <int>();
            var subjectB = new StatsSubject <int>();
            var subjectC = new StatsSubject <int>();
            var subjectD = new StatsSubject <int>();

            var stats = new StatsSubject <string>();

            Observable.Join(
                subjectA.And(subjectB).Then((x, y) => String.Concat(x.ToString(), ",", y.ToString())),
                subjectC.And(subjectD).Then((x, y) => String.Concat(x.ToString(), ",", y.ToString()))
                )
            .Subscribe(stats);

            Assert.AreEqual(1, subjectA.SubscriptionCount);
            Assert.AreEqual(1, subjectB.SubscriptionCount);
            Assert.AreEqual(1, subjectC.SubscriptionCount);
            Assert.AreEqual(1, subjectD.SubscriptionCount);

            subjectA.OnError(new Exception());

            Assert.AreEqual(0, subjectA.SubscriptionCount);
            Assert.AreEqual(0, subjectB.SubscriptionCount);
            Assert.AreEqual(0, subjectC.SubscriptionCount);
            Assert.AreEqual(0, subjectD.SubscriptionCount);
        }
コード例 #3
0
ファイル: JoinsFixture.cs プロジェクト: richardszalay/raix
        public void errors_cause_all_subscriptions_to_be_removed()
        {
            var subjectA = new StatsSubject<int>();
            var subjectB = new StatsSubject<int>();
            var subjectC = new StatsSubject<int>();
            var subjectD = new StatsSubject<int>();

            var stats = new StatsSubject<string>();

            Observable.Join(
                    subjectA.And(subjectB).Then((x, y) => String.Concat(x.ToString(), ",", y.ToString())),
                    subjectC.And(subjectD).Then((x, y) => String.Concat(x.ToString(), ",", y.ToString()))
                )
                .Subscribe(stats);

            Assert.AreEqual(1, subjectA.SubscriptionCount);
            Assert.AreEqual(1, subjectB.SubscriptionCount);
            Assert.AreEqual(1, subjectC.SubscriptionCount);
            Assert.AreEqual(1, subjectD.SubscriptionCount);

            subjectA.OnError(new Exception());

            Assert.AreEqual(0, subjectA.SubscriptionCount);
            Assert.AreEqual(0, subjectB.SubscriptionCount);
            Assert.AreEqual(0, subjectC.SubscriptionCount);
            Assert.AreEqual(0, subjectD.SubscriptionCount);
        }
コード例 #4
0
ファイル: JoinsFixture.cs プロジェクト: richardszalay/raix
        public void complete_does_not_unsubscribe_from_other_subjects()
        {
            var subjectA = new StatsSubject<int>();
            var subjectB = new StatsSubject<int>();
            var subjectC = new StatsSubject<int>();
            var subjectD = new StatsSubject<int>();

            var stats = new StatsSubject<string>();

            Observable.Join(
                    subjectA.And(subjectB).Then((x, y) => String.Concat(x.ToString(), ",", y.ToString())),
                    subjectC.And(subjectD).Then((x, y) => String.Concat(x.ToString(), ",", y.ToString()))
                )
                .Subscribe(stats);

            Assert.AreEqual(1, subjectA.SubscriptionCount);
            Assert.AreEqual(1, subjectB.SubscriptionCount);
            Assert.AreEqual(1, subjectC.SubscriptionCount);
            Assert.AreEqual(1, subjectD.SubscriptionCount);

            subjectA.OnCompleted();

            Assert.AreEqual(0, subjectA.SubscriptionCount);
            Assert.AreEqual(0, subjectB.SubscriptionCount);
            Assert.AreEqual(1, subjectC.SubscriptionCount);
            Assert.AreEqual(1, subjectD.SubscriptionCount);
        }
コード例 #5
0
ファイル: JoinsFixture.cs プロジェクト: agation/raix
        public void subscribes_once_when_subscription_is_repeated_within_join()
        {
            var subjectA = new StatsSubject <int>();
            var subjectB = new StatsSubject <int>();

            var stats = new StatsObserver <string>();

            Observable.Join(
                subjectA.And(subjectB).Then((x, y) => (string)null),
                subjectB.And(subjectA).Then((x, y) => (string)null)
                )
            .Subscribe(stats);

            Assert.AreEqual(1, subjectA.SubscriptionCount);
            Assert.AreEqual(1, subjectB.SubscriptionCount);
        }
コード例 #6
0
ファイル: JoinsFixture.cs プロジェクト: richardszalay/raix
        public void subscribes_once_when_subscription_is_repeated_within_join()
        {
            var subjectA = new StatsSubject<int>();
            var subjectB = new StatsSubject<int>();

            var stats = new StatsObserver<string>();

            Observable.Join(
                subjectA.And(subjectB).Then((x, y) => (string)null),
                subjectB.And(subjectA).Then((x, y) => (string)null)
                )
                .Subscribe(stats);

            Assert.AreEqual(1, subjectA.SubscriptionCount);
            Assert.AreEqual(1, subjectB.SubscriptionCount);
        }