public void DependencyInConstructor()
        {
            Type service = typeof( ISpamService );
            Type implementation = typeof( SimpleSpamService );
            Type serviceDep = typeof( IMailService );
            Type implementationDep = typeof( SimpleMailService );

            kernel.AddComponent( "a", service, implementation );
            kernel.AddComponent( "b", serviceDep, implementationDep );

            IComponentModel model = new DefaultComponentModelBuilder(kernel).BuildModel(
                "a", service, implementation );

            Hashtable serv2Handler = new Hashtable();
            serv2Handler[ serviceDep ] = kernel.GetHandlerForService( serviceDep );

            BaseComponentFactory factory = new BaseComponentFactory(
                kernel, null, model, serv2Handler );

            Object instance = factory.Incarnate();

            AssertNotNull( instance );
            AssertNotNull( instance as ISpamService );

            SimpleSpamService spamService = (SimpleSpamService) instance;
            AssertNotNull( spamService.m_mailService );

            factory.Etherialize( instance );
        }
示例#2
0
        protected virtual void CreateComponentFactoryAndLifestyleManager()
        {
            IComponentFactory factory = new BaseComponentFactory(
                Kernel, this, ComponentModel, m_serv2handler);

            m_lifestyleManager = Kernel.LifestyleManagerFactory.Create(
                factory, ComponentModel);
        }
        public void DependencyInSetMethods()
        {
            Type service = typeof( IMailMarketingService );
            Type implementation = typeof( SimpleMailMarketingService );
            Type serviceDep1 = typeof( IMailService );
            Type implementationDep1 = typeof( SimpleMailService );
            Type serviceDep2 = typeof( ICustomerManager );
            Type implementationDep2 = typeof( SimpleCustomerManager );

            kernel.AddComponent( "a", service, implementation );
            kernel.AddComponent( "b", serviceDep1, implementationDep1 );
            kernel.AddComponent( "c", serviceDep2, implementationDep2 );

            IComponentModel model = new DefaultComponentModelBuilder(kernel).BuildModel(
                "a", service, implementation );

            Hashtable serv2Handler = new Hashtable();
            serv2Handler[ serviceDep1 ] = kernel.GetHandlerForService( serviceDep1 );
            serv2Handler[ serviceDep2 ] = kernel.GetHandlerForService( serviceDep2 );

            BaseComponentFactory factory = new BaseComponentFactory(
                kernel, null, model, serv2Handler );

            Object instance = factory.Incarnate();

            AssertNotNull( instance );
            AssertNotNull( instance as IMailMarketingService );

            SimpleMailMarketingService mailMarketing = (SimpleMailMarketingService) instance;
            AssertNotNull( mailMarketing.m_mailService );
            AssertNotNull( mailMarketing.m_customerManager );

            mailMarketing.AnnoyMillionsOfPeople( "Say something" );

            factory.Etherialize( instance );
        }
        public void NoArgumentsConstructor()
        {
            Type service = typeof( IMailService );
            Type implementation = typeof( SimpleMailService );

            kernel.AddComponent( "a", service, implementation );

            IComponentModel model = new DefaultComponentModelBuilder(kernel).BuildModel( "a", service, implementation );

            BaseComponentFactory factory = new BaseComponentFactory(
                kernel, null,
                model, new Hashtable() );

            Object instance = factory.Incarnate();

            AssertNotNull( instance );
            AssertNotNull( instance as IMailService );

            factory.Etherialize( instance );
        }