public void Mapper_Crash_Max_Concurrency() { for (int k = 1; k < 5; k++) { var count = 0; var source = CompletableSource.FromAction(() => count++); var u = 0; new[] { source, source, source } .ToObservable() .FlatMap(v => { if (++u == 2) { throw new InvalidOperationException(); } return(v); }, maxConcurrency: k) .Test() .AssertFailure(typeof(InvalidOperationException)); Assert.AreEqual(1, count); } }
public void Timeout_Fallback_Error() { var ts = new TestScheduler(); var us = new CompletableSubject(); var count = 0; var fb = CompletableSource.FromAction(() => { ++count; throw new InvalidOperationException(); }); var to = us .Timeout(TimeSpan.FromSeconds(1), ts, fb) .Test(); to.AssertEmpty(); ts.AdvanceTimeBy(100); Assert.True(us.HasObserver()); ts.AdvanceTimeBy(900); Assert.False(us.HasObserver()); to.AssertFailure(typeof(InvalidOperationException)); Assert.AreEqual(1, count); }
public void Timeout_Fallback() { var ts = new TestScheduler(); var us = new CompletableSubject(); var count = 0; var fb = CompletableSource.FromAction(() => count++); var to = us .Timeout(TimeSpan.FromSeconds(1), ts, fb) .Test(); to.AssertEmpty(); ts.AdvanceTimeBy(100); Assert.True(us.HasObserver()); ts.AdvanceTimeBy(900); Assert.False(us.HasObserver()); to.AssertResult(); Assert.AreEqual(1, count); }
public void Error() { var count = 0; var us = new UnicastSubject <int>(); var to = us .ConcatMap(v => { if (v == 2) { return(CompletableSource.Error(new InvalidOperationException())); } return(CompletableSource.FromAction(() => count++)); }) .Test(); to.AssertEmpty() .AssertSubscribed(); us.OnNext(0); us.OnNext(1); us.OnNext(2); to.AssertFailure(typeof(InvalidOperationException)); Assert.False(us.HasObserver()); Assert.AreEqual(2, count); }
public void Array_Basic_Delay_Errors() { var count = 0; var source = CompletableSource.FromAction(() => count++); CompletableSource.Merge(true, new[] { source, source, source }) .Test() .AssertResult(); Assert.AreEqual(3, count); }
public void Array_Basic_Params() { var count = 0; var source = CompletableSource.FromAction(() => count++); CompletableSource.Merge(source, source, source) .Test() .AssertResult(); Assert.AreEqual(3, count); }
public void Main_Disposed_Handler_Completes() { var count = 0; CompletableSource.FromAction(() => count++) .RepeatWhen(v => Observable.Empty <int>()) .Test() .AssertResult(); Assert.AreEqual(0, count); }
public void Handler_Completes() { var subs = 0; CompletableSource.FromAction(() => subs++) .RepeatWhen(v => v.Take(1).Skip(1)) .Test() .AssertResult(); Assert.AreEqual(1, subs); }
public void Handler_Errors() { var subs = 0; CompletableSource.FromAction(() => subs++) .RepeatWhen(v => v.Take(1).Skip(1).ConcatError(new NotImplementedException())) .Test() .AssertFailure(typeof(NotImplementedException)); Assert.AreEqual(1, subs); }
public void Main_Disposed_Handler_Errors() { var count = 0; CompletableSource.FromAction(() => count++) .RepeatWhen(v => Observable.Throw <int>(new InvalidOperationException())) .Test() .AssertFailure(typeof(InvalidOperationException)); Assert.AreEqual(0, count); }
public void Basic_DelayError() { var count = 0; Observable.Range(1, 10) .ConcatMap(v => CompletableSource.FromAction(() => count++), true) .Test() .AssertResult(); Assert.AreEqual(10, count); }
public void Single_Main_Error() { var count = 0; SingleSource.Error <int>(new InvalidOperationException()) .FlatMap(v => CompletableSource.FromAction(() => count++)) .Test() .AssertFailure(typeof(InvalidOperationException)); Assert.AreEqual(0, count); }
public void Single_Basic() { var count = 0; SingleSource.Just(1) .FlatMap(v => CompletableSource.FromAction(() => count++)) .Test() .AssertResult(); Assert.AreEqual(1, count); }
public void Maybe_Empty() { var count = 0; MaybeSource.Empty <int>() .FlatMap(v => CompletableSource.FromAction(() => count++)) .Test() .AssertResult(); Assert.AreEqual(0, count); }
public void Error_Delayed() { var count = 0; Observable.Range(1, 5).ConcatError(new InvalidOperationException()) .SwitchMap(v => CompletableSource.FromAction(() => count++), true) .Test() .AssertFailure(typeof(InvalidOperationException)); Assert.AreEqual(5, count); }
public void Basic_No_Error() { var subs = 0; CompletableSource.FromAction(() => subs++) .RetryWhen(v => v) .Test() .AssertResult(); Assert.AreEqual(1, subs); }
public void Basic() { var count = 0; Observable.Range(1, 5) .SwitchMap(v => CompletableSource.FromAction(() => count++)) .Test() .AssertResult(); Assert.AreEqual(5, count); }
public void Empty() { var count = 0; Observable.Empty <int>() .SwitchMap(v => CompletableSource.FromAction(() => count++)) .Test() .AssertResult(); Assert.AreEqual(0, count); }
public void Completable_Basic() { var count = 0; CompletableSource.Empty() .AndThen(CompletableSource.FromAction(() => count++)) .Test() .AssertResult(); Assert.AreEqual(1, count); }
public void Error() { var count = 0; var fb = CompletableSource.FromAction(() => count++); CompletableSource.Error(new InvalidOperationException()) .OnErrorResumeNext(fb) .Test() .AssertResult(); Assert.AreEqual(1, count); }
public void Array_Basic() { var count = 0; var source = CompletableSource.FromAction(() => count++); new[] { source, source, source } .MergeAll() .Test() .AssertResult(); Assert.AreEqual(3, count); }
public void Handler_Basic() { var count = 0; var fb = CompletableSource.FromAction(() => count++); CompletableSource.Empty() .OnErrorResumeNext(e => fb) .Test() .AssertResult(); Assert.AreEqual(0, count); }
public void Error_Fallback() { var count = 0; var fb = CompletableSource.FromAction(() => count++); CompletableSource.Error(new InvalidOperationException()) .Timeout(TimeSpan.FromMinutes(1), NewThreadScheduler.Default, fb) .Test() .AssertFailure(typeof(InvalidOperationException)); Assert.AreEqual(0, count); }
public void Basic_Fallback() { var count = 0; var fb = CompletableSource.FromAction(() => count++); CompletableSource.Empty() .Timeout(TimeSpan.FromMinutes(1), NewThreadScheduler.Default, fb) .Test() .AssertResult(); Assert.AreEqual(0, count); }
public void Array_Error() { var count = 0; var source = CompletableSource.FromAction(() => count++); var err = CompletableSource.Error(new InvalidOperationException()); CompletableSource.Merge(source, err, source) .Test() .AssertFailure(typeof(InvalidOperationException)); Assert.AreEqual(1, count); }
public void Disposed_Upfront() { var count = 0; var c = CompletableSource.FromAction(() => count++); c.Test(true) .AssertSubscribed() .AssertEmpty(); Assert.AreEqual(0, count); }
public void Basic_Error_Delay() { var count = 0; CompletableSource.Concat(true, CompletableSource.Error(new InvalidOperationException()), CompletableSource.FromAction(() => count++) ) .Test() .AssertFailure(typeof(InvalidOperationException)); Assert.AreEqual(1, count); }
public void Basic_Delay_Errors() { var count = 0; var source = CompletableSource.FromAction(() => count++); new[] { source, source, source } .ToObservable() .FlatMap(v => v, true) .Test() .AssertResult(); Assert.AreEqual(3, count); }
public void Basic_Delay_Errors() { var count = 0; CompletableSource.Concat(true, CompletableSource.FromAction(() => count++), CompletableSource.FromAction(() => count++) ) .Test() .AssertResult(); Assert.AreEqual(2, count); }
public void Error() { var count = 0; var source = CompletableSource.FromAction(() => count++); var err = CompletableSource.Error(new InvalidOperationException()); new [] { source, err, source } .ToObservable() .FlatMap(v => v) .Test() .AssertFailure(typeof(InvalidOperationException)); Assert.AreEqual(1, count); }