public void Normal()
        {
            var dp1 = new DirectProcessor <int>();
            var dp2 = new DirectProcessor <int>();

            var ts = dp1.Window(dp2).Merge().Test();

            ts.AssertEmpty();

            dp1.OnNext(1);
            dp1.OnNext(2);

            dp2.OnNext(100);

            ts.AssertValues(1, 2)
            .AssertNoError()
            .AssertNotComplete();

            dp2.OnNext(200);

            ts.AssertValues(1, 2)
            .AssertNoError()
            .AssertNotComplete();

            dp1.OnNext(3);
            dp1.OnNext(4);
            dp1.OnNext(5);

            dp1.OnComplete();

            Assert.IsFalse(dp2.HasSubscribers);

            ts.AssertResult(1, 2, 3, 4, 5);
        }
Ejemplo n.º 2
0
        public void Lockstep()
        {
            var dp1 = new DirectProcessor <int>();
            var dp2 = new DirectProcessor <int>();

            TestSubscriber <int> ts = dp1.Sample(dp2).Test();

            ts.AssertEmpty();

            dp1.OnNext(1);
            dp1.OnNext(2);

            dp2.OnNext(100);

            ts.AssertValues(2);

            dp2.OnNext(100);

            ts.AssertValues(2);

            dp1.OnNext(3);
            dp1.OnNext(4);

            dp2.OnNext(200);

            ts.AssertValues(2, 4);

            dp2.OnComplete();

            ts.AssertResult(2, 4);

            Assert.IsFalse(dp1.HasSubscribers);
            Assert.IsFalse(dp2.HasSubscribers);
        }
        public void BufferBoundary_Normal()
        {
            var other = new DirectProcessor <int>();

            var main = new DirectProcessor <int>();

            var ts = main.Buffer(other).Test();

            main.OnNext(1, 2, 3);

            other.OnNext(1);

            main.OnNext(4, 5);

            other.OnNext(2, 3);

            main.OnNext(6);
            main.OnComplete();

            Assert.False(main.HasSubscribers);
            Assert.False(other.HasSubscribers);

            ts.AssertResult(
                new List <int>(new[] { 1, 2, 3 }),
                new List <int>(new[] { 4, 5, }),
                new List <int>(new[] { 6 })
                );
        }
Ejemplo n.º 4
0
        public void Lockstep()
        {
            var tex = new TestExecutor();
            var dp  = new DirectProcessor <int>();

            var ts = dp.Debounce(TimeSpan.FromMilliseconds(5), tex).Test();

            ts.AssertEmpty();

            dp.OnNext(1);

            ts.AssertEmpty();

            tex.AdvanceTimeBy(TimeSpan.FromMilliseconds(5));

            ts.AssertValues(1)
            .AssertNoError()
            .AssertNotComplete();

            dp.OnNext(2);

            ts.AssertValues(1)
            .AssertNoError()
            .AssertNotComplete();

            tex.AdvanceTimeBy(TimeSpan.FromMilliseconds(2));

            ts.AssertValues(1)
            .AssertNoError()
            .AssertNotComplete();

            dp.OnNext(3);

            tex.AdvanceTimeBy(TimeSpan.FromMilliseconds(5));

            ts.AssertValues(1, 3)
            .AssertNoError()
            .AssertNotComplete();

            tex.AdvanceTimeBy(TimeSpan.FromMilliseconds(2));

            dp.OnNext(4);

            tex.AdvanceTimeBy(TimeSpan.FromMilliseconds(2));

            dp.OnComplete();

            tex.AdvanceTimeBy(TimeSpan.FromMilliseconds(1));

            ts.AssertResult(1, 3, 4);
        }
Ejemplo n.º 5
0
        public void DirectProcessor_Normal()
        {
            DirectProcessor <int> dp = new DirectProcessor <int>();

            var ts = dp.Test();

            ts.AssertSubscribed()
            .AssertNoEvents();

            dp.OnNext(1);
            dp.OnNext(2);
            dp.OnComplete();

            Assert.IsFalse(dp.HasSubscribers);

            ts.AssertResult(1, 2);
        }
        public void SkipUntil_Normal()
        {
            var dp1 = new DirectProcessor<int>();
            var dp2 = new DirectProcessor<int>();

            var ts = dp1.SkipUntil(dp2).Test();

            dp1.OnNext(1, 2, 3);

            dp2.OnNext(1);

            dp1.OnNext(4, 5, 6);
            dp1.OnComplete();

            Assert.IsFalse(dp2.HasSubscribers, "Has subscribers?!");

            ts.AssertResult(4, 5, 6);
        }
        public void NormalConditional()
        {
            var tex = new TestExecutor();

            var dp = new DirectProcessor <int>();

            var ts = dp.ThrottleFirst(TimeSpan.FromMilliseconds(5), tex).Filter(v => true).Test();

            ts.AssertEmpty();

            dp.OnNext(1);

            ts.AssertValues(1)
            .AssertNoError()
            .AssertNotComplete();

            dp.OnNext(2);

            ts.AssertValues(1)
            .AssertNoError()
            .AssertNotComplete();

            tex.AdvanceTimeBy(TimeSpan.FromMilliseconds(5));

            ts.AssertValues(1)
            .AssertNoError()
            .AssertNotComplete();

            dp.OnNext(3);

            ts.AssertValues(1, 3)
            .AssertNoError()
            .AssertNotComplete();

            dp.OnNext(4);
            dp.OnComplete();

            ts.AssertResult(1, 3);

            tex.AdvanceTimeBy(TimeSpan.FromMilliseconds(5));

            ts.AssertResult(1, 3);
        }
Ejemplo n.º 8
0
        public void Normal()
        {
            var dp1 = new DirectProcessor <int>();
            var dp2 = new DirectProcessor <int>();

            var ts = dp1.Buffer(dp2).Test();

            ts.AssertEmpty();

            dp1.OnNext(1);
            dp1.OnNext(2);

            dp2.OnNext(100);

            ts.AssertValues(
                new List <int>(new int[] { 1, 2 })
                )
            .AssertNoError()
            .AssertNotComplete();

            dp2.OnNext(200);

            ts.AssertValues(
                new List <int>(new int[] { 1, 2 }),
                new List <int>()
                )
            .AssertNoError()
            .AssertNotComplete();

            dp1.OnNext(3);
            dp1.OnNext(4);
            dp1.OnNext(5);

            dp1.OnComplete();

            ts.AssertResult(
                new List <int>(new int[] { 1, 2 }),
                new List <int>(),
                new List <int>(new int[] { 3, 4, 5 })
                );

            Assert.IsFalse(dp2.HasSubscribers);
        }
Ejemplo n.º 9
0
        public void OnBackpressureLatest_Normal()
        {
            var ps = new DirectProcessor <int>();

            var ts = ps.OnBackpressureLatest().Test(0);

            ps.OnNext(1);
            ps.OnNext(2);

            ts.Request(1);

            ps.OnNext(3);

            ts.Request(2);

            ps.OnNext(4);
            ps.OnComplete();

            ts.AssertResult(2, 3, 4);
        }
        public void Normal()
        {
            var dp = new DirectProcessor <int>();

            Assert.IsFalse(dp.HasSubscribers);

            var ts = dp.Test();

            Assert.IsTrue(dp.HasSubscribers);

            dp.OnNext(1);
            dp.OnNext(2);
            dp.OnNext(3);
            dp.OnNext(4);

            ts.AssertValues(1, 2, 3, 4);

            dp.OnComplete();

            ts.AssertResult(1, 2, 3, 4);
        }
Ejemplo n.º 11
0
        public void SwitchMap_Normal_Fused()
        {
            var dp = new DirectProcessor <int>();

            var ts = dp.SwitchMap(v => Flux.Range(v, 2))
                     .Test();

            dp.OnNext(1, 2, 3);
            dp.OnComplete();

            ts.AssertResult(1, 2, 2, 3, 3, 4);
        }
Ejemplo n.º 12
0
        public void Timeout_Normal()
        {
            var first  = new DirectProcessor <int>();
            var item   = new DirectProcessor <int>();
            var source = new DirectProcessor <int>();

            var ts = source.Timeout(first, v => item, Flux.Just(100))
                     .Test();

            source.OnNext(1);

            first.OnNext(1);

            source.OnNext(2, 3, 4);
            source.OnComplete();

            ts.AssertResult(1, 2, 3, 4);

            Assert.IsFalse(first.HasSubscribers, "first has subscribers?!");
            Assert.IsFalse(item.HasSubscribers, "item has subscribers?!");
            Assert.IsFalse(source.HasSubscribers, "source has subscribers?!");
        }
        public void Sample_Normal()
        {
            var dp1 = new DirectProcessor <int>();
            var dp2 = new DirectProcessor <int>();

            var ts = dp1.Sample(dp2).Test();

            dp1.OnNext(1);
            dp1.OnNext(2);

            dp2.OnNext(1);
            dp2.OnNext(3);

            dp1.OnNext(3);

            dp2.OnComplete();

            ts.AssertResult(2, 3);

            Assert.IsFalse(dp1.HasSubscribers, "dp1 has subscribers?!");
            Assert.IsFalse(dp2.HasSubscribers, "dp2 has subscribers?!");
        }
Ejemplo n.º 14
0
        public void SwitchMap_Normal_Backpressured()
        {
            var dp = new DirectProcessor <int>();

            var ts = dp.SwitchMap(v => Flux.Range(v, 2))
                     .Test(initialRequest: 1);

            dp.OnNext(1);

            dp.OnNext(2);

            ts.Request(1);

            dp.OnNext(3);

            ts.Request(1);

            dp.OnComplete();

            ts.Request(1);

            ts.AssertResult(1, 2, 3, 4);
        }
        public void WithLatestFrom_Normal()
        {
            var dp1 = new DirectProcessor <int>();
            var dp2 = new DirectProcessor <int>();

            var ts = dp1.WithLatestFrom(dp2, (a, b) => a + b).Test();

            dp1.OnNext(1);

            dp2.OnNext(10);

            dp1.OnNext(2, 3, 4);

            dp2.OnNext(20);

            dp1.OnNext(5);
            dp1.OnComplete();

            ts.AssertResult(12, 13, 14, 25);

            Assert.IsFalse(dp1.HasSubscribers, "dp1 has subscribers?");
            Assert.IsFalse(dp2.HasSubscribers, "dp2 has subscribers?");
        }
Ejemplo n.º 16
0
        public void TakeUntil_Normal()
        {
            var dp1 = new DirectProcessor <int>();
            var dp2 = new DirectProcessor <int>();

            var ts = dp1.TakeUntil(dp2).Test();

            dp1.OnNext(1, 2, 3);

            dp2.OnNext(1);

            ts.AssertResult(1, 2, 3);

            Assert.IsFalse(dp1.HasSubscribers, "dp1 has Subscribers?!");
            Assert.IsFalse(dp2.HasSubscribers, "dp2 has Subscribers?!");
        }
Ejemplo n.º 17
0
        public void Timeout_Conditional_FirstTimesOut()
        {
            var first  = new DirectProcessor <int>();
            var item   = new DirectProcessor <int>();
            var source = new DirectProcessor <int>();

            var ts = source.Timeout(first, v => item, Flux.Just(100))
                     .Filter(v => true)
                     .Test();

            first.OnNext(1);

            ts.AssertResult(100);

            Assert.IsFalse(first.HasSubscribers, "first has subscribers?!");
            Assert.IsFalse(item.HasSubscribers, "item has subscribers?!");
            Assert.IsFalse(source.HasSubscribers, "source has subscribers?!");
        }