public void Basic() { CompletableSource.Never() .Test() .AssertSubscribed() .AssertEmpty(); }
public void OnDispose_Basic() { var count = 0; CompletableSource.Never() .DoOnDispose(() => count++) .Test(true) .AssertEmpty(); Assert.AreEqual(1, count); }
public void Dispose_Cleanup_Crash() { CompletableSource.Using(() => 1, v => CompletableSource.Never(), v => { throw new InvalidOperationException(); }, false ) .Test() .Cancel() .AssertEmpty(); }
public void Enumerable_Empty() { CompletableSource.Amb(new List <ICompletableSource>() { CompletableSource.Never(), CompletableSource.Never(), CompletableSource.Never(), CompletableSource.Empty() }) .Test() .AssertResult(); }
public void Enumerable_Many() { var list = new List <ICompletableSource>(); for (int i = 0; i < 32; i++) { list.Add(CompletableSource.Never()); } list.Add(CompletableSource.Error(new InvalidOperationException())); CompletableSource.Amb(list) .Test() .AssertFailure(typeof(InvalidOperationException)); }
public void Resource_Supplier_Crash() { var cleanup = -1; var run = 0; CompletableSource.Using <int>(() => { throw new InvalidOperationException(); }, v => { run = 1; return(CompletableSource.Never()); }, v => cleanup = run ) .Test() .AssertFailure(typeof(InvalidOperationException)); Assert.AreEqual(-1, cleanup); Assert.AreEqual(0, run); }
public void OnDispose_Crash() { var count = 0; CompletableSource.Never() .DoOnDispose(() => { count++; throw new InvalidOperationException(); }) .Test(true) .AssertEmpty(); ; Assert.AreEqual(1, count); }
public void Dispose() { var cleanup = -1; var run = 0; CompletableSource.Using(() => 1, v => CompletableSource.Never(), v => cleanup = run ) .DoOnCompleted(() => run = 1) .Test() .Dispose(); Assert.AreEqual(0, cleanup); Assert.AreEqual(0, run); }
public void Dispose() { var name = ""; var cdl = new CountdownEvent(1); CompletableSource.Never() .DoOnDispose(() => { name = Thread.CurrentThread.Name; cdl.Signal(); }) .UnsubscribeOn(NewThreadScheduler.Default) .Test() .Dispose(); Assert.True(cdl.Wait(5000)); Assert.AreNotEqual("", name); Assert.AreNotEqual(Thread.CurrentThread.Name, name); }
public void Dispose_Fallback() { var ts = new TestScheduler(); var us = new CompletableSubject(); var to = CompletableSource.Never() .Timeout(TimeSpan.FromSeconds(1), ts, us) .Test(); ts.AdvanceTimeBy(100); Assert.False(us.HasObserver()); ts.AdvanceTimeBy(900); Assert.True(us.HasObserver()); to.Dispose(); Assert.False(us.HasObserver()); to.AssertEmpty(); }