コード例 #1
0
        public void CanAskContainerContainsById()
        {
            BuilderContainer container = new BuilderContainer();
            Foo f = container.BuildUp <Foo>("Foo");

            Assert.IsTrue(container.Contains("Foo"));
        }
コード例 #2
0
        public void CannotSetComponentNameThroughSite()
        {
            BuilderContainer container = new BuilderContainer();
            Component        component = container.BuildUp <Component>("Foo");

            component.Site.Name = "Bar";
        }
コード例 #3
0
        public void CanAskContainerContainsByTypeAndId()
        {
            BuilderContainer container = new BuilderContainer();
            Foo f = container.BuildUp <Foo>("Foo");

            Assert.IsTrue(container.Contains(typeof(Foo), "Foo"));
        }
コード例 #4
0
        public void BuildSetsSite()
        {
            BuilderContainer container = new BuilderContainer();

            Component component = container.BuildUp <Component>("Foo");

            Assert.IsNotNull(component.Site);
        }
コード例 #5
0
        public void SiteNameMatchesBuiltId()
        {
            BuilderContainer container = new BuilderContainer();

            Component component = container.BuildUp <Component>("Foo");

            Assert.AreEqual("Foo", component.Site.Name);
        }
コード例 #6
0
        public void CanBuildObject()
        {
            BuilderContainer container = new BuilderContainer();

            Foo f = container.BuildUp <Foo>();

            Assert.IsNotNull(f);
        }
コード例 #7
0
        public void BuildUpWithIdIsContainerManagedAndSingleton()
        {
            BuilderContainer container = new BuilderContainer();

            Foo f  = container.BuildUp <Foo>("foo");
            Foo f2 = container.BuildUp <Foo>("foo");

            Assert.AreSame(f, f2);
        }
コード例 #8
0
        public void BuildUpWithoutIdIsNotContainerManaged()
        {
            BuilderContainer container = new BuilderContainer();

            Foo f = container.BuildUp <Foo>();

            Assert.IsNotNull(f);
            Assert.IsFalse(((ILifetimeContainer)container).Contains(f));
        }
コード例 #9
0
        public void GetServiceLocatesInContainerByType()
        {
            BuilderContainer container = new BuilderContainer();
            FooComponent     component = container.BuildUp <FooComponent>("Foo");

            object service = component.GetService <ILifetimeContainer>();

            Assert.IsNotNull(service);
        }
コード例 #10
0
        public void DisposeRemovesSite()
        {
            BuilderContainer container = new BuilderContainer();
            Component        component = container.BuildUp <Component>("Foo");

            component.Dispose();

            Assert.IsNull(component.Site);
        }
コード例 #11
0
        public void DisposeRemovesFromContainer()
        {
            BuilderContainer container = new BuilderContainer();
            Component        component = container.BuildUp <Component>("Foo");

            component.Dispose();

            Assert.IsFalse(container.Contains("Foo"));
        }
コード例 #12
0
        public void DisposedEventListenedByContainerForSingletonObject()
        {
            BuilderContainer container = new BuilderContainer();
            DisposableFoo    foo       = container.BuildUp <DisposableFoo>("Foo");

            foo.Dispose();

            Assert.IsFalse(container.Contains("Foo"));
        }
コード例 #13
0
        public void DisposedEventListenedByContainerForSingletonComponent()
        {
            BuilderContainer container = new BuilderContainer();
            Component        c1        = container.BuildUp <Component>("Foo");

            c1.Dispose();

            Assert.IsFalse(container.Contains("Foo"));
        }
コード例 #14
0
        public void ApplyBuilderWithoutIdIsNotContainerManaged()
        {
            BuilderContainer container = new BuilderContainer();

            Foo f = new Foo();

            container.ApplyBuilder <Foo>(f);

            Assert.IsFalse(((ILifetimeContainer)container).Contains(f));
        }
コード例 #15
0
        public void CanRegisterImplementationType()
        {
            BuilderContainer container = new BuilderContainer();

            container.Register <IFoo, Foo>();

            IFoo foo = container.BuildUp <IFoo>();

            Assert.IsTrue(foo is Foo);
        }
コード例 #16
0
        public void DisposingContainerDoesNotDisposeNonSingletons()
        {
            bool             disposed  = false;
            BuilderContainer container = new BuilderContainer();
            Component        c1        = container.BuildUp <Component>();

            c1.Disposed += delegate { disposed = true; };
            container.Dispose();

            Assert.IsFalse(disposed);
        }
コード例 #17
0
        public void DisposingContainerDisposesManagedSingletonObjects()
        {
            bool             disposed  = false;
            BuilderContainer container = new BuilderContainer();
            Component        c1        = container.BuildUp <Component>("Foo");

            c1.Disposed += delegate { disposed = true; };
            container.Dispose();

            Assert.IsTrue(disposed);
        }
コード例 #18
0
        public void ApplyBuilderWithIdIsContainerManagedAndSingleton()
        {
            BuilderContainer container = new BuilderContainer();

            Foo f = new Foo();

            container.ApplyBuilder <Foo>(f, "foo");
            Foo f2 = container.BuildUp <Foo>("foo");

            Assert.IsTrue(((ILifetimeContainer)container).Contains(f));
            Assert.AreSame(f, f2);
        }
コード例 #19
0
        public void CanConstructContainer()
        {
            BuilderContainer container = new BuilderContainer();

            Assert.IsNotNull(container);
        }
コード例 #20
0
        public void CanDisposeContainer()
        {
            BuilderContainer container = new BuilderContainer();

            container.Dispose();
        }