Exemple #1
0
 public void Basic()
 {
     CompletableSource.Never()
     .Test()
     .AssertSubscribed()
     .AssertEmpty();
 }
Exemple #2
0
        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);
        }
Exemple #7
0
        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);
        }
Exemple #9
0
        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();
        }