Пример #1
0
        public void TestCached1()
        {
            var gameObject = Container.CreateEmptyGameObject("Foo");

            Container.BindInstance(gameObject).WithId("Foo");

            Container.Bind <Foo>().FromComponent(gameObject).AsCached();
            Container.Bind <IFoo>().To <Foo>().FromComponent(gameObject).AsCached();

            Container.BindRootResolve <IFoo>();
            Container.BindRootResolve <Foo>();
            FixtureUtil.AssertComponentCount <Foo>(Container, 2);
        }
        public IEnumerator TestWithAbstractSearchSingleMatch()
        {
            PreInstall();
            // There are three components that implement INorf on this prefab
            Container.Bind <INorf>().FromComponentInNewPrefabResource(PathPrefix + "Norf").AsCached().NonLazy();

            PostInstall();

            FixtureUtil.AssertNumGameObjects(1);
            FixtureUtil.AssertComponentCount <INorf>(3);
            FixtureUtil.AssertResolveCount <INorf>(Container, 1);
            yield break;
        }
Пример #3
0
        public IEnumerator TestFromNewComponentOnNewGameObjectWithParamsSuccess()
        {
            PreInstall();
            Container.BindFactory <int, Foo2, Foo2.Factory2>().FromNewComponentOnNewGameObject();

            PostInstall();

            Container.Resolve <Foo2.Factory2>().Create(5);

            FixtureUtil.AssertComponentCount <Foo2>(1);
            FixtureUtil.AssertNumGameObjects(1);
            yield break;
        }
Пример #4
0
        public IEnumerator TestFromNewComponentOnNewGameObjectSelf()
        {
            PreInstall();
            Container.BindFactory <string, Foo, Foo.Factory>().FromNewComponentOnNewGameObject();

            AddFactoryUser <Foo, Foo.Factory>();

            PostInstall();

            FixtureUtil.AssertComponentCount <Foo>(1);
            FixtureUtil.AssertNumGameObjects(1);
            yield break;
        }
Пример #5
0
        public IEnumerator TestToGameObjectConcrete()
        {
            PreInstall();
            Container.BindFactory <double, int, float, string, char, IFoo, IFooFactory>().To <Foo>().FromNewComponentOnNewGameObject();

            AddFactoryUser <IFoo, IFooFactory>();

            PostInstall();

            FixtureUtil.AssertComponentCount <Foo>(1);
            FixtureUtil.AssertNumGameObjects(1);
            yield break;
        }
Пример #6
0
        public IEnumerator TestMultipleConcreteTransient1()
        {
            PreInstall();
            Container.Bind <IFoo>().To(typeof(Foo), typeof(Bar)).FromNewComponentOnNewGameObject()
            .WithGameObjectName(GameObjName).AsTransient().NonLazy();

            PostInstall();

            FixtureUtil.AssertNumGameObjects(2);
            FixtureUtil.AssertComponentCount <Foo>(1);
            FixtureUtil.AssertComponentCount <Bar>(1);
            yield break;
        }
        public IEnumerator TestConcreteCachedMultipleContracts()
        {
            PreInstall();
            CommonInstall();

            Container.Bind(typeof(Foo), typeof(IFoo)).To <Foo>().FromSubContainerResolve().ByNewContextPrefab(FooPrefab).AsSingle().NonLazy();

            PostInstall();

            FixtureUtil.AssertNumGameObjects(1);
            FixtureUtil.AssertComponentCount <Foo>(1);
            yield break;
        }
Пример #8
0
        public void TestToMonoBehaviourSelf()
        {
            var gameObject = Container.CreateEmptyGameObject("foo");

            Container.BindFactory <double, int, float, string, char, Foo, Foo.Factory>().FromNewComponentOn(gameObject);

            AddFactoryUser <Foo, Foo.Factory>();

            Initialize();

            FixtureUtil.AssertComponentCount <Foo>(Container, 1);
            FixtureUtil.AssertNumGameObjects(Container, 1);
        }
        public void TestToPrefabResourceConcrete()
        {
            Container.BindFactory <string, IFoo, IFooFactory>().To <Foo>()
            .FromComponentInNewPrefabResource("TestBindFactoryOne/Foo").WithGameObjectName("asdf");

            AddFactoryUser <IFoo, IFooFactory>();

            Initialize();

            FixtureUtil.AssertComponentCount <Foo>(Container, 1);
            FixtureUtil.AssertNumGameObjects(Container, 1);
            FixtureUtil.AssertNumGameObjectsWithName(Container, "asdf", 1);
        }
Пример #10
0
        public void TestCached1()
        {
            Container.Bind <Foo>().FromGameObject().WithGameObjectName(GameObjName).AsCached();
            Container.Bind <IFoo>().To <Foo>().FromGameObject().WithGameObjectName(GameObjName).AsCached();

            Container.BindRootResolve <IFoo>();
            Container.BindRootResolve <Foo>();

            Initialize();

            FixtureUtil.AssertNumGameObjects(Container, 2);
            FixtureUtil.AssertComponentCount <Foo>(Container, 2);
        }
Пример #11
0
        public void TestMultipleConcreteTransient1()
        {
            Container.Bind <IFoo>().To(typeof(Foo), typeof(Bar)).FromGameObject()
            .WithGameObjectName(GameObjName);

            Container.BindRootResolve <IFoo>();

            Initialize();

            FixtureUtil.AssertNumGameObjects(Container, 2);
            FixtureUtil.AssertComponentCount <Foo>(Container, 1);
            FixtureUtil.AssertComponentCount <Bar>(Container, 1);
        }
Пример #12
0
        public void TestConcreteCachedMultipleContracts()
        {
            Container.Bind(typeof(Foo), typeof(IFoo)).To <Foo>().FromSubContainerResolve().ByPrefabResource(FooResourcePath).AsCached();

            Container.BindRootResolve <IFoo>();
            Container.BindRootResolve <IFoo>();
            Container.BindRootResolve <IFoo>();
            Container.BindRootResolve <Foo>();
            Container.BindRootResolve <Foo>();

            FixtureUtil.AssertNumGameObjects(Container, 1);
            FixtureUtil.AssertComponentCount <Foo>(Container, 1);
        }
Пример #13
0
        public IEnumerator TestSelfSingleMultipleContracts()
        {
            PreInstall();
            Container.Bind <Foo>().FromSubContainerResolve().ByNewPrefabResource(FooResourcePath).AsSingle().NonLazy();
            Container.Bind <Bar>().FromSubContainerResolve().ByNewPrefabResource(FooResourcePath).AsSingle().NonLazy();

            PostInstall();

            FixtureUtil.AssertNumGameObjects(1);
            FixtureUtil.AssertComponentCount <Foo>(1);
            FixtureUtil.AssertComponentCount <Bar>(1);
            yield break;
        }
        public IEnumerator TestTransient()
        {
            PreInstall();
            Container.Bind <Foo>().FromComponentInNewPrefabResource(PathPrefix + "Foo").AsTransient();
            Container.Bind <Foo>().FromComponentInNewPrefabResource(PathPrefix + "Foo").AsTransient();

            Container.BindRootResolve <Foo>();

            PostInstall();

            FixtureUtil.AssertComponentCount <Foo>(2);
            yield break;
        }
Пример #15
0
        public void TestSingle2()
        {
            // For ToPrefab, the 'AsSingle' applies to the prefab and not the type, so this is valid
            Container.Bind <IFoo>().To <Foo>().FromPrefabResource(PathPrefix + "Foo").AsSingle();
            Container.Bind <Foo>().FromPrefabResource(PathPrefix + "Foo2").AsSingle();
            Container.Bind <Foo>().FromMethod(ctx => ctx.Container.CreateEmptyGameObject("Foo").AddComponent <Foo>());

            Container.BindRootResolve <Foo>();
            Container.BindRootResolve <IFoo>();

            FixtureUtil.AssertComponentCount <Foo>(Container, 3);
            FixtureUtil.AssertNumGameObjects(Container, 3);
        }
        public void TestToMonoBehaviourConcrete()
        {
            var gameObject = Container.CreateEmptyGameObject("foo");

            Container.BindFactory <string, IFoo, IFooFactory>().To <Foo>().FromNewComponentOn(gameObject);

            AddFactoryUser <IFoo, IFooFactory>();

            Initialize();

            FixtureUtil.AssertComponentCount <Foo>(Container, 1);
            FixtureUtil.AssertNumGameObjects(Container, 1);
        }
Пример #17
0
        public void TestSingleIdentifiers()
        {
            Container.Bind <Foo>().FromPrefabResource(PathPrefix + "Foo").WithGameObjectName("Foo").AsSingle();
            Container.Bind <Bar>().FromPrefabResource(PathPrefix + "Foo").WithGameObjectName("Foo").AsSingle();

            Container.BindRootResolve <Foo>();
            Container.BindRootResolve <Bar>();

            FixtureUtil.AssertNumGameObjects(Container, 1);
            FixtureUtil.AssertComponentCount <Foo>(Container, 1);
            FixtureUtil.AssertComponentCount <Bar>(Container, 1);
            FixtureUtil.AssertNumGameObjectsWithName(Container, "Foo", 1);
        }
Пример #18
0
        public void TestSelfTransientMultipleContracts()
        {
            Container.Bind(typeof(Foo), typeof(Bar)).FromSubContainerResolve().ByNewPrefab(FooPrefab).AsTransient();

            Container.BindRootResolve <Foo>();
            Container.BindRootResolve <Bar>();

            Initialize();

            FixtureUtil.AssertNumGameObjects(Container, 2);
            FixtureUtil.AssertComponentCount <Foo>(Container, 2);
            FixtureUtil.AssertComponentCount <Bar>(Container, 2);
        }
Пример #19
0
        public void TestBasic()
        {
            var gameObject = Container.CreateEmptyGameObject("Foo");

            Container.BindInstance(gameObject, true).WithId("Foo");

            Container.Bind <Foo>().FromComponent(gameObject).AsSingle();
            Container.BindRootResolve <Foo>();

            Initialize();

            FixtureUtil.AssertComponentCount <Foo>(Container, 1);
        }
Пример #20
0
        public void TestConcreteCached()
        {
            Container.Bind <IFoo>().To <Foo>().FromSubContainerResolve().ByNewPrefab(FooPrefab).AsCached();

            Container.BindRootResolve <IFoo>();
            Container.BindRootResolve <IFoo>();
            Container.BindRootResolve <IFoo>();

            Initialize();

            FixtureUtil.AssertNumGameObjects(Container, 1);
            FixtureUtil.AssertComponentCount <Foo>(Container, 1);
        }
        public IEnumerator TestSelfCached()
        {
            PreInstall();
            CommonInstall();

            Container.Bind <Foo>().FromSubContainerResolve().ByNewContextPrefab(FooPrefab).AsSingle().NonLazy();

            PostInstall();

            FixtureUtil.AssertNumGameObjects(1);
            FixtureUtil.AssertComponentCount <Foo>(1);
            yield break;
        }
Пример #22
0
        public void TestSelfTransient()
        {
            Container.Bind <Foo>().FromSubContainerResolve().ByNewPrefab(FooPrefab).AsTransient();

            Container.BindRootResolve <Foo>();
            Container.BindRootResolve <Foo>();
            Container.BindRootResolve <Foo>();

            Initialize();

            FixtureUtil.AssertNumGameObjects(Container, 3);
            FixtureUtil.AssertComponentCount <Foo>(Container, 3);
        }
Пример #23
0
        public IEnumerator TestToSubContainerPrefabResourceSelf()
        {
            PreInstall();
            Container.BindFactory <double, int, float, string, char, Foo, Foo.Factory>().FromSubContainerResolve().ByNewPrefabResource <FooInstaller>("TestBindFactoryFive/FooSubContainer");

            AddFactoryUser <Foo, Foo.Factory>();

            PostInstall();

            FixtureUtil.AssertComponentCount <Foo>(1);
            FixtureUtil.AssertNumGameObjects(1);
            yield break;
        }
Пример #24
0
        public void TestConcreteTransient()
        {
            Container.Bind <IFoo>().To <Foo>().FromSubContainerResolve().ByPrefabResource(FooResourcePath).AsTransient();

            Container.BindRootResolve <IFoo>();
            Container.BindRootResolve <IFoo>();
            Container.BindRootResolve <IFoo>();

            Initialize();

            FixtureUtil.AssertNumGameObjects(Container, 3);
            FixtureUtil.AssertComponentCount <Foo>(Container, 3);
        }
Пример #25
0
        public void TestWithArguments()
        {
            Container.Bind(typeof(Gorp), typeof(Qux))
            .FromPrefabResource(PathPrefix + "GorpAndQux").WithGameObjectName("GorpAndQux").AsCached()
            .WithArguments(5, "test1").NonLazy();

            Initialize();

            FixtureUtil.AssertNumGameObjects(Container, 1);
            FixtureUtil.AssertComponentCount <Gorp>(Container, 1);
            FixtureUtil.AssertComponentCount <Qux>(Container, 1);
            FixtureUtil.AssertNumGameObjectsWithName(Container, "GorpAndQux", 1);
        }
Пример #26
0
        public void TestSelfCached()
        {
            Container.Bind <Foo>().FromSubContainerResolve().ByPrefabResource(FooResourcePath).AsCached();

            Container.BindRootResolve <Foo>();
            Container.BindRootResolve <Foo>();
            Container.BindRootResolve <Foo>();

            Initialize();

            FixtureUtil.AssertNumGameObjects(Container, 1);
            FixtureUtil.AssertComponentCount <Foo>(Container, 1);
        }
Пример #27
0
        public IEnumerator TestToSubContainerPrefabResourceConcrete()
        {
            PreInstall();
            Container.BindFactory <IFoo, IFooFactory>()
            .To <Foo>().FromSubContainerResolve().ByNewPrefabResource("TestBindFactory/FooSubContainer");

            PostInstall();

            FixtureUtil.CallFactoryCreateMethod <IFoo, IFooFactory>(Container);
            FixtureUtil.AssertComponentCount <Foo>(1);
            FixtureUtil.AssertNumGameObjects(1);
            yield break;
        }
Пример #28
0
        public IEnumerator TestSelfTransient()
        {
            PreInstall();
            CommonInstall();

            Container.Bind <Foo>().FromSubContainerResolve().ByNewContextPrefabResource(FooResourcePath).AsTransient().NonLazy();

            PostInstall();

            FixtureUtil.AssertNumGameObjects(1);
            FixtureUtil.AssertComponentCount <Foo>(1);
            yield break;
        }
Пример #29
0
        public IEnumerator TestToSubContainerPrefabSelf()
        {
            PreInstall();
            Container.BindFactory <Foo, Foo.Factory>().FromSubContainerResolve().ByNewPrefab(FooSubContainerPrefab);

            PostInstall();

            FixtureUtil.CallFactoryCreateMethod <Foo, Foo.Factory>(Container);

            FixtureUtil.AssertComponentCount <Foo>(1);
            FixtureUtil.AssertNumGameObjects(1);
            yield break;
        }
Пример #30
0
        public void TestTransient()
        {
            var gameObject = Container.CreateEmptyGameObject("Foo");

            Container.BindInstance(gameObject).WithId("Foo");

            Container.Bind <Foo>().FromComponent(gameObject).AsTransient();
            Container.Bind <IFoo>().To <Foo>().FromComponent(gameObject).AsTransient();

            Container.BindRootResolve(new[] { typeof(IFoo), typeof(Foo) });

            FixtureUtil.AssertComponentCount <Foo>(Container, 2);
        }