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 WhenValueExpiresItIsDisposed() { var lruOfDisposable = new ConcurrentLru <int, DisposableItem>(1, 6, EqualityComparer <int> .Default); var disposableValueFactory = new DisposableValueFactory(); for (int i = 0; i < 5; i++) { lruOfDisposable.GetOrAdd(i, disposableValueFactory.Create); } disposableValueFactory.Items[0].IsDisposed.Should().BeTrue(); disposableValueFactory.Items[1].IsDisposed.Should().BeFalse(); }
public async Task WhenValueExpiresAsyncItIsDisposed() { var lruOfDisposable = new ClassicLru <int, DisposableItem>(1, 6, EqualityComparer <int> .Default); var disposableValueFactory = new DisposableValueFactory(); for (int i = 0; i < 7; i++) { await lruOfDisposable.GetOrAddAsync(i, disposableValueFactory.CreateAsync); } disposableValueFactory.Items[0].IsDisposed.Should().BeTrue(); disposableValueFactory.Items[1].IsDisposed.Should().BeFalse(); }