示例#1
0
        public void ThrowIfDisposedThrowsOnArgumentNull()
        {
            int disposedState = 0;
            int busyCount     = 0;

            DisposeAssistant.ThrowIfDisposed(null, disposedState, busyCount);
        }
示例#2
0
        public void DisposeAll_ThrowsAggregateExceptionWhenNotSuppressed()
        {
            var t  = new TestDisposable();
            var t1 = new TestDisposable();

            t1.ErrorOnDispose = true;
            var t2 = new TestDisposable();

            t2.ErrorOnDispose = true;
            var t3 = new TestDisposable();

            try
            {
                DisposeAssistant.DisposeAll(t, t1, t2, t3);
                Assert.Fail("No aggregate exception thronw");
            }
            catch (AggregateException ae)
            {
                Assert.AreEqual(2, ae.InnerExceptions.Count);

                Assert.IsTrue(t.IsDisposed);
                Assert.IsTrue(t1.IsDisposed);
                Assert.IsTrue(t2.IsDisposed);
                Assert.IsTrue(t3.IsDisposed);
            }
        }
示例#3
0
        public void DisposeAll_IgnoresNulls()
        {
            var t  = new TestDisposable();
            var t1 = new TestDisposable();
            var t2 = new TestDisposable();
            var t3 = new TestDisposable();

            DisposeAssistant.DisposeAll(null, t, null, t1, t2, t3, null);

            Assert.IsTrue(t.IsDisposed);
            Assert.IsTrue(t1.IsDisposed);
            Assert.IsTrue(t2.IsDisposed);
            Assert.IsTrue(t3.IsDisposed);
        }
示例#4
0
        public void DisposeAll_DisposesEachitem()
        {
            var t  = new TestDisposable();
            var t1 = new TestDisposable();
            var t2 = new TestDisposable();
            var t3 = new TestDisposable();

            DisposeAssistant.DisposeAll(t, t1, t2, t3);

            Assert.IsTrue(t.IsDisposed);
            Assert.IsTrue(t1.IsDisposed);
            Assert.IsTrue(t2.IsDisposed);
            Assert.IsTrue(t3.IsDisposed);
        }
示例#5
0
        public void DisposeAll_IgnoresExceptionsWithSuppressOptionSet()
        {
            var t  = new TestDisposable();
            var t1 = new TestDisposable();

            t1.ErrorOnDispose = true;
            var t2 = new TestDisposable();
            var t3 = new TestDisposable();

            DisposeAssistant.DisposeAll(DisposeOptions.SuppressExceptions, t, t1, t2, t3);

            Assert.IsTrue(t.IsDisposed);
            Assert.IsTrue(t1.IsDisposed);
            Assert.IsTrue(t2.IsDisposed);
            Assert.IsTrue(t3.IsDisposed);
        }
示例#6
0
        public void Dispose_ThrowsOnNullInnerDisposeDelegate()
        {
            int disposedState = 0, busyCount = 0;

            DisposeAssistant.Dispose(new TestDisposable(), ref disposedState, ref busyCount, null);
        }
示例#7
0
        public void Dispose_ThrowsOnNullCaller()
        {
            int disposedState = 0, busyCount = 0;

            DisposeAssistant.Dispose(null, ref disposedState, ref busyCount, new Action <bool>((b) => System.Diagnostics.Trace.WriteLine(b.ToString())));
        }
示例#8
0
 public void DisposeAll_IgnoresNullEnumerableWithOptions()
 {
     DisposeAssistant.DisposeAll(DisposeOptions.SuppressExceptions, (object[])null);
 }