public void It_should_dispose_of_auto_properties() { var target = DisposableHelper.SafeCreate <DisposableItem>(); target.Dispose(); target.DisposableReadOnlyAutoProperty.Should().BeNull(); }
public void It_should_dispose_of_read_only_fields() { var target = DisposableHelper.SafeCreate <DisposableItem>(); target.Dispose(); target.GetPrivateReadOnlyDisposableField().Should().BeNull(); }
public void It_should_not_dispose_of_fields_attributed_with_do_not_dispose() { var target = DisposableHelper.SafeCreate <DisposableItem>(); target.Dispose(); target.GetDoNotDisposeField().Should().NotBeNull(); }
public ClassWithDictionaryFieldWithDisposableKey() { var builder = ImmutableDictionary <Mutex, string> .Empty.ToBuilder(); builder.Add(DisposableHelper.SafeCreate <Mutex>(), "a name"); _field = builder.ToImmutable(); }
public void It_should_not_dispose_of_auto_properties_attributed_with_do_not_dispose() { var target = DisposableHelper.SafeCreate <DisposableItem>(); target.Dispose(); target.DoNotDisposeAutoProperty.Should().NotBeNull(); }
protected override void ArrangeMethod() { traceLines = new List <string>(); memoryStream = DisposableHelper.SafeCreate( () => { var rv = DisposableHelper.SafeCreate(() => new MemoryStream()); rv.Capacity = 1024 * 1024; rv.Position = 0; return(rv); }); var streamWriter = new StreamWriter(memoryStream) { AutoFlush = true }; memoryListener = new TextWriterTraceListener(streamWriter); Trace.Listeners.Add(memoryListener); source = new EventSource(); removedInstanceSink = new EventSink(source); removedInstanceId = removedInstanceSink.Id; TestHelp.DoNothing(removedInstanceSink); keptInstanceSink = new EventSink(source); keptInstanceId = keptInstanceSink.Id; TestHelp.DoNothing(keptInstanceSink); }
public void It_should_handle_contained_nulls_in_an_enumerable() { var targetEnumerable = DisposableHelper.SafeCreate <DisposableEnumerable>(); targetEnumerable.AddDisposable(null); targetEnumerable.Dispose(); TestHardCodes.NoExceptionWasThrown.Should().BeTrue(); }
public void It_should_dispose_a_Dictionary_field_with_an_Enumerable_Disposable_Key() { using (var target = DisposableHelper.SafeCreate <ClassWithDictionaryFieldWithEnumerableDisposableKey>()) { target.Dispose(); var actual = target.TestHookGetField(); actual.Should().BeNull(); } }
public void It_should_handle_null_fields() { var target = DisposableHelper.SafeCreate <DisposableEnumerable>(); target.SetFlatField(null); target.Dispose(); TestHardCodes.NoExceptionWasThrown.Should().BeTrue(); }
public void When_I_call_DisposableHelp_SafeCreate_generic_and_the_ctor_throws() { try { DisposableHelper.SafeCreate <TestTarget>(); } catch (InvalidOperationException ioe) { ioe.Message.Should().Be("Intentionally throwing from .ctor"); } }
public void It_should_dispose_of_all_contained_disposables_in_an_enumerable() { var targetEnumerable = DisposableHelper.SafeCreate <DisposableEnumerable>(); var contained = DisposableHelper.SafeCreate(() => new DisposableItem()); targetEnumerable.AddDisposable(contained); targetEnumerable.Dispose(); contained.IsDisposed.Should().BeTrue(); }
public void It_should_throw_when_disposed() { var target = DisposableHelper.SafeCreate <DisposableItem>(); target.Dispose(); // ReSharper disable once AccessToDisposedClosure Action throwingAction = target.Method; throwingAction.Should().Throw <ObjectDisposedException>(); }
public void It_should_handle_inheritance() { var target = DisposableHelper.SafeCreate <DisposableDescendant>(); var item0 = DisposableHelper.SafeCreate(() => new DisposableItem()); target.SetFlatField(item0); var item1 = DisposableHelper.SafeCreate(() => new DisposableItem()); target.SetAnotherField(item1); target.Dispose(); item1.IsDisposed.Should().BeTrue(); item0.IsDisposed.Should().BeTrue(); }
public ClassWithDictionaryFieldWithDisposableValue() { _field = new Dictionary <string, Mutex> { { "name", DisposableHelper.SafeCreate <Mutex>() } }; }