示例#1
0
        public void TestPartialParametersInChild()
        {
            var modules = new INinjectModule[]
            {
                new TestModuleChilds(),
            };

            _kernel = new StandardKernel();
            _kernel.Components.Add <IActivationStrategy, MyMonitorActivationStrategy>();

            _kernel.Load(modules);

            var main1 = _kernel.Get <SomeMainModule>();
            var main2 = _kernel.Get <SomeMainModule>();

            Assert.AreSame(main1, main2);

            var             factory          = _kernel.Get <IFactory <SomeTimedModule> >();
            SomeTimedModule someTimedModule1 = factory.Create();
            SomeTimedModule someTimedModule2 = factory.Create();

            Assert.AreNotSame(someTimedModule1.InnerModule, someTimedModule2.InnerModule);

            SomeTimedObject someTimedObject = someTimedModule1.ObjFactory.CreateWithParams(1);


            Assert.AreSame(someTimedObject.ModuleTimed, someTimedModule1.InnerModule);
            Assert.AreSame(someTimedObject.Module, main2);

            SomeTimedObject someTimedObject2 = someTimedModule1.ObjFactory.CreateWithParams(2);

            Assert.AreNotSame(someTimedObject2.TimedObjectInner, someTimedObject.TimedObjectInner);
            Assert.AreSame(someTimedObject2.TimedObjectInner, someTimedObject2.InnerInner.Inner);
        }
        public void TestBindingParameters()
        {
            var modules = new INinjectModule[]
            {
                new TestModuleChilds(),
            };

            _kernel = new StandardKernel();
            _kernel.Components.Add <IActivationStrategy, MyMonitorActivationStrategy>();

            _kernel.Load(modules);

            var             factory          = _kernel.Get <IBindingFactory <SomeTimedModule> >();
            SomeTimedModule someTimedModule1 = factory.CreateWithBindings(new SomeObject(3));

            Assert.AreEqual(someTimedModule1.SomeObject.Parameter,
                            someTimedModule1.InnerModule.SomeObject.Parameter);
        }