public void WhenKeyExistsTryRemoveRemovesItemAndReturnsTrue() { lru.GetOrAdd(1, valueFactory.Create); lru.TryRemove(1).Should().BeTrue(); lru.TryGet(1, out var value).Should().BeFalse(); }
public void WhenItemIsRemovedItIsDisposed() { var lruOfDisposable = new ConcurrentLru <int, DisposableItem>(1, 6, EqualityComparer <int> .Default); var disposableValueFactory = new DisposableValueFactory(); lruOfDisposable.GetOrAdd(1, disposableValueFactory.Create); lruOfDisposable.TryRemove(1); disposableValueFactory.Items[1].IsDisposed.Should().BeTrue(); }
public void WhenScopedIsCreatedFromCacheItemHasExpectedLifetime() { var lru = new ConcurrentLru <int, Scoped <Disposable> >(2, 9, EqualityComparer <int> .Default); var valueFactory = new DisposableValueFactory(); using (var lifetime = lru.GetOrAdd(1, valueFactory.Create).CreateLifetime()) { lifetime.Value.IsDisposed.Should().BeFalse(); } valueFactory.Disposable.IsDisposed.Should().BeFalse(); lru.TryRemove(1); valueFactory.Disposable.IsDisposed.Should().BeTrue(); }