コード例 #1
0
ファイル: TestFrom.cs プロジェクト: UniDi/UniDi
        public void TestSelfTransient()
        {
            Container.Bind <Foo>().AsTransient().NonLazy();

            Assert.IsNotNull(Container.Resolve <Foo>());
            Assert.IsNotEqual(Container.Resolve <Foo>(), Container.Resolve <Foo>());
        }
コード例 #2
0
ファイル: TestFrom.cs プロジェクト: UniDi/UniDi
        public void TestConcreteTransient2()
        {
            Container.Bind <IFoo>().To <Foo>().AsTransient().NonLazy();

            Assert.IsNotNull(Container.Resolve <IFoo>());
            Assert.IsNotEqual(Container.Resolve <IFoo>(), Container.Resolve <IFoo>());
        }
コード例 #3
0
ファイル: TestFromResolve.cs プロジェクト: UniDi/UniDi
        public void TestCached()
        {
            Container.Bind <Foo>().AsTransient();
            Container.Bind <IFoo>().To <Foo>().FromResolve().AsCached();

            Assert.IsNotEqual(Container.Resolve <Foo>(), Container.Resolve <Foo>());
            Assert.IsEqual(Container.Resolve <IFoo>(), Container.Resolve <IFoo>());
        }
コード例 #4
0
        public void TestCopyIntoAll1()
        {
            Container.Bind <Foo>().AsSingle().CopyIntoAllSubContainers();

            var sub1 = Container.CreateSubContainer();

            Assert.IsNotEqual(sub1.Resolve <Foo>(), Container.Resolve <Foo>());
        }
コード例 #5
0
ファイル: TestArrayPool.cs プロジェクト: UniDi/UniDi
        public void RunTest()
        {
            var pool = ArrayPool <string> .GetPool(2);

            pool.Clear();
            pool.ClearActiveCount();

            Assert.IsEqual(pool.NumActive, 0);
            Assert.IsEqual(pool.NumInactive, 0);
            Assert.IsEqual(pool.NumTotal, 0);

            var arr1 = pool.Spawn();

            Assert.IsEqual(arr1.Length, 2);

            arr1[0] = "asdf";
            arr1[1] = "zbx";

            Assert.IsEqual(pool.NumActive, 1);
            Assert.IsEqual(pool.NumInactive, 0);
            Assert.IsEqual(pool.NumTotal, 1);

            pool.Despawn(arr1);

            Assert.IsEqual(pool.NumActive, 0);
            Assert.IsEqual(pool.NumInactive, 1);
            Assert.IsEqual(pool.NumTotal, 1);

            var arr2 = pool.Spawn();

            Assert.IsEqual(arr2.Length, 2);
            Assert.IsNull(arr2[0]);
            Assert.IsNull(arr2[1]);

            Assert.IsEqual(arr2.Length, 2);
            Assert.IsEqual(arr2, arr1);

            Assert.IsEqual(pool.NumActive, 1);
            Assert.IsEqual(pool.NumInactive, 0);
            Assert.IsEqual(pool.NumTotal, 1);

            var arr3 = pool.Spawn();

            Assert.IsNotEqual(arr2, arr3);

            Assert.IsEqual(pool.NumActive, 2);
            Assert.IsEqual(pool.NumInactive, 0);
            Assert.IsEqual(pool.NumTotal, 2);

            pool.Despawn(arr3);
            pool.Despawn(arr2);

            Assert.IsEqual(pool.NumActive, 0);
            Assert.IsEqual(pool.NumInactive, 2);
            Assert.IsEqual(pool.NumTotal, 2);

            Assert.Throws(() => pool.Despawn(arr3));
        }
コード例 #6
0
        public void TestMethodSelfTransient()
        {
            Container.Bind <Foo>().FromSubContainerResolve().ByMethod(InstallFooFacade).AsTransient().NonLazy();

            var foo = Container.Resolve <Foo>();

            Assert.IsNotNull(foo.Bar);
            Assert.IsNotEqual(foo, Container.Resolve <Foo>());
        }
コード例 #7
0
        public void TestInstallerSelfTransient()
        {
            Container.Bind <Foo>().FromSubContainerResolve().ByInstaller <FooInstaller>().AsTransient().NonLazy();

            var foo = Container.Resolve <Foo>();

            Assert.IsNotNull(foo.Bar);
            Assert.IsNotEqual(foo, Container.Resolve <Foo>());
        }
コード例 #8
0
ファイル: TestConditionsBasic.cs プロジェクト: UniDi/UniDi
        public void Test2()
        {
            Container.Bind <Bar1>().AsSingle().NonLazy();
            Container.Bind <Bar2>().AsSingle().NonLazy();
            Container.Bind <IFoo>().To <Foo1>().AsSingle().NonLazy();
            Container.Bind <IFoo>().To <Foo2>().AsSingle().WhenNotInjectedInto <Bar1>().NonLazy();

            Assert.IsNotEqual(
                Container.Resolve <Bar1>().Foo, Container.Resolve <Bar2>().Foo);
        }
コード例 #9
0
ファイル: TestFrom.cs プロジェクト: UniDi/UniDi
        public void TestMultipleBindingsTransient()
        {
            Container.Bind(typeof(IFoo), typeof(IBar)).To <Foo>().AsTransient().NonLazy();

            Assert.That(Container.Resolve <IFoo>() is Foo);
            Assert.That(Container.Resolve <IBar>() is Foo);

            Assert.IsNotEqual(Container.Resolve <IFoo>(), Container.Resolve <IFoo>());
            Assert.IsNotEqual(Container.Resolve <IFoo>(), Container.Resolve <IBar>());
        }
コード例 #10
0
ファイル: TestFrom.cs プロジェクト: UniDi/UniDi
        public void TestConcreteCached()
        {
            Container.Bind <Foo>().AsCached().NonLazy();
            Container.Bind <IFoo>().To <Foo>().AsCached().NonLazy();

            Assert.IsNotNull(Container.Resolve <Foo>());
            Assert.IsNotNull(Container.Resolve <IFoo>());

            Assert.IsEqual(Container.Resolve <IFoo>(), Container.Resolve <IFoo>());
            Assert.IsEqual(Container.Resolve <Foo>(), Container.Resolve <Foo>());
            Assert.IsNotEqual(Container.Resolve <IFoo>(), Container.Resolve <Foo>());
        }
コード例 #11
0
ファイル: TestStaticMemoryPool.cs プロジェクト: UniDi/UniDi
        public void TestListPool()
        {
            var pool = ListPool <string> .Instance;

            pool.Clear();
            pool.ClearActiveCount();

            Assert.IsEqual(pool.NumActive, 0);
            Assert.IsEqual(pool.NumInactive, 0);
            Assert.IsEqual(pool.NumTotal, 0);

            var list = pool.Spawn();

            list.Add("asdf");
            list.Add("zbx");

            Assert.IsEqual(pool.NumActive, 1);
            Assert.IsEqual(pool.NumInactive, 0);
            Assert.IsEqual(pool.NumTotal, 1);

            pool.Despawn(list);

            Assert.IsEqual(pool.NumActive, 0);
            Assert.IsEqual(pool.NumInactive, 1);
            Assert.IsEqual(pool.NumTotal, 1);

            var list2 = pool.Spawn();

            Assert.IsEqual(list2.Count, 0);
            Assert.IsEqual(list2, list);

            Assert.IsEqual(pool.NumActive, 1);
            Assert.IsEqual(pool.NumInactive, 0);
            Assert.IsEqual(pool.NumTotal, 1);

            var list3 = pool.Spawn();

            Assert.IsNotEqual(list2, list3);

            Assert.IsEqual(pool.NumActive, 2);
            Assert.IsEqual(pool.NumInactive, 0);
            Assert.IsEqual(pool.NumTotal, 2);

            pool.Despawn(list3);
            pool.Despawn(list2);

            Assert.IsEqual(pool.NumActive, 0);
            Assert.IsEqual(pool.NumInactive, 2);
            Assert.IsEqual(pool.NumTotal, 2);

            Assert.Throws(() => pool.Despawn(list3));
        }
コード例 #12
0
ファイル: TestFrom.cs プロジェクト: UniDi/UniDi
        public void TestConcreteMultipleTransient()
        {
            Container.Bind <IFoo>().To(typeof(Foo), typeof(Bar)).AsTransient().NonLazy();

            var foos = Container.ResolveAll <IFoo>();

            Assert.IsEqual(foos.Count, 2);
            Assert.That(foos[0] is Foo);
            Assert.That(foos[1] is Bar);

            var foos2 = Container.ResolveAll <IFoo>();

            Assert.IsNotEqual(foos[0], foos2[0]);
            Assert.IsNotEqual(foos[1], foos2[1]);
        }
コード例 #13
0
ファイル: TestSubContainers4.cs プロジェクト: UniDi/UniDi
        public void RunTest()
        {
            SetupContainer();

            var view1 = Container.Resolve <RotorView>();

            Assert.IsEqual(view1.Controller.Model, view1.Model);

            var view2 = Container.Resolve <RotorView>();

            Assert.IsEqual(view2.Controller.Model, view2.Model);

            Assert.IsNotEqual(view2.Model, view1.Model);
            Assert.IsNotEqual(view2, view1);
        }
コード例 #14
0
ファイル: TestFrom.cs プロジェクト: UniDi/UniDi
        public void TestMultipleBindingsConcreteMultipleTransient()
        {
            Container.Bind(typeof(IFoo), typeof(IBar)).To(new List <Type> {
                typeof(Foo), typeof(Bar)
            }).AsTransient().NonLazy();

            var foos = Container.ResolveAll <IFoo>();
            var bars = Container.ResolveAll <IBar>();

            Assert.IsEqual(foos.Count, 2);
            Assert.IsEqual(bars.Count, 2);

            Assert.That(foos[0] is Foo);
            Assert.That(foos[1] is Bar);

            Assert.IsNotEqual(foos[0], bars[0]);
            Assert.IsNotEqual(foos[1], bars[1]);
        }
コード例 #15
0
        public void TestFactoryScopeTransient()
        {
            Container.BindMemoryPool <Foo, Foo.Pool>().AsTransient();

            Assert.IsNotEqual(Container.Resolve <Foo.Pool>(), Container.Resolve <Foo.Pool>());
        }