public void Test8() => DelayedDisposer.SafelyDispose( new IDisposable?[] { null, null, null });
public DelayedDisposerUnitTests(ITestOutputHelper output) { Requires.NotNull( out this.output, output); EnvironmentSettings.DelayedDisposal.DefaultDisposalDelayInMilliseconds = 300; DelayedDisposer.EnsureInitialized(); }
public async Task Test2() { // ARRANGE var dt = new DisposeTester(output); // ACT DelayedDisposer.SafelyDispose((IDisposable)dt); // ASSERT dt.CheckNegative(); await dt.WaitForDisposal(); dt.Check(); }
public async Task Test3() { // ARRANGE var dt = new List <DisposeTester> { new(output), new(output), new(output) }; // ACT DelayedDisposer.SafelyDispose(dt); // ASSERT dt.ForEach(p => p.CheckNegative()); await Task.WhenAll(dt.Select(p => p.WaitForDisposal())); dt.ForEach(p => p.Check()); }
public async Task Test1() { // ARRANGE output.WriteLine("Starting timed test..."); var dt = new DisposeTester(output); // ACT output.WriteLine("Adding to safe disposer..."); DelayedDisposer.SafelyDispose(dt); // ASSERT output.WriteLine("Checking negative..."); dt.CheckNegative(); output.WriteLine("Waiting for disposal..."); await dt.WaitForDisposal(); output.WriteLine("Checking positive..."); dt.Check(); output.WriteLine("All done. Test should not hang anymore."); }
public async Task Test5() { // ARRANGE var dt = new DisposeTester(output); var dt2 = new DisposeTester(output); var dtt = dt; // ACT DelayedDisposer.AtomicExchange(ref dt, dt2); // ASSERT dtt.CheckNegative(); dt2.CheckNegative(); dt.CheckNegative(); await dtt.WaitForDisposal(); dtt.Check(); dt2.CheckNegative(); dt.CheckNegative(); Assert.Equal(dt2, dt); }
public void Test7() => DelayedDisposer.SafelyDispose((IEnumerable <IDisposable?>?)null);
public void Test6() => DelayedDisposer.SafelyDispose((IDisposable?)null);