public void AsyncReactiveObservableBase_Subscribe()
        {
            var s = new MyAsyncReactiveObservable <int>();

            var iv2    = default(IAsyncReactiveObserver <int>);
            var uri2   = default(Uri);
            var state2 = default(object);

            s.SubscribeAsyncImpl = (o, u, x, token) =>
            {
                iv2    = o;
                uri2   = u;
                state2 = x;

                return(Task.FromResult <IAsyncReactiveSubscription>(null));
            };

            var iv    = new MyObserver <int>();
            var uri   = new Uri("foo://bar");
            var state = "qux";

            _ = s.SubscribeAsync(iv, uri, state).Result;

            Assert.AreSame(iv, iv2);
            Assert.AreSame(uri, uri2);
            Assert.AreSame(state, state2);
        }
        public void AsyncReactiveObservableBase_Subscribe_ArgumentChecking()
        {
            var s = new MyAsyncReactiveObservable <int>();

            var iv    = new MyObserver <int>();
            var uri   = new Uri("foo://bar");
            var state = "qux";

            Assert.ThrowsException <ArgumentNullException>(() => s.SubscribeAsync(null, uri, state).Wait());
            Assert.ThrowsException <ArgumentNullException>(() => s.SubscribeAsync(iv, null, state).Wait());
        }