public void grandChildInjectorSuppliesInjectionFromAncestor()
        {
            Injector      childInjector;
            Injector      grandChildInjector;
            ClassInjectee injectee = new ClassInjectee();

            injector.Map(typeof(Clazz)).ToSingleton <Clazz>();
            childInjector      = injector.CreateChildInjector();
            grandChildInjector = childInjector.CreateChildInjector();

            grandChildInjector.InjectInto(injectee);

            Assert.IsInstanceOf <Clazz>(injectee.property, "injectee has been injected with Clazz instance from grandChildInjector");
        }
        public void parentMappedSingletonGetsInitializedByParentWhenInvokedThroughChildInjector()
        {
            Clazz parentClazz = new Clazz();

            injector.Map(typeof(Clazz)).ToValue(parentClazz);
            injector.Map(typeof(ClassInjectee)).AsSingleton();
            Injector childInjector = injector.CreateChildInjector();
            Clazz    childClazz    = new Clazz();

            childInjector.Map(typeof(Clazz)).ToValue(childClazz);

            ClassInjectee classInjectee = childInjector.GetInstance <ClassInjectee>();

            Assert.AreEqual(classInjectee.property, parentClazz, "classInjectee.property is injected with value mapped in parent injector");
        }