Esempio n. 1
0
 public void Success_Cleanup_Crash_Eager()
 {
     SingleSource.Using <int, int>(() => 1,
                                   v => SingleSource.Just(1),
                                   v => { throw new InvalidOperationException(); }
                                   )
     .Test()
     .AssertFailure(typeof(InvalidOperationException));
 }
Esempio n. 2
0
 public void Error_Cleanup_Crash_Non_Eager()
 {
     SingleSource.Using(() => 1,
                        v => SingleSource.Error <int>(new NotImplementedException()),
                        v => { throw new InvalidOperationException(); },
                        false
                        )
     .Test()
     .AssertFailure(typeof(NotImplementedException));
 }
Esempio n. 3
0
 public void Success_Cleanup_Crash_Non_Eager()
 {
     SingleSource.Using <int, int>(() => 1,
                                   v => SingleSource.Just(1),
                                   v => { throw new InvalidOperationException(); },
                                   false
                                   )
     .Test()
     .AssertResult(1);
 }
Esempio n. 4
0
 public void Dispose_Cleanup_Crash()
 {
     SingleSource.Using(() => 1,
                        v => SingleSource.Never <int>(),
                        v => { throw new InvalidOperationException(); },
                        false
                        )
     .Test()
     .Cancel()
     .AssertEmpty();
 }
Esempio n. 5
0
 public void Error_Cleanup_Crash_Eager()
 {
     SingleSource.Using(() => 1,
                        v => SingleSource.Error <int>(new NotImplementedException()),
                        v => { throw new InvalidOperationException(); }
                        )
     .Test()
     .AssertFailure(typeof(AggregateException))
     .AssertCompositeError(0, typeof(NotImplementedException))
     .AssertCompositeError(1, typeof(InvalidOperationException));
 }
Esempio n. 6
0
        public void Resource_Supplier_Crash()
        {
            var cleanup = -1;
            var run     = 0;

            SingleSource.Using <int, int>(() => { throw new InvalidOperationException(); },
                                          v => { run = 1; return(SingleSource.Never <int>()); },
                                          v => cleanup = run
                                          )
            .Test()
            .AssertFailure(typeof(InvalidOperationException));

            Assert.AreEqual(-1, cleanup);
            Assert.AreEqual(0, run);
        }
Esempio n. 7
0
        public void Dispose()
        {
            var cleanup = -1;
            var run     = 0;

            SingleSource.Using(() => 1,
                               v => SingleSource.Never <int>(),
                               v => cleanup = run
                               )
            .DoOnSuccess(v => run = 1)
            .Test()
            .Dispose();

            Assert.AreEqual(0, cleanup);
            Assert.AreEqual(0, run);
        }
Esempio n. 8
0
        public void Error_Eager()
        {
            var cleanup = -1;
            var run     = 0;

            SingleSource.Using(() => 1,
                               v => SingleSource.Error <int>(new InvalidOperationException()),
                               v => cleanup = run
                               )
            .DoOnError(e => run = 1)
            .Test()
            .AssertFailure(typeof(InvalidOperationException));

            Assert.AreEqual(0, cleanup);
            Assert.AreEqual(1, run);
        }
Esempio n. 9
0
        public void Source_Selector_Crash_Eager()
        {
            var cleanup = -1;
            var run     = 0;

            SingleSource.Using <int, int>(() => 1,
                                          v => { throw new InvalidOperationException(); },
                                          v => cleanup = run
                                          )
            .DoOnError(e => run = 1)
            .Test()
            .AssertFailure(typeof(InvalidOperationException));

            Assert.AreEqual(0, cleanup);
            Assert.AreEqual(1, run);
        }
Esempio n. 10
0
        public void Success_Eager()
        {
            var cleanup = -1;
            var run     = 0;

            SingleSource.Using(() => 1,
                               v => SingleSource.Just(1),
                               v => cleanup = run
                               )
            .DoOnSuccess(v => run = 1)
            .Test()
            .AssertResult(1);

            Assert.AreEqual(0, cleanup);
            Assert.AreEqual(1, run);
        }