コード例 #1
0
        public void TestAllInterfacesAndSelfMistake()
        {
            Container.BindInterfacesAndSelfTo <Foo>();

            // Should require setting scope
            Assert.Throws(() => Container.FlushBindings());
        }
コード例 #2
0
ファイル: TestSubContainers.cs プロジェクト: UniDi/UniDi
        public void TestCase2()
        {
            Test0 test0;
            Test1 test1;

            var subContainer = Container.CreateSubContainer();
            var test0Local   = new Test0();

            subContainer.Bind <Test0>().FromInstance(test0Local);
            subContainer.Bind <Test1>().AsSingle();

            test0 = subContainer.Resolve <Test0>();
            Assert.IsEqual(test0Local, test0);

            test1 = subContainer.Resolve <Test1>();

            Assert.Throws(
                delegate { Container.Resolve <Test0>(); });

            Assert.Throws(
                delegate { Container.Resolve <Test1>(); });

            Container.Bind <Test0>().AsSingle();
            Container.Bind <Test1>().AsSingle();

            Assert.That(Container.Resolve <Test0>() != test0);

            Assert.That(Container.Resolve <Test1>() != test1);
        }
コード例 #3
0
        public void TestEnumIdentifiers2()
        {
            Container.Bind <Foo>().WithId(Things.Thing2).AsTransient();
            Container.Bind <Test2>().AsTransient();

            Assert.Throws(() => Container.Resolve <Test2>());
        }
コード例 #4
0
        public void TestInstallerSelfIdentifiersFails()
        {
            Container.Bind <Gorp>().FromSubContainerResolve()
            .ByInstance(CreateFooSubContainer()).AsSingle().NonLazy();

            Assert.Throws(() => Container.Resolve <Gorp>());
        }
コード例 #5
0
ファイル: TestFromInstance.cs プロジェクト: UniDi/UniDi
        public void TestSingle()
        {
            Container.Bind <Foo>().FromInstance(new Foo()).AsSingle().NonLazy();
            Container.Bind <Foo>().AsSingle().NonLazy();

            Assert.Throws(() => Container.FlushBindings());
        }
コード例 #6
0
        public void TestUnspecifiedNameConstructorInjection()
        {
            Container.Bind <Test1>().AsTransient().NonLazy();
            Container.Bind <Test0>().AsTransient().NonLazy();

            Assert.Throws(
                delegate { Container.Resolve <Test1>(); });
        }
コード例 #7
0
        public void TestSingleFailure()
        {
            Container.Bind <Foo>().AsCached();
            Container.Bind <Foo>().AsCached();
            Container.Bind <Bar>().FromResolveGetter <Foo>(x => x.Bar).AsSingle();

            Assert.Throws(() => Container.Resolve <Bar>());
        }
コード例 #8
0
ファイル: TestIFactory.cs プロジェクト: UniDi/UniDi
        public void Test2Error()
        {
            Container.BindIFactory <FooTwo>();

            var factory = Container.Resolve <IFactory <FooTwo> >();

            Assert.Throws(() => factory.Create());
        }
コード例 #9
0
        public void TestThrows()
        {
            Container.Bind <Foo1>().AsSingle();
            Container.Bind <Bar1>().AsSingle();

            Assert.Throws(() => Container.Resolve <Foo1>());
            Assert.Throws(() => Container.Resolve <Bar1>());
        }
コード例 #10
0
        public void TestCase1()
        {
            Container.Bind <Test1>().AsSingle().NonLazy();
            Container.Bind <Test0>().AsSingle().When(c => c.AllObjectTypes.Contains(typeof(Test2)));

            Assert.Throws(
                delegate { Container.Resolve <Test1>(); });
        }
コード例 #11
0
ファイル: TestFrom.cs プロジェクト: UniDi/UniDi
        public void TestDuplicateBindingsFail()
        {
            Container.Bind <Foo>().AsSingle();
            Container.Bind <Foo>().AsSingle();

            Assert.Throws(
                () => Container.FlushBindings());
        }
コード例 #12
0
ファイル: TestTestOptional.cs プロジェクト: UniDi/UniDi
        public void TestChildDependencyOptional()
        {
            Container.Bind <Test6>().AsSingle().NonLazy();
            Container.Bind <Test2>().AsSingle().NonLazy();

            Assert.Throws(
                delegate { Container.Resolve <Test6>(); });
        }
コード例 #13
0
        public void TestValidationErrorThrows()
        {
            Container.Settings = new UniDiSettings(ValidationErrorResponses.Throw);

            Container.Bind <Bar>().AsSingle().NonLazy();

            Assert.Throws(() => Container.ResolveRoots());
        }
コード例 #14
0
        public void TestFail2()
        {
            Container.Bind <ISaveHandler>().To <SaveHandler>().FromResolve(Guid.NewGuid()).AsSingle();
            Container.Decorate <ISaveHandler>().With <SaveDecorator1>();
            Container.Bind <Foo>().AsSingle().NonLazy();

            Assert.Throws(() => Container.ResolveRoots());
        }
コード例 #15
0
ファイル: TestFromResolve.cs プロジェクト: UniDi/UniDi
        public void TestSingleFailure()
        {
            Container.Bind <Foo>().AsCached();
            Container.Bind <Foo>().AsCached();
            Container.Bind <IFoo>().To <Foo>().FromResolve();

            Assert.Throws(() => Container.Resolve <IFoo>());
        }
コード例 #16
0
 public void TestSelfDependency()
 {
     if (Container.ChecksForCircularDependencies)
     {
         Container.Bind <Test7>().AsSingle();
         Assert.Throws(() => Container.Instantiate <Test7>());
     }
 }
コード例 #17
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));
        }
コード例 #18
0
        public void TestOutsideObjectGraph2()
        {
            Container.Settings = new UniDiSettings(
                ValidationErrorResponses.Throw, RootResolveMethods.All);

            Container.Bind <Bar>().AsSingle();

            Assert.Throws(() => Container.ResolveRoots());
        }
コード例 #19
0
ファイル: TestIdentifiers.cs プロジェクト: UniDi/UniDi
        public void TestBasic3()
        {
            Container.Bind <Test0>().WithId("foo").FromMethod(ctx => new Test0()).NonLazy();

            Assert.Throws(
                delegate { Container.Resolve <Test0>(); });

            Container.ResolveId <Test0>("foo");
        }
コード例 #20
0
        public void TestMultiBind2()
        {
            // Multi-binds should not map to single-binds
            Container.Bind <Test0>().To <Test3>().AsSingle().NonLazy();
            Container.Bind <Test0>().To <Test4>().AsSingle().NonLazy();
            Container.Bind <Test2>().AsSingle().NonLazy();

            Assert.Throws(() => Container.Resolve <Test2>());
        }
コード例 #21
0
ファイル: TestInjectSources.cs プロジェクト: UniDi/UniDi
        public void TestParent3()
        {
            var rootContainer = new DiContainer();

            rootContainer.Bind <Test0>().AsSingle();
            rootContainer.Bind <Test2>().AsSingle();

            Assert.Throws(() => rootContainer.Resolve <Test2>());
        }
コード例 #22
0
ファイル: TestLazy.cs プロジェクト: UniDi/UniDi
        public void TestOptional3()
        {
            Container.Bind <Gorp>().AsSingle();

            var    gorp = Container.Resolve <Gorp>();
            object temp;

            Assert.Throws(() => temp = gorp.Bar.Value);
        }
コード例 #23
0
ファイル: TestIdentifiers.cs プロジェクト: UniDi/UniDi
        public void TestBasic2()
        {
            Container.Bind <Test0>().WithId("foo").AsSingle().NonLazy();

            Assert.Throws(
                delegate { Container.Resolve <Test0>(); });

            Container.ResolveId <Test0>("foo");
        }
コード例 #24
0
        public void TestCaseDuplicateInjection()
        {
            Container.Bind <Test0>().AsCached();
            Container.Bind <Test0>().AsCached();

            Container.Bind <Test1>().AsSingle();

            Assert.Throws(
                delegate { Container.Resolve <Test1>(); });
        }
コード例 #25
0
ファイル: TestInjectSources.cs プロジェクト: UniDi/UniDi
        public void TestLocal1()
        {
            var rootContainer = new DiContainer();
            var sub1          = rootContainer.CreateSubContainer();

            rootContainer.Bind <Test0>().AsSingle();
            sub1.Bind <Test1>().AsSingle();

            Assert.Throws(() => sub1.Resolve <Test1>());
        }
コード例 #26
0
ファイル: TestInjectSources.cs プロジェクト: UniDi/UniDi
        public void TestParent2()
        {
            var rootContainer = new DiContainer();
            var sub1          = rootContainer.CreateSubContainer();
            var sub2          = sub1.CreateSubContainer();

            rootContainer.Bind <Test0>().AsSingle();
            sub2.Bind <Test2>().AsSingle();

            Assert.Throws(() => sub2.Resolve <Test2>());
        }
コード例 #27
0
        public void TestConstructorInject()
        {
            if (Container.ChecksForCircularDependencies)
            {
                Container.Bind <Test5>().AsSingle().NonLazy();
                Container.Bind <Test6>().AsSingle().NonLazy();

                Assert.Throws(() => Container.Resolve <Test5>());
                Assert.Throws(() => Container.Resolve <Test6>());
            }
        }
コード例 #28
0
        public void TestFailure()
        {
            var container = new DiContainer(true);

            container.Settings = new UniDiSettings(
                ValidationErrorResponses.Throw, RootResolveMethods.All);

            container.BindFactory <Foo, Foo.Factory>().FromPoolableMemoryPool(x => x.WithInitialSize(2));

            Assert.Throws(() => container.ResolveRoots());
        }
コード例 #29
0
ファイル: TestValidation.cs プロジェクト: UniDi/UniDi
        public void TestSubContainerMethodFailure()
        {
            Container.Bind <Qux>().FromSubContainerResolve().ByMethod(
                container =>
            {
                container.Bind <Qux>().AsSingle();
                container.Bind <Bar>().AsSingle();
            })
            .AsSingle();

            Assert.Throws(() => Container.ResolveRoots());
        }
コード例 #30
0
ファイル: TestSubContainers.cs プロジェクト: UniDi/UniDi
        public void TestIsRemoved()
        {
            var subContainer = Container.CreateSubContainer();
            var test1        = new Test0();

            subContainer.Bind <Test0>().FromInstance(test1);

            Assert.That(ReferenceEquals(test1, subContainer.Resolve <Test0>()));

            Assert.Throws(
                delegate { Container.Resolve <Test0>(); });
        }