public void CanSafelyDisposeContainerTwice()
        {
            DisposableExtension extension = new DisposableExtension();
            IUnityContainer container = new UnityContainer()
                .AddExtension(extension);

            container.Dispose();
            container.Dispose();
        }
        public void CanSafelyDisposeContainerTwice()
        {
            DisposableExtension extension = new DisposableExtension();
            IUnityContainer     container = new UnityContainer()
                                            .AddExtension(extension);

            container.Dispose();
            container.Dispose();
        }
        public void RemovedExtensionsAreDisposed()
        {
            DisposableExtension extension = new DisposableExtension();
            IUnityContainer container = new UnityContainer()
                .AddExtension(extension);

            container.RemoveAllExtensions();

            Assert.IsTrue(extension.Removed);
            Assert.IsTrue(extension.Disposed);
        }
        public void DisposableExtensionsAreDisposedWithContainerButNotRemoved()
        {
            DisposableExtension extension = new DisposableExtension();
            IUnityContainer container = new UnityContainer()
                .AddExtension(extension);

            container.Dispose();

            Assert.IsTrue(extension.Disposed);
            Assert.IsFalse(extension.Removed);
        }
        public void RemovedExtensionsAreDisposed()
        {
            DisposableExtension extension = new DisposableExtension();
            IUnityContainer     container = new UnityContainer()
                                            .AddExtension(extension);

            container.RemoveAllExtensions();

            Assert.IsTrue(extension.Removed);
            Assert.IsTrue(extension.Disposed);
        }
        public void DisposableExtensionsAreDisposedWithContainerButNotRemoved()
        {
            DisposableExtension extension = new DisposableExtension();
            IUnityContainer     container = new UnityContainer()
                                            .AddExtension(extension);

            container.Dispose();

            Assert.IsTrue(extension.Disposed);
            Assert.IsFalse(extension.Removed);
        }
        public void OnlyDisposableExtensionAreDisposed()
        {
            DisposableExtension extension = new DisposableExtension();
            NoopExtension noop = new NoopExtension();

            IUnityContainer container = new UnityContainer()
                .AddExtension(noop)
                .AddExtension(extension);

            container.Dispose();

            Assert.IsTrue(extension.Disposed);
        }
        public void OnlyDisposableExtensionAreDisposed()
        {
            DisposableExtension extension = new DisposableExtension();
            NoopExtension       noop      = new NoopExtension();

            IUnityContainer container = new UnityContainer()
                                        .AddExtension(noop)
                                        .AddExtension(extension);

            container.Dispose();

            Assert.IsTrue(extension.Disposed);
        }