public void SimpleIOCRegsiterDependency()
        {
            var simpleIOC = new SimpleIOC();

            // 注册依赖
            simpleIOC.Register <ISimpleIOC, SimpleIOC>();

            var ioc = simpleIOC.Resolve <ISimpleIOC>();

            Debug.Log(ioc.GetType());
            // 通过 ISimpleIOC 获取的对象类型应该是 SimpleIOC
            Assert.AreEqual(ioc.GetType(), typeof(SimpleIOC));
        }
        public void SimpleIOCRegisterResolveTest()
        {
            var simpleIOC = new SimpleIOC();

            simpleIOC.Register <SimpleIOC>();


            var obj = simpleIOC.Resolve <SimpleIOC>();

            // 是否创建了实例
            Assert.IsNotNull(obj);

            // 不相同 说明是 创建了实例
            Assert.AreNotEqual(simpleIOC, obj);
        }
        public void SimpleIOCInject()
        {
            var simpleIOC = new SimpleIOC();

            // 注册依赖
            simpleIOC.RegisterInstance(new SomeDependencyA());

            simpleIOC.Register <SomeDependencyB>();

            var someCtrl = new SomeCtrl();

            simpleIOC.Inject(someCtrl);

            Assert.IsNotNull(someCtrl.A);
            Assert.IsNotNull(someCtrl.B);

            Assert.AreEqual(someCtrl.A.GetType(), typeof(SomeDependencyA));
            Assert.AreEqual(someCtrl.B.GetType(), typeof(SomeDependencyB));
        }
        public void SimpleIOCClear()
        {
            var simpleIOC = new SimpleIOC();

            // 注册依赖
            simpleIOC.RegisterInstance(new SomeDependencyA());
            simpleIOC.RegisterInstance <ISimpleIOC>(simpleIOC);
            simpleIOC.Register <SomeDependencyB>();

            simpleIOC.Clear();

            // 获取对象
            var someDependencyA = simpleIOC.Resolve <SomeDependencyA>();
            var someDependencyB = simpleIOC.Resolve <SomeDependencyB>();
            var ioc             = simpleIOC.Resolve <ISimpleIOC>();

            // 全部为空才对
            Assert.IsNull(someDependencyA);
            Assert.IsNull(someDependencyB);
            Assert.IsNull(ioc);
        }