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); }
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); }
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; }
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; }
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); }
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); }
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); }