public void FailsWithNoPersistenceExceptionTranslators()
 {
     GenericApplicationContext gac = new GenericApplicationContext();
     gac.RegisterObjectDefinition("translator", new RootObjectDefinition(typeof(PersistenceExceptionTranslationPostProcessor)));
     gac.RegisterObjectDefinition("proxied", new RootObjectDefinition(typeof(StereotypedRepositoryInterfaceImpl)));
     try
     {
         gac.Refresh();
         Assert.Fail("Should fail with no translators");
     } catch (ObjectsException)
     {
         // expected.
     }
 }
        protected override void CreateApplicationContext()
        {
            GenericApplicationContext ctx = new GenericApplicationContext();

            var configDefinitionBuilder = ObjectDefinitionBuilder.GenericObjectDefinition(typeof(TheConfigurationClass));
            ctx.RegisterObjectDefinition(configDefinitionBuilder.ObjectDefinition.ObjectTypeName, configDefinitionBuilder.ObjectDefinition);

            var postProcessorDefintionBuilder = ObjectDefinitionBuilder.GenericObjectDefinition(typeof(ConfigurationClassPostProcessor));
            ctx.RegisterObjectDefinition(postProcessorDefintionBuilder.ObjectDefinition.ObjectTypeName, postProcessorDefintionBuilder.ObjectDefinition);

            Assert.That(ctx.ObjectDefinitionCount, Is.EqualTo(2));

            ctx.Refresh();

            _ctx = ctx;
        }
        public void ProxiesCorrectly()
        {
            GenericApplicationContext gac = new GenericApplicationContext();
            gac.RegisterObjectDefinition("translator", new RootObjectDefinition(typeof(PersistenceExceptionTranslationPostProcessor)));
            gac.RegisterObjectDefinition("notProxied", new RootObjectDefinition(typeof(RepositoryInterfaceImpl)));
            gac.RegisterObjectDefinition("proxied",
                                         new RootObjectDefinition(typeof (StereotypedRepositoryInterfaceImpl)));            
            gac.RegisterObjectDefinition("chainedTranslator",
                                         new RootObjectDefinition(typeof (ChainedPersistenceExceptionTranslator)));
            gac.Refresh();
            
            IRepositoryInterface shouldNotBeProxied = (IRepositoryInterface) gac.GetObject("notProxied");
            Assert.IsFalse(AopUtils.IsAopProxy(shouldNotBeProxied));

            IRepositoryInterface shouldBeProxied = (IRepositoryInterface) gac.GetObject("proxied");
            Assert.IsTrue(AopUtils.IsAopProxy(shouldBeProxied));

            CheckWillTranslateExceptions(shouldBeProxied);

        }
コード例 #4
0
        public void Simple()
        {
            GenericApplicationContext ctx = new GenericApplicationContext();
            IObjectDefinitionFactory objectDefinitionFactory = new DefaultObjectDefinitionFactory();

            ObjectDefinitionBuilder builder = ObjectDefinitionBuilder.RootObjectDefinition(objectDefinitionFactory,
                                                                                           typeof (TestObject));
            
            builder.AddPropertyValue("Age", 22)
                .AddPropertyValue("Name", "Joe")
                .AddPropertyReference("Spouse", "Spouse")
                .SetSingleton(false);
            
            ctx.RegisterObjectDefinition("TestObject", builder.ObjectDefinition);

            builder = ObjectDefinitionBuilder.RootObjectDefinition(objectDefinitionFactory, typeof(TestObject));

            IList friends = new ArrayList();
            friends.Add(new TestObject("Dan", 34));
            friends.Add(new TestObject("Mary", 33));
            builder.AddPropertyValue("Friends", friends)
                .AddConstructorArg("Susan")
                .AddConstructorArg(23)
                .SetSingleton(false);

           ctx.RegisterObjectDefinition("Spouse", builder.ObjectDefinition);


            

            TestObject to = ctx.GetObject("TestObject") as TestObject;

            Assert.IsNotNull(to);

            Assert.AreEqual("Joe", to.Name);
            Assert.AreEqual(22, to.Age);
            Assert.AreEqual(2,to.Spouse.Friends.Count);
            Assert.AreEqual(23, to.Spouse.Age);

            /*
            AbstractApplicationContext ctx = ContextRegistry.GetContext() as AbstractApplicationContext;



            //XmlObjectFactory objectFactory = ctx.ObjectFactory as XmlObjectFactory;

            IObjectFactory objectFactory = ctx.ObjectFactory;

            //DefaultListableObjectFactory
            if (objectFactory != null)
            {
                Console.WriteLine("hi");
            }
            //objectFactory.RegisterObjectDefinition("TestObject", builder.ObjectDefinition);
             */
                



        }
        public void Factory_WhenObtainedFromContainer_HasContainerConfiguration()
        {
            RootObjectDefinition productTemplate = new RootObjectDefinition();
            productTemplate.PropertyValues.Add(new Spring.Objects.PropertyValue("ChannelManager.ChannelFactory.Credentials.UserName.UserName", "un"));
            productTemplate.PropertyValues.Add(new Spring.Objects.PropertyValue("ChannelManager.ChannelFactory.Credentials.UserName.Password", "pw"));
            GenericApplicationContext context = new GenericApplicationContext();
            IObjectDefinitionFactory objectDefinitionFactory = new DefaultObjectDefinitionFactory();
            ObjectDefinitionBuilder builder = ObjectDefinitionBuilder.RootObjectDefinition(objectDefinitionFactory, typeof(ChannelManagerFactoryObject));
            builder.AddPropertyValue("EndpointConfigurationName",EndpointName);
            builder.AddPropertyValue("ChannelType",typeof(IService));
            builder.AddPropertyValue("ProductTemplate", productTemplate);
            context.RegisterObjectDefinition("myChannelFactoryObject", builder.ObjectDefinition);

            var obj = context.GetObject("myChannelFactoryObject")as ProxyChannel<IService>;

            Assert.IsNotNull(obj);
            ChannelManagerBase<IService> channelManager = obj.ChannelManager as ChannelManagerBase<IService>;
            Assert.IsNotNull(channelManager);
            Assert.AreEqual("un", ((ChannelFactory<IService>)channelManager.ChannelFactory).Credentials.UserName.UserName);
            Assert.AreEqual("pw", ((ChannelFactory<IService>)channelManager.ChannelFactory).Credentials.UserName.Password);
        }
コード例 #6
0
ファイル: Program.cs プロジェクト: fgq841103/spring-net
        private static IApplicationContext CreateContextProgrammatically()
	    {
            InitializeCommonLogging();
	        GenericApplicationContext ctx = new GenericApplicationContext();
            
            IObjectDefinitionFactory objectDefinitionFactory = new DefaultObjectDefinitionFactory();
            
            
            //Create MovieLister and dependency on 
            ObjectDefinitionBuilder builder = 
                ObjectDefinitionBuilder.RootObjectDefinition(objectDefinitionFactory, typeof(MovieLister));
	        builder.AddPropertyReference("MovieFinder", "AnotherMovieFinder");   

	        ctx.RegisterObjectDefinition("MyMovieLister", builder.ObjectDefinition);

            builder = ObjectDefinitionBuilder.RootObjectDefinition(objectDefinitionFactory, typeof(ColonDelimitedMovieFinder));
	        builder.AddConstructorArg("movies.txt");
	        ctx.RegisterObjectDefinition("AnotherMovieFinder", builder.ObjectDefinition);

            ctx.Refresh();

	        return ctx;

	    }
コード例 #7
0
ファイル: Program.cs プロジェクト: fgq841103/spring-net
        private static IApplicationContext CreateContextMixXmlAndProgrammatic()
        {

            GenericApplicationContext ctx = new GenericApplicationContext();

            IObjectDefinitionReader objectDefinitionReader = new XmlObjectDefinitionReader(ctx);
            objectDefinitionReader.LoadObjectDefinitions("assembly://Spring.IocQuickStart.MovieFinder/Spring.IocQuickStart.MovieFinder/AppContextContribution.xml");

            IObjectDefinitionFactory objectDefinitionFactory = new DefaultObjectDefinitionFactory();
            ObjectDefinitionBuilder builder = 
                ObjectDefinitionBuilder.RootObjectDefinition(objectDefinitionFactory, typeof(ColonDelimitedMovieFinder));
            builder.AddConstructorArg("movies.txt");
            ctx.RegisterObjectDefinition("AnotherMovieFinder", builder.ObjectDefinition);
            

            ctx.Refresh();
            
            return ctx;
        }
コード例 #8
0
        public void ContainerResolvesMayonnaiseConfiguredByApi()
        {
            var context = new GenericApplicationContext();
            context.RegisterObjectDefinition("EggYolk",
                new RootObjectDefinition(typeof(EggYolk)));
            context.RegisterObjectDefinition("OliveOil",
                new RootObjectDefinition(typeof(OliveOil)));
            context.RegisterObjectDefinition("Mayonnaise",
                new RootObjectDefinition(typeof(Mayonnaise),
                    AutoWiringMode.AutoDetect));
            var mayo = context.GetObject("Mayonnaise");

            Assert.IsAssignableFrom<Mayonnaise>(mayo);
        }
コード例 #9
0
 public void ConfigureContainerUsingApi()
 {
     var context = new GenericApplicationContext();
     context.RegisterObjectDefinition("Sauce",
         new RootObjectDefinition(typeof(SauceBéarnaise)));
     var sauce = context.GetObject("Sauce");
     Assert.IsAssignableFrom<SauceBéarnaise>(sauce);
 }
コード例 #10
0
ファイル: SpringExec.cs プロジェクト: pusp/o2platform
        public static object createTypeSetPropertiesAndInvokeMethod(Type tTargetType, String sMethodToInvoke,
                                                                    Dictionary<String, Object> dProperties)
        {
            string sFactoryObject = "FactoryObject";
            string sInvokeResult = "InvokeResult";
            var ctx = new GenericApplicationContext();

            // create factory Object,  add (if required) its properties to it and register it
            var rodFactoryObject = new RootObjectDefinition {ObjectType = tTargetType};
            if (dProperties != null)
                foreach (String sProperty in dProperties.Keys)
                    rodFactoryObject.PropertyValues.Add(sProperty, dProperties[sProperty]);

            ctx.RegisterObjectDefinition(sFactoryObject, rodFactoryObject);

            // create object to invoke method and register it

            var rodMethodToInvoke = new RootObjectDefinition
                                        {
                                            FactoryMethodName = sMethodToInvoke,
                                            FactoryObjectName = sFactoryObject
                                        };

            ctx.RegisterObjectDefinition(sInvokeResult, rodMethodToInvoke);

            // when we get the rodMethodToInvoke object, the rodFactoryObject will be created
            return ctx.GetObject(sInvokeResult);
        }