public void GetExistingWrongKey() { using (var existingSingleton = new DummyDisposable()) { SingletonsContainer.Add("foo", existingSingleton); Assert.Throws(typeof(InvalidCastException), () => SingletonsContainer.Get <MyDisposable>("foo")); } }
public void DisposeServiceOnUnload() { var disposeOnServiceCalled = false; var dummyDisposable = new DummyDisposable( () => disposeOnServiceCalled = true); using (_ = FirLibApplication.GetLoader() .AddService(typeof(IDisposable), dummyDisposable) .Load()) { Assert.IsFalse(disposeOnServiceCalled, nameof(disposeOnServiceCalled)); } Assert.IsTrue(disposeOnServiceCalled, nameof(disposeOnServiceCalled)); }
public async Task TestCacheDelete_CollectionDataShouldBeDisposedAsync() { ICacheInstance cache = MemoryCache.GetNamedInstance(nameof(TestCacheDelete_DataShouldBeDisposedAsync)); cache.CleanInternal = TimeSpan.FromSeconds(1); var data = new DummyDisposable(); var key = Guid.NewGuid().ToString(); cache.SetData(key, new[] { data }, TimeSpan.MaxValue); cache.TryDeleteKey(key).Should().BeTrue(); data.IsDisposed.Should().Be(false); await Task.Delay(cache.CleanInternal.Add(TimeSpan.FromMilliseconds(500))); cache.CleanIfNeeded(); data.IsDisposed.Should().Be(true); }
public async Task TestDeleteKey_DisposableAsync() { ICacheInstance cache = MemoryCache.GetNamedInstance(nameof(TestDeleteKey_DisposableAsync)); cache.CleanInternal = TimeSpan.FromMilliseconds(200); var key = Guid.NewGuid().ToString(); var data = new DummyDisposable(); cache.SetData(key, data, TimeSpan.MaxValue); data.IsDisposed.Should().BeFalse(); cache.TryDeleteKey(key).Should().BeTrue(); cache.TryDeleteKey(key).Should().BeFalse(); data.IsDisposed.Should().BeFalse(); await Task.Delay(TimeSpan.FromMilliseconds(300)); data.IsDisposed.Should().BeTrue(); }
public void EnsureValueDisposed_NotCreated() { var disposable = new DummyDisposable(); disposable.IsDisposed.Should().BeFalse(); var lazyAsync = LazyUtils.ToLazy(() => disposable); if (lazyAsync is IDisposable disposableLazyAsync) { disposableLazyAsync.Dispose(); disposable.IsDisposed.Should().BeFalse(); } else { Assert.Fail("lazy should be disposable"); } }
public void EnsureAllItemsDisposed() { var container = new DisposableContainer(); var items = new List <DummyDisposable>(); for (var i = 0; i < 10; i++) { var item = new DummyDisposable(); items.Add(item); container.Register(item); } items.ForEach(_ => _.IsDisposed.Should().BeFalse()); container.Dispose(); container.IsDisposed.Should().BeTrue(); items.ForEach(_ => _.IsDisposed.Should().BeTrue()); }
public void TestCreateDeleteInstance() { var cacheName = Guid.NewGuid().ToString(); ICacheInstance cache = MemoryCache.GetNamedInstance(cacheName); cache.Should().NotBeNull(); var data = new DummyDisposable(); cache.SetData(nameof(data), data, Timeout.InfiniteTimeSpan); MemoryCache.GetNamedInstance(cacheName).Should().Be(cache); data.IsDisposed.Should().BeFalse(); MemoryCache.TryDeleteNamedInstance(cacheName).Should().BeTrue(); data.IsDisposed.Should().BeTrue(); MemoryCache.GetNamedInstance(cacheName).Should().NotBe(cache); }
public async Task AsyncLazy_EnsureValueDisposedAsync() { var disposable = new DummyDisposable(); disposable.IsDisposed.Should().BeFalse(); var lazyAsync = LazyUtils.ToAsyncLazy(async() => disposable); (await lazyAsync.GetValueAsync().ConfigureAwait(false)).Should().NotBeNull(); if (lazyAsync is IDisposable disposableLazyAsync) { disposableLazyAsync.Dispose(); disposable.IsDisposed.Should().BeTrue(); } else { Assert.Fail("lazy should be disposable"); } }
public async Task TestClearAsync() { ICacheInstance cache = MemoryCache.GetNamedInstance(Guid.NewGuid().ToString()); cache.CleanInternal = TimeSpan.FromMilliseconds(200); var key = Guid.NewGuid().ToString(); var data = new DummyDisposable(); cache.SetData(key, data, TimeSpan.MaxValue); cache.Size.Should().Be(1); data.IsDisposed.Should().BeFalse(); cache.Clear(); cache.Size.Should().Be(0); data.IsDisposed.Should().BeFalse(); await Task.Delay(TimeSpan.FromMilliseconds(300)); cache.CleanIfNeeded(); data.IsDisposed.Should().BeTrue(); }
public bool isDisposable(DummyDisposable d) => d is IDisposable;