public void TestSelfDependency()
 {
     if (Container.ChecksForCircularDependencies)
     {
         Container.Bind <Test7>().AsSingle();
         Assert.Throws(() => Container.Instantiate <Test7>());
     }
 }
Пример #2
0
        public void TestExpandManually()
        {
            Container.BindMemoryPool <Foo, Foo.Pool>();

            var factory = Container.Resolve <Foo.Pool>();

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

            factory.ExpandPoolBy(2);

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

            var foo = factory.Spawn();

            Assert.IsEqual(factory.NumActive, 1);
            Assert.IsEqual(factory.NumTotal, 2);
            Assert.IsEqual(factory.NumInactive, 1);

            factory.ExpandPoolBy(3);

            Assert.IsEqual(factory.NumActive, 1);
            Assert.IsEqual(factory.NumTotal, 5);
            Assert.IsEqual(factory.NumInactive, 4);

            var foo2 = factory.Spawn();

            Assert.IsEqual(factory.NumActive, 2);
            Assert.IsEqual(factory.NumTotal, 5);
            Assert.IsEqual(factory.NumInactive, 3);

            var foo3 = factory.Spawn();

            Assert.IsEqual(factory.NumActive, 3);
            Assert.IsEqual(factory.NumTotal, 5);
            Assert.IsEqual(factory.NumInactive, 2);

            factory.ExpandPoolBy(1);

            Assert.IsEqual(factory.NumActive, 3);
            Assert.IsEqual(factory.NumTotal, 6);
            Assert.IsEqual(factory.NumInactive, 3);

            factory.Despawn(foo2);

            Assert.IsEqual(factory.NumActive, 2);
            Assert.IsEqual(factory.NumTotal, 6);
            Assert.IsEqual(factory.NumInactive, 4);

            var foo4 = factory.Spawn();

            Assert.IsEqual(factory.NumActive, 3);
            Assert.IsEqual(factory.NumTotal, 6);
            Assert.IsEqual(factory.NumInactive, 3);
        }
Пример #3
0
        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));
        }
        public void TestConcrete()
        {
            Container.BindFactory <string, int, string, float, int, IFoo, IFooFactory>().To <Foo>().NonLazy();

            var ifoo = Container.Resolve <IFooFactory>().Create("asdf", 2, "a", 4.2f, 6);

            Assert.IsNotNull(ifoo);
            Assert.IsEqual(((Foo)ifoo).P1, "asdf");
        }
        public void TestOutsideObjectGraph2()
        {
            Container.Settings = new ZenjectSettings(
                ValidationErrorResponses.Throw, RootResolveMethods.All);

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

            Assert.Throws(() => Container.ResolveRoots());
        }
        public void TestMethodSelfSingle()
        {
            Container.Bind <Foo>().FromSubContainerResolve().ByMethod(InstallFooFacade).AsSingle().NonLazy();

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

            Assert.IsNotNull(foo.Bar);
            Assert.IsEqual(foo, Container.Resolve <Foo>());
        }
        public void TestSuccessFieldInjectionEnum()
        {
            Container.Bind <Test4>().AsTransient().NonLazy();

            Container.Bind <Test0>().FromInstance(new Test0()).NonLazy();
            Container.Bind <Test0>().WithId("TestValue3").FromInstance(new Test0()).NonLazy();

            Assert.IsNotNull(Container.Resolve <Test4>());
        }
        public IEnumerator Hides_After_Duration()
        {
            yield return(Shows_After_Duration());

            _popup.Hide(null);
            yield return(new WaitForSeconds(Duration));

            Assert.IsEqual(Vector3.zero, _popup.transform.localScale);
        }
        public void TestInjectConstructorOfStruct()
        {
            Container.BindInstance("asdf");
            Container.Bind <Test4>().AsSingle();

            var test4 = Container.Instantiate <Test4>();

            Assert.IsEqual(test4.Value, "asdf");
        }
Пример #10
0
        public void TestResolveManyTransient()
        {
            Container.Bind <Foo>().AsTransient();
            Container.Bind <Foo>().FromInstance(new Foo());

            Container.Bind <IFoo>().To <Foo>().FromResolveAll();

            Assert.IsEqual(Container.ResolveAll <IFoo>().Count, 2);
        }
Пример #11
0
        public void TestCase6()
        {
            Container.Bind <ITest1>().To <Test2>().AsSingle().NonLazy();
            Container.Bind <Test0>().AsSingle().When(c => c.AllObjectTypes.Where(x => typeof(ITest1).IsAssignableFrom(x)).Any());

            var test1 = Container.Resolve <ITest1>();

            Assert.That(test1 != null);
        }
Пример #12
0
        public void TestBindAllInterfacesSimple()
        {
            var container = new DiContainer();

            container.Bind(x => x.AllInterfaces()).To <Foo>().AsTransient();

            Assert.That(container.Resolve <IFoo>() is Foo);
            Assert.That(container.Resolve <IBar>() is Foo);
        }
        public void TestParent3()
        {
            var rootContainer = new DiContainer();

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

            Assert.Throws(() => rootContainer.Resolve <Test2>());
        }
        public void TestBasic3()
        {
            Container.Bind <Test0>().WithId("foo").FromMethod(ctx => new Test0()).NonLazy();

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

            Container.ResolveId <Test0>("foo");
        }
        public void TestBasic2()
        {
            Container.Bind <Test0>().WithId("foo").AsSingle().NonLazy();

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

            Container.ResolveId <Test0>("foo");
        }
        public void TestConcrete()
        {
            Container.BindFactory <string, IFoo, IFooFactory>().To <Foo>().NonLazy();

            var ifoo = Container.Resolve <IFooFactory>().Create("asdf");

            Assert.IsNotNull(ifoo);
            Assert.IsEqual(((Foo)ifoo).Value, "asdf");
        }
Пример #17
0
        public void TestCase2()
        {
            Container.Bind <Test1>().AsSingle().NonLazy();
            Container.Bind <Test0>().AsSingle().When(c => c.AllObjectTypes.Contains(typeof(Test1)));

            var test1 = Container.Resolve <Test1>();

            Assert.That(test1 != null);
        }
Пример #18
0
        public void TestCaseBaseClassPropertyInjection()
        {
            Container.Bind <Test0>().AsSingle().NonLazy();
            Container.Bind <Test2>().AsSingle().NonLazy();

            var test1 = Container.Resolve <Test2>();

            Assert.That(test1.GetVal() != null);
        }
Пример #19
0
        public void TestCase1()
        {
            Container.Bind <Test0>().To <Test1>().AsSingle();
            Container.Bind <Test0>().To <Test2>().AsSingle();

            List <Test0> many = Container.ResolveAll <Test0>();

            Assert.That(many.Count == 2);
        }
        public void TestMultipleChooseLeastArguments()
        {
            Container.Bind <Bar>().AsSingle().NonLazy();
            Container.Bind <Gorp>().AsSingle().NonLazy();

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

            Assert.IsEqual(gorp.ChosenConstructor, 1);
        }
Пример #21
0
        public void TestOptional3()
        {
            Container.Bind <Gorp>().AsSingle();

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

            Assert.Throws(() => temp = gorp.Bar.Value);
        }
Пример #22
0
        public void TestIsDeclared1()
        {
            Container.DeclareSignal <FooSignal>();
            Container.ResolveRoots();

            var signalBus = Container.Resolve <SignalBus>();

            Assert.That(signalBus.IsSignalDeclared <FooSignal>());
        }
Пример #23
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>());
        }
Пример #24
0
        public void TestAllInterfaces()
        {
            Container.BindInterfacesTo <Foo>().AsSingle().NonLazy();

            Assert.IsNull(Container.TryResolve <Foo>());

            Assert.IsNotNull(Container.Resolve <IFoo>());
            Assert.IsNotNull(Container.Resolve <IQux>());
        }
        public void TestNullValues()
        {
            Container.Bind <Foo>().AsSingle().WithArguments(3, (string)null);

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

            Assert.IsEqual(foo.Value, 3);
            Assert.IsEqual(foo.Value2, null);
        }
        public void TestInstallerSelfSingle()
        {
            Container.Bind <Foo>().FromSubContainerResolve().ByInstaller <FooInstaller>().AsSingle().NonLazy();

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

            Assert.IsNotNull(foo.Bar);
            Assert.IsEqual(foo, Container.Resolve <Foo>());
        }
Пример #27
0
            public void Run()
            {
                var foo = _fooFactory.Create();

                foo.DoSomething();

                var result = foo.GetTest();

                Assert.IsNull(result);
            }
        public void TestSingle5()
        {
            // This is weird but consistent with how AsSingle is interpreted for other From types
            // like FromSubcontainerResolve, FromComponentInPrefab, etc.
            // The 'single' is really refering to the fact that it's a single resolve handler, not a
            // single instance
            Container.Bind <Foo>().FromMethodMultipleUntyped(ctx => new[] { new Foo(), new Foo() }).AsSingle().NonLazy();

            Assert.IsEqual(Container.ResolveAll <Foo>().Count, 2);
        }
        public void Run()
        {
            Container.Bind <ITest>().To <Test2>().AsSingle();

            Assert.IsNotNull(Container.Resolve <ITest>());

            Container.Unbind <ITest>();

            Assert.IsNull(Container.TryResolve <ITest>());
        }
Пример #30
0
        public void TestInitialSize()
        {
            Container.BindMemoryPool <Foo, Foo.Pool>().WithInitialSize(5);

            var factory = Container.Resolve <Foo.Pool>();

            Assert.IsEqual(factory.NumActive, 0);
            Assert.IsEqual(factory.NumTotal, 5);
            Assert.IsEqual(factory.NumInactive, 5);
        }