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); }
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 }) ); }
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); }
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); }
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); }
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); }
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); }
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?!"); }
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?"); }
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?!"); }
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?!"); }