public void RegisterExistingSingletonWithReference() { DefaultListableObjectFactory lof = new DefaultListableObjectFactory(); RootObjectDefinition def = new RootObjectDefinition(); def.ObjectType = typeof(TestObject); def.PropertyValues.Add("Name", "Rick"); def.PropertyValues.Add("Age", 30); def.PropertyValues.Add("Spouse", new RuntimeObjectReference("singletonObject")); lof.RegisterObjectDefinition("test", def); object singletonObject = new TestObject(); lof.RegisterSingleton("singletonObject", singletonObject); Assert.IsTrue(lof.IsSingleton("singletonObject")); TestObject test = (TestObject)lof.GetObject("test"); Assert.AreEqual(singletonObject, lof.GetObject("singletonObject")); Assert.AreEqual(singletonObject, test.Spouse); IDictionary<string, object> objectsOfType = lof.GetObjectsOfType(typeof(TestObject), false, true); Assert.AreEqual(2, objectsOfType.Count); Assert.IsTrue(objectsOfType.Values.Contains(test)); Assert.IsTrue(objectsOfType.Values.Contains(singletonObject)); }
public void SPR_1011() { DefaultListableObjectFactory lof = new DefaultListableObjectFactory(); RootObjectDefinition def = new RootObjectDefinition( typeof(StaticFactoryMethodObject)); def.FactoryMethodName = "CreateObject"; lof.RegisterObjectDefinition("foo", def); IDictionary<string, object> objs = lof.GetObjectsOfType(typeof(DBNull)); Assert.AreEqual(1, objs.Count, "Must be looking at the RETURN TYPE of the factory method, " + "and hence get one DBNull object back."); }
public void ObjectCreatedViaStaticGenericFactoryMethodUsesReturnTypeOfGenericFactoryMethodAsTheObjectType() { DefaultListableObjectFactory lof = new DefaultListableObjectFactory(); RootObjectDefinition def = new RootObjectDefinition(typeof(TestGenericObject<int, string>)); def.FactoryMethodName = "CreateList<int>"; lof.RegisterObjectDefinition("foo", def); IDictionary<string, object> objs = lof.GetObjectsOfType(typeof(List<int>)); Assert.AreEqual(1, objs.Count); }
public void ObjectCreatedViaInstanceGenericFactoryMethodUsesReturnTypeOfGenericFactoryMethodAsTheObjectType() { RootObjectDefinition def = new RootObjectDefinition(typeof(TestObjectCreator)); def.FactoryMethodName = "CreateInstance<string,int>"; def.FactoryObjectName = "target"; DefaultListableObjectFactory lof = new DefaultListableObjectFactory(); lof.RegisterObjectDefinition("factoryObject", def); lof.RegisterObjectDefinition("target", new RootObjectDefinition(typeof(TestGenericObject<int, string>))); IDictionary<string, object> objs = lof.GetObjectsOfType(typeof(TestGenericObject<string, int>)); Assert.AreEqual(1, objs.Count); }
public void ObjectCreatedViaStaticFactoryMethodUsesReturnTypeOfFactoryMethodAsTheObjectType() { RootObjectDefinition def = new RootObjectDefinition(typeof(TestObjectCreator)); def.FactoryMethodName = "CreateTestObject"; DefaultListableObjectFactory lof = new DefaultListableObjectFactory(); lof.RegisterObjectDefinition("factoryObject", def); IDictionary objs = lof.GetObjectsOfType(typeof(TestObject)); Assert.AreEqual(1, objs.Count); }