public void CanDisposeChildWithoutDisposingParent() { DisposableObject parentSpy = new DisposableObject(); DisposableObject childSpy = new DisposableObject(); UnityContainer parent = new UnityContainer(); parent.RegisterInstance(parentSpy); IUnityContainer child = parent.CreateChildContainer() .RegisterInstance(childSpy); child.Dispose(); Assert.False(parentSpy.WasDisposed); Assert.True(childSpy.WasDisposed); childSpy.WasDisposed = false; parent.Dispose(); Assert.True(parentSpy.WasDisposed); Assert.False(childSpy.WasDisposed); }
public void DisposingParentDisposesChild() { UnityContainer parent = new UnityContainer(); IUnityContainer child = parent.CreateChildContainer(); DisposableObject spy = new DisposableObject(); child.RegisterInstance<DisposableObject>(spy); parent.Dispose(); Assert.True(spy.WasDisposed); }