public void should_dispose_disposable_component_on_release() { var componentPool = new ComponentPool <TestDisposableComponent>(10); var indexToUse = componentPool.IndexPool.AllocateInstance(); var componentToUse = new TestDisposableComponent(); componentPool.Components[indexToUse] = componentToUse; componentPool.Release(indexToUse); Assert.True(componentToUse.isDisposed); }
public void ScopedBaseDisposableComponent_EndOfUsingScope_DisposeWasCalled() { //Arrange using var disposeWasCalled = new ManualResetEventSlim(); //Act using (var component = new TestDisposableComponent(disposeWasCalled)) { } //Assert Assert.IsTrue(disposeWasCalled.Wait(1000)); }
public void ScopedBaseDisposableComponent_DisposeInParallel_DisposeWasCalledOnce() { //Arrange using var counter = new CountdownEvent(3); var component = new TestDisposableComponent(counter); //Act Parallel.For(0, 2, i => { component.Dispose(); }); //Assert Assert.IsFalse(counter.IsSet); Assert.AreEqual(counter.CurrentCount, counter.InitialCount - 1); }