예제 #1
0
            public void ValueIsNotDisposedBeforeCall()
            {
                var disposable = new CustomDisposable();
                var valueInfo  = new CacheStorageValueInfo <CustomDisposable>(disposable, TimeSpan.FromMilliseconds(250));

                Assert.That(disposable.IsDiposed, Is.False);
            }
예제 #2
0
            public void ValueIsDisposedAfterCall()
            {
                var disposable = new CustomDisposable();
                var valueInfo  = new CacheStorageValueInfo <CustomDisposable>(disposable, TimeSpan.FromMilliseconds(250));

                valueInfo.DisposeValue();

                Assert.That(disposable.IsDiposed, Is.True);
            }
예제 #3
0
            public void DoesNotDisposeItemsOnClearWhenDisposingNotEnabled()
            {
                var disposable = new CustomDisposable();
                var cache      = new CacheStorage <string, CustomDisposable>();

                cache.ExpirationTimerInterval = TimeSpan.FromMilliseconds(250);

                cache.Add("disposable", disposable, expiration: TimeSpan.FromMilliseconds(250));

                Assert.IsFalse(disposable.IsDiposed);

                cache.Clear();

                Assert.IsFalse(disposable.IsDiposed);
            }
예제 #4
0
            public void DisposesItemOnRemoveWhenDisposingEnabled()
            {
                var disposable = new CustomDisposable();
                var cache      = new CacheStorage <string, CustomDisposable>();

                cache.DisposeValuesOnRemoval  = true;
                cache.ExpirationTimerInterval = TimeSpan.FromMilliseconds(250);

                cache.Add("disposable", disposable, expiration: TimeSpan.FromMilliseconds(250));

                Assert.IsFalse(disposable.IsDiposed);

                cache.Remove("disposable");

                Assert.IsTrue(disposable.IsDiposed);
            }
예제 #5
0
            public void DisposesExpiredItemWhenDisposingNotEnabledButForcedByEventArgs()
            {
                var disposable = new CustomDisposable();
                var cache      = new CacheStorage <string, CustomDisposable>();

                cache.ExpirationTimerInterval = TimeSpan.FromMilliseconds(250);
                cache.Expired += (sender, e) =>
                {
                    e.Dispose = true;
                };

                cache.Add("disposable", disposable, expiration: TimeSpan.FromMilliseconds(250));

                ThreadHelper.Sleep(750);

                Assert.IsTrue(disposable.IsDiposed);
            }
예제 #6
0
            public void DoesNotDisposeExpiredItemWhenDisposingEnabledButCanceledByEventArgs()
            {
                var disposable = new CustomDisposable();
                var cache      = new CacheStorage <string, CustomDisposable>();

                cache.DisposeValuesOnRemoval  = true;
                cache.ExpirationTimerInterval = TimeSpan.FromMilliseconds(250);
                cache.Expired += (sender, e) =>
                {
                    e.Dispose = false;
                };

                cache.Add("disposable", disposable, expiration: TimeSpan.FromMilliseconds(250));

                ThreadHelper.Sleep(750);

                Assert.IsFalse(disposable.IsDiposed);
            }
예제 #7
0
            public void DisposesExpiredItemWhenDisposingNotEnabledButForcedByEventArgs()
            {
                var disposable = new CustomDisposable();
                var cache = new CacheStorage<string, CustomDisposable>();
                cache.ExpirationTimerInterval = TimeSpan.FromMilliseconds(250);
                cache.Expired += (sender, e) =>
                {
                    e.Dispose = true;
                };

                cache.Add("disposable", disposable, expiration: TimeSpan.FromMilliseconds(250));

                ThreadHelper.Sleep(750);

                Assert.IsTrue(disposable.IsDiposed);
            }
예제 #8
0
            public void DoesNotDisposeItemsOnClearWhenDisposingNotEnabled()
            {
                var disposable = new CustomDisposable();
                var cache = new CacheStorage<string, CustomDisposable>();
                cache.ExpirationTimerInterval = TimeSpan.FromMilliseconds(250);

                cache.Add("disposable", disposable, expiration: TimeSpan.FromMilliseconds(250));

                Assert.IsFalse(disposable.IsDiposed);

                cache.Clear();

                Assert.IsFalse(disposable.IsDiposed);
            }
예제 #9
0
            public void DoesNotDisposeExpiredItemWhenDisposingEnabledButCanceledByEventArgs()
            {
                var disposable = new CustomDisposable();
                var cache = new CacheStorage<string, CustomDisposable>();
                cache.DisposeValuesOnRemoval = true;
                cache.ExpirationTimerInterval = TimeSpan.FromMilliseconds(250);
                cache.Expired += (sender, e) =>
                {
                    e.Dispose = false;
                };

                cache.Add("disposable", disposable, expiration: TimeSpan.FromMilliseconds(250));

                ThreadHelper.Sleep(750);

                Assert.IsFalse(disposable.IsDiposed);
            }
예제 #10
0
            public void DisposesItemOnRemoveWhenDisposingEnabled()
            {
                var disposable = new CustomDisposable();
                var cache = new CacheStorage<string, CustomDisposable>();
                cache.DisposeValuesOnRemoval = true;
                cache.ExpirationTimerInterval = TimeSpan.FromMilliseconds(250);

                cache.Add("disposable", disposable, expiration: TimeSpan.FromMilliseconds(250));

                Assert.IsFalse(disposable.IsDiposed);

                cache.Remove("disposable");

                Assert.IsTrue(disposable.IsDiposed);
            }
예제 #11
0
            public void ValueIsDisposedAfterCall()
            {
                var disposable = new CustomDisposable();
                var valueInfo = new CacheStorageValueInfo<CustomDisposable>(disposable, TimeSpan.FromMilliseconds(250));

                valueInfo.DisposeValue();

                Assert.That(disposable.IsDiposed, Is.True);
            }
예제 #12
0
            public void ValueIsNotDisposedBeforeCall()
            {
                var disposable = new CustomDisposable();
                var valueInfo = new CacheStorageValueInfo<CustomDisposable>(disposable, TimeSpan.FromMilliseconds(250));

                Assert.That(disposable.IsDiposed, Is.False);
            }