public void WithExpressionProperty() { StaticApplicationContext ac = new StaticApplicationContext(); MutablePropertyValues pvs = new MutablePropertyValues(); pvs.Add("age", new ExpressionHolder("${age}")); ac.RegisterSingleton("to1", typeof(TestObject), pvs); pvs = new MutablePropertyValues(); NameValueCollection nvc = new NameValueCollection(); nvc.Add("age", "'0x7FFFFFFF'"); pvs.Add("properties", nvc); ac.RegisterSingleton("configurer", typeof(PropertyPlaceholderConfigurer), pvs); ac.Refresh(); TestObject to1 = (TestObject)ac.GetObject("to1");; Assert.AreEqual(2147483647, to1.Age); }
public void OverridePropertyReference() { StaticApplicationContext ac = new StaticApplicationContext(); MutablePropertyValues pvs = new MutablePropertyValues(); pvs.Add("Spouse", new RuntimeObjectReference("spouse1")); ac.RegisterSingleton("tb1", typeof(TestObject), pvs); ac.RegisterSingleton("spouse1", typeof(TestObject), new MutablePropertyValues()); ac.RegisterSingleton("spouse2", typeof(TestObject), new MutablePropertyValues()); pvs = new MutablePropertyValues(); pvs.Add("Properties", "<spring-config><add key=\"tb1.Spouse\" value=\"spouse2\"/></spring-config>"); ac.RegisterSingleton("configurer", typeof(PropertyOverrideConfigurer), pvs); ac.Refresh(); TestObject tb1 = (TestObject)ac.GetObject("tb1"); TestObject spouse2 = (TestObject)ac.GetObject("spouse2"); Assert.AreEqual(spouse2, tb1.Spouse); }
public void WithOverridingEnvironmentProperty() { StaticApplicationContext ac = new StaticApplicationContext(); MutablePropertyValues pvs = new MutablePropertyValues(); pvs.Add("touchy", "${PROCESSOR_ARCHITECTURE}"); ac.RegisterSingleton("to", typeof(TestObject), pvs); pvs = new MutablePropertyValues(); NameValueCollection nvc = new NameValueCollection(); nvc.Add("PROCESSOR_ARCHITECTURE", "G5"); pvs.Add("properties", nvc); pvs.Add("environmentVariableMode", EnvironmentVariableMode.Override); ac.RegisterSingleton("configurer", typeof(PropertyPlaceholderConfigurer), pvs); ac.Refresh(); TestObject to = (TestObject)ac["to"]; Assert.AreEqual(Environment.GetEnvironmentVariable("PROCESSOR_ARCHITECTURE"), to.Touchy); }
public void WithCircularReference() { StaticApplicationContext ac = new StaticApplicationContext(); MutablePropertyValues pvs = new MutablePropertyValues(); pvs.Add("age", "${age}"); pvs.Add("name", "name${var}"); pvs.Add("spouse", new RuntimeObjectReference("${ref}")); ac.RegisterSingleton("tb1", typeof(TestObject), pvs); pvs = new MutablePropertyValues(); pvs.Add("age", "${age}"); pvs.Add("name", "name${age}"); ac.RegisterSingleton("tb2", typeof(TestObject), pvs); pvs = new MutablePropertyValues(); pvs.Add("Properties", "<spring-config><add key=\"age\" value=\"99\"/><add key=\"var\" value=\"${m}var\"/><add key=\"ref\" value=\"tb2\"/><add key=\"m\" value=\"${var}\"/></spring-config>"); ac.RegisterSingleton("configurer1", typeof(PropertyPlaceholderConfigurer), pvs); pvs = new MutablePropertyValues(); pvs.Add("Properties", "<spring-config><add key=\"age\" value=\"98\"/></spring-config>"); pvs.Add("order", "0"); ac.RegisterSingleton("configurer2", typeof(PropertyPlaceholderConfigurer), pvs); Assert.Throws <ObjectDefinitionStoreException>(() => ac.Refresh()); }
protected virtual void RegisterObjects(StaticApplicationContext appContext) { var initializer = new NHibernateSimpleInitializer(); INHibernateMappingsFinderEnumerator mappingsFinder = null; { List <INHibernateMappingsFinder> list = new List <INHibernateMappingsFinder>(2); if ((this.MappingsFinderType & MappingsFinderTypes.Assembly) == MappingsFinderTypes.Assembly) { list.Add(new NHibernateAssemblyMappingsFinder("CTI", "ITB")); } if ((this.MappingsFinderType & MappingsFinderTypes.Directory) == MappingsFinderTypes.Directory) { list.Add(new NHibernateDirectoryMappingsFinder(this.MappingsPath)); } mappingsFinder = new NHibernateMappingsFinderList(list); } _sessionProvider = new SessionProvider(initializer, mappingsFinder); //appContext.ObjectFactory.RegisterSingleton("SessionProvider", _sessionProvider); _uowFactory = new Itb.DalCore.NHibernate.UnitOfWork.NHibernateUnitOfWorkFactory(_sessionProvider); appContext.ObjectFactory.RegisterSingleton("UnitOfWorkFactory", _uowFactory); }
public void TestSchedulerFactoryObjectWithApplicationContext() { TestObject tb = new TestObject("tb", 99); StaticApplicationContext ac = new StaticApplicationContext(); IScheduler scheduler = (IScheduler)mockery.CreateMock(typeof(IScheduler)); SchedulerContext schedulerContext = new SchedulerContext(); Expect.Call(scheduler.Context).Return(schedulerContext).Repeat.Times(4); scheduler.Start(); scheduler.Shutdown(false); mockery.ReplayAll(); SchedulerFactoryObject schedulerFactoryObject = new TestSchedulerFactoryObject(scheduler); schedulerFactoryObject.JobFactory = (null); IDictionary schedulerContextMap = new Hashtable(); schedulerContextMap.Add("testObject", tb); schedulerFactoryObject.SchedulerContextAsMap = (schedulerContextMap); schedulerFactoryObject.ApplicationContext = (ac); schedulerFactoryObject.ApplicationContextSchedulerContextKey = ("appCtx"); try { schedulerFactoryObject.AfterPropertiesSet(); schedulerFactoryObject.Start(); IScheduler returnedScheduler = (IScheduler)schedulerFactoryObject.GetObject(); Assert.AreEqual(tb, returnedScheduler.Context["testObject"]); Assert.AreEqual(ac, returnedScheduler.Context["appCtx"]); } finally { schedulerFactoryObject.Dispose(); } mockery.VerifyAll(); }
public void AddPropertyValue() { StaticApplicationContext ac = new StaticApplicationContext(); ac.RegisterSingleton("tb1", typeof(TestObject), new MutablePropertyValues()); ac.RegisterSingleton("tb2", typeof(TestObject), new MutablePropertyValues()); MutablePropertyValues pvs = new MutablePropertyValues(); pvs.Add("Properties", "<spring-config><add key=\"tb1.Age\" value=\"99\"/><add key=\"tb2.Name\" value=\"test\"/></spring-config>"); ac.RegisterSingleton("configurer1", typeof(PropertyOverrideConfigurer), pvs); pvs = new MutablePropertyValues(); pvs.Add("Properties", "<spring-config><add key=\"tb2.Age\" value=\"99\"/><add key=\"tb2.Name\" value=\"test\"/></spring-config>"); pvs.Add("order", "0"); ac.RegisterSingleton("configurer2", typeof(PropertyOverrideConfigurer), pvs); ac.Refresh(); TestObject tb1 = (TestObject)ac.GetObject("tb1"); TestObject tb2 = (TestObject)ac.GetObject("tb2"); Assert.AreEqual(99, tb1.Age); Assert.AreEqual(99, tb2.Age); Assert.AreEqual(null, tb1.Name); Assert.AreEqual("test", tb2.Name); }
public void IgnoresUnresolvableVariable() { StaticApplicationContext ac = new StaticApplicationContext(); MutablePropertyValues pvs = new MutablePropertyValues(); pvs.Add("name", "${name}"); pvs.Add("nickname", "${nickname}"); ac.RegisterSingleton("tb1", typeof(TestObject), pvs); VariablePlaceholderConfigurer vpc = new VariablePlaceholderConfigurer(); vpc.IgnoreUnresolvablePlaceholders = true; vpc.VariableSource = new DictionaryVariableSource(new string[] { "name", "Erich" }); ac.AddObjectFactoryPostProcessor(vpc); ac.Refresh(); TestObject tb1 = (TestObject)ac.GetObject("tb1"); Assert.AreEqual("Erich", tb1.Name); Assert.AreEqual("${nickname}", tb1.Nickname); }
public void WhitespaceHandling() { StaticApplicationContext ac = new StaticApplicationContext(); MutablePropertyValues pvs = new MutablePropertyValues(); pvs.Add("name", "${name}"); pvs.Add("nickname", "${nickname}"); ac.RegisterSingleton("tb1", typeof(TestObject), pvs); IList variableSources = new ArrayList(); variableSources.Add(new DictionaryVariableSource(new string[] { "name", string.Empty, "nickname", null })); pvs = new MutablePropertyValues(); pvs.Add("VariableSources", variableSources); ac.RegisterSingleton("configurer", typeof(VariablePlaceholderConfigurer), pvs); ac.Refresh(); TestObject tb1 = (TestObject)ac.GetObject("tb1"); Assert.AreEqual(string.Empty, tb1.Name); Assert.AreEqual(null, tb1.Nickname); }
public void CanCreateFromExplicitConfiguration() { string SESSIONFACTORY_OBJECTNAME = "SessionFactory"; string ENTITYINTERCEPTOR_OBJECTNAME = "EntityInterceptor"; MockRepository mocks = new MockRepository(); ISessionFactory expectedSessionFactory = mocks.StrictMock <ISessionFactory>(); IInterceptor expectedEntityInterceptor = mocks.StrictMock <IInterceptor>(); bool expectedSingleSession = false; FlushMode expectedDefaultFlushMode = FlushMode.Auto; // create and register context StaticApplicationContext appCtx = new StaticApplicationContext(); appCtx.Name = AbstractApplicationContext.DefaultRootContextName; appCtx.ObjectFactory.RegisterSingleton(SESSIONFACTORY_OBJECTNAME, expectedSessionFactory); appCtx.ObjectFactory.RegisterSingleton(ENTITYINTERCEPTOR_OBJECTNAME, expectedEntityInterceptor); ContextRegistry.Clear(); ContextRegistry.RegisterContext(appCtx); // simulate config section string thisTypeName = this.GetType().FullName; DictionaryVariableSource variableSource = new DictionaryVariableSource() .Add(thisTypeName + ".SessionFactoryObjectName", SESSIONFACTORY_OBJECTNAME) .Add(thisTypeName + ".EntityInterceptorObjectName", ENTITYINTERCEPTOR_OBJECTNAME) .Add(thisTypeName + ".SingleSession", expectedSingleSession.ToString().ToLower()) // case insensitive! .Add(thisTypeName + ".DefaultFlushMode", expectedDefaultFlushMode.ToString().ToLower()) // case insensitive! ; ConfigSectionSessionScopeSettings settings = new ConfigSectionSessionScopeSettings(this.GetType(), variableSource); Assert.AreEqual(expectedSessionFactory, settings.SessionFactory); Assert.AreEqual(expectedEntityInterceptor, settings.EntityInterceptor); Assert.AreEqual(expectedSingleSession, settings.SingleSession); Assert.AreEqual(expectedDefaultFlushMode, settings.DefaultFlushMode); }
public void ChainedResolution() { StaticApplicationContext ac = new StaticApplicationContext(); MutablePropertyValues pvs = new MutablePropertyValues(); pvs.Add("name", "${name}"); pvs.Add("nickname", "${nickname}"); ac.RegisterSingleton("tb1", typeof(TestObject), pvs); IList variableSources = new ArrayList(); variableSources.Add(new DictionaryVariableSource(new string[] { "name", "name-value" })); variableSources.Add(new DictionaryVariableSource(new string[] { "nickname", "nickname-value" })); VariablePlaceholderConfigurer vphc = new VariablePlaceholderConfigurer(variableSources); ac.AddObjectFactoryPostProcessor(vphc); ac.Refresh(); TestObject tb1 = (TestObject)ac.GetObject("tb1"); Assert.AreEqual("name-value", tb1.Name); Assert.AreEqual("nickname-value", tb1.Nickname); }
static ApplicationManager() { ApplicationContext = new StaticApplicationContext(); }
public void SunnyDay() { StaticApplicationContext ac = new StaticApplicationContext(); MutablePropertyValues pvs = new MutablePropertyValues(); pvs.Add("age", "${age}"); RootObjectDefinition def = new RootObjectDefinition("${fqn}", new ConstructorArgumentValues(), pvs); ac.RegisterObjectDefinition("tb3", def); pvs = new MutablePropertyValues(); pvs.Add("age", "${age}"); pvs.Add("name", "name${var}${"); pvs.Add("spouse", new RuntimeObjectReference("${ref}")); ac.RegisterSingleton("tb1", typeof(TestObject), pvs); ConstructorArgumentValues cas = new ConstructorArgumentValues(); cas.AddIndexedArgumentValue(1, "${age}"); cas.AddGenericArgumentValue("${var}name${age}"); pvs = new MutablePropertyValues(); ArrayList friends = new ManagedList(); friends.Add("na${age}me"); friends.Add(new RuntimeObjectReference("${ref}")); pvs.Add("friends", friends); ISet someSet = new ManagedSet(); someSet.Add("na${age}me"); someSet.Add(new RuntimeObjectReference("${ref}")); pvs.Add("someSet", someSet); IDictionary someDictionary = new ManagedDictionary(); someDictionary["key1"] = new RuntimeObjectReference("${ref}"); someDictionary["key2"] = "${age}name"; MutablePropertyValues innerPvs = new MutablePropertyValues(); someDictionary["key3"] = new RootObjectDefinition(typeof(TestObject), innerPvs); someDictionary["key4"] = new ChildObjectDefinition("tb1", innerPvs); pvs.Add("someMap", someDictionary); RootObjectDefinition definition = new RootObjectDefinition(typeof(TestObject), cas, pvs); ac.DefaultListableObjectFactory.RegisterObjectDefinition("tb2", definition); pvs = new MutablePropertyValues(); pvs.Add("Properties", "<spring-config><add key=\"age\" value=\"98\"/><add key=\"var\" value=\"${m}var\"/><add key=\"ref\" value=\"tb2\"/><add key=\"m\" value=\"my\"/><add key=\"fqn\" value=\"Spring.Objects.TestObject, Spring.Core.Tests\"/></spring-config>"); ac.RegisterSingleton("configurer", typeof(PropertyPlaceholderConfigurer), pvs); ac.Refresh(); TestObject tb1 = (TestObject)ac.GetObject("tb1"); TestObject tb2 = (TestObject)ac.GetObject("tb2"); TestObject tb3 = (TestObject)ac.GetObject("tb3"); Assert.AreEqual(98, tb1.Age); Assert.AreEqual(98, tb2.Age); Assert.AreEqual(98, tb3.Age); Assert.AreEqual("namemyvar${", tb1.Name); Assert.AreEqual("myvarname98", tb2.Name); Assert.AreEqual(tb2, tb1.Spouse); Assert.AreEqual(2, tb2.Friends.Count); IEnumerator ie = tb2.Friends.GetEnumerator(); ie.MoveNext(); Assert.AreEqual("na98me", ie.Current); ie.MoveNext(); Assert.AreEqual(tb2, ie.Current); Assert.AreEqual(2, tb2.SomeSet.Count); Assert.IsTrue(tb2.SomeSet.Contains("na98me")); Assert.IsTrue(tb2.SomeSet.Contains(tb2)); Assert.AreEqual(4, tb2.SomeMap.Count); Assert.AreEqual(tb2, tb2.SomeMap["key1"]); Assert.AreEqual("98name", tb2.SomeMap["key2"]); TestObject inner1 = (TestObject)tb2.SomeMap["key3"]; TestObject inner2 = (TestObject)tb2.SomeMap["key4"]; Assert.AreEqual(0, inner1.Age); Assert.AreEqual(null, inner1.Name); Assert.AreEqual(98, inner2.Age); Assert.AreEqual("namemyvar${", inner2.Name); }