public void Error()
        {
            var count = 0;

            ObservableSource.Error <int>(new InvalidOperationException())
            .SwitchIfEmpty(ObservableSource.FromAction <int>(() => ++ count))
            .Test()
            .AssertFailure(typeof(InvalidOperationException));

            Assert.AreEqual(0, count);
        }
コード例 #2
0
        public void Dynamic_Source()
        {
            var count = 0;

            var source = ObservableSource.FromAction <int>(() => ++ count) as IDynamicValue <int>;

            for (int i = 0; i < 10; i++)
            {
                var v = source.GetValue(out var success);
                Assert.False(success);
            }
        }
        public void Empty_Many_Fallbacks()
        {
            var count = 0;

            ObservableSource.Empty <int>()
            .SwitchIfEmpty(ObservableSource.FromAction <int>(() => ++ count),
                           ObservableSource.Range(6, 5))
            .Test()
            .AssertResult(6, 7, 8, 9, 10);

            Assert.AreEqual(1, count);
        }
コード例 #4
0
        public void Regular_Basic()
        {
            var count = 0;

            var source = ObservableSource.FromAction <int>(() => ++ count);

            for (int i = 0; i < 10; i++)
            {
                Assert.AreEqual(i, count);

                source.Test().AssertResult();

                Assert.AreEqual(i + 1, count);
            }
        }
コード例 #5
0
        public void Fused_Basic()
        {
            var count = 0;

            var source = ObservableSource.FromAction <int>(() => ++ count);

            for (int i = 0; i < 10; i++)
            {
                Assert.AreEqual(i, count);

                source.Test(fusionMode: FusionSupport.Any)
                .AssertFuseable()
                .AssertFusionMode(FusionSupport.Async)
                .AssertResult();

                Assert.AreEqual(i + 1, count);
            }
        }
コード例 #6
0
        public void Regular_Error()
        {
            var count = 0;

            var source = ObservableSource.FromAction <int>(() =>
            {
                ++count;
                throw new InvalidOperationException();
            });

            for (int i = 0; i < 10; i++)
            {
                Assert.AreEqual(i, count);

                source.Test()
                .AssertFailure(typeof(InvalidOperationException));

                Assert.AreEqual(i + 1, count);
            }
        }
コード例 #7
0
        public void Fused_Error()
        {
            var count = 0;

            var source = ObservableSource.FromAction <int>(() =>
            {
                ++count;
                throw new InvalidOperationException();
            });

            for (int i = 0; i < 10; i++)
            {
                Assert.AreEqual(i, count);

                source.Test(fusionMode: FusionSupport.Any)
                .AssertFuseable()
                .AssertFusionMode(FusionSupport.Async)
                .AssertFailure(typeof(InvalidOperationException));

                Assert.AreEqual(i + 1, count);
            }
        }
コード例 #8
0
        public void Dynamic_Source_Error()
        {
            var count = 0;

            var source = ObservableSource.FromAction <int>(() =>
            {
                count++;
                throw new InvalidOperationException();
            }) as IDynamicValue <int>;

            for (int i = 0; i < 10; i++)
            {
                try
                {
                    source.GetValue(out var success);
                    Assert.Fail();
                }
                catch (InvalidOperationException)
                {
                    // expected
                }
            }
        }