public void CanCreateNamedConcreteObjectByAskingForNamedInterface() { string config = @"<object-builder-config xmlns=""pag-object-builder""> <build-rules> <build-rule type=""" + FullNameSimpleObject + @""" name=""Foo"" mode=""Instance""> <constructor-params> <value-param type=""System.Int32"">12</value-param> </constructor-params> </build-rule> <build-rule name=""sm2"" type=""" + FullNameISimpleObject + @""" mode=""Instance""> <mapped-type type=""" + FullNameSimpleObject + @""" name=""Foo""/> </build-rule> <build-rule type=""" + FullNameISimpleObject + @""" mode=""Instance""> <mapped-type type=""" + FullNameSimpleObject + @"""/> </build-rule> </build-rules> </object-builder-config>" ; Builder builder = new Builder(ObjectBuilderXmlConfig.FromXml(config)); Locator locator = CreateLocator(); ISimpleObject sm1 = builder.BuildUp <ISimpleObject>(locator, null, null); ISimpleObject sm2 = builder.BuildUp <ISimpleObject>(locator, "sm2", null); Assert.IsNotNull(sm1); Assert.IsNotNull(sm2); Assert.IsTrue(sm1 is SimpleObject); Assert.IsTrue(sm2 is SimpleObject); Assert.AreEqual(0, ((SimpleObject)sm1).IntParam); Assert.AreEqual(12, ((SimpleObject)sm2).IntParam); }
public void CanCreateInstances() { string config = @"<object-builder-config xmlns=""pag-object-builder""> <build-rules> <build-rule type=""" + FullNameSimpleObject + @""" mode=""Instance""> <constructor-params> <value-param type=""System.Int32"">12</value-param> </constructor-params> </build-rule> </build-rules> </object-builder-config>" ; Builder builder = new Builder(ObjectBuilderXmlConfig.FromXml(config)); Locator locator = CreateLocator(); SimpleObject m1 = builder.BuildUp <SimpleObject>(locator, null, null); SimpleObject m2 = builder.BuildUp <SimpleObject>(locator, null, null); Assert.IsNotNull(m1); Assert.IsNotNull(m2); Assert.AreEqual(12, m1.IntParam); Assert.AreEqual(12, m2.IntParam); Assert.IsTrue(m1 != m2); }
public void CanInjectMultiplePropertiesIncludingCreatedObjects() { string config = @"<object-builder-config xmlns=""pag-object-builder""> <build-rules> <build-rule type=""" + FullNameSimpleObject + @""" mode=""Instance""> <constructor-params> <value-param type=""System.Int32"">15</value-param> </constructor-params> </build-rule> <build-rule type=""" + FullNameComplexObject + @""" mode=""Instance""> <property name=""StringProperty""> <value-param type=""System.String"">Bar is here</value-param> </property> <property name=""SimpleObject""> <ref-param type=""" + FullNameSimpleObject + @""" /> </property> </build-rule> </build-rules> </object-builder-config>" ; Builder builder = new Builder(ObjectBuilderXmlConfig.FromXml(config)); Locator locator = CreateLocator(); ComplexObject co = builder.BuildUp <ComplexObject>(locator, null, null); Assert.IsNotNull(co); Assert.IsNotNull(co.SimpleObject); Assert.AreEqual("Bar is here", co.StringProperty); Assert.AreEqual(15, co.SimpleObject.IntParam); }
public void RefParamsCanAskForSpecificallyNamedObjects() { string config = @"<object-builder-config xmlns=""pag-object-builder""> <build-rules> <build-rule name=""Object1"" type=""" + FullNameSimpleObject + @""" mode=""Singleton""> <constructor-params> <value-param type=""System.Int32"">12</value-param> </constructor-params> </build-rule> <build-rule name=""Object2"" type=""" + FullNameSimpleObject + @""" mode=""Singleton""> <constructor-params> <value-param type=""System.Int32"">32</value-param> </constructor-params> </build-rule> <build-rule type=""" + FullNameComplexObject + @""" mode=""Singleton""> <constructor-params> <ref-param type=""" + FullNameSimpleObject + @""" name=""Object2"" /> </constructor-params> </build-rule> </build-rules> </object-builder-config>" ; Builder builder = new Builder(ObjectBuilderXmlConfig.FromXml(config)); Locator locator = CreateLocator(); ComplexObject cm = builder.BuildUp <ComplexObject>(locator, null, null); SimpleObject sm = builder.BuildUp <SimpleObject>(locator, "Object2", null); Assert.IsNotNull(cm); Assert.IsNotNull(cm.SimpleObject); Assert.AreEqual(32, cm.SimpleObject.IntParam); Assert.AreSame(sm, cm.SimpleObject); }
public void BuilderWithNoStrategiesThrowsWhenBuilding() { string config = @"<object-builder-config xmlns=""pag-object-builder""> <strategies include-default=""false"" /> </object-builder-config>" ; Builder builder = new Builder(ObjectBuilderXmlConfig.FromXml(config)); Locator locator = CreateLocator(); builder.BuildUp <object>(locator, null, null); }
public void CanCreateConcreteObjectByAskingForInterface() { string config = @"<object-builder-config xmlns=""pag-object-builder""> <build-rules> <build-rule type=""" + FullNameISimpleObject + @""" mode=""Instance""> <mapped-type type=""" + FullNameSimpleObject + @""" /> </build-rule> </build-rules> </object-builder-config>" ; Builder builder = new Builder(ObjectBuilderXmlConfig.FromXml(config)); Locator locator = CreateLocator(); ISimpleObject sm = builder.BuildUp <ISimpleObject>(locator, null, null); Assert.IsNotNull(sm); Assert.IsTrue(sm is SimpleObject); }
public void CanCreateSingleton() { string config = @"<object-builder-config xmlns=""pag-object-builder""> <build-rules> <build-rule type=""" + FullNameSimpleObject + @""" mode=""Singleton""> <constructor-params> <value-param type=""System.Int32"">12</value-param> </constructor-params> </build-rule> </build-rules> </object-builder-config>" ; Builder builder = new Builder(ObjectBuilderXmlConfig.FromXml(config)); Locator locator = CreateLocator(); SimpleObject m1 = builder.BuildUp <SimpleObject>(locator, null, null); SimpleObject m2 = builder.BuildUp <SimpleObject>(locator, null, null); Assert.AreSame(m1, m2); }
public void CanInjectValuesIntoProperties() { string config = @"<object-builder-config xmlns=""pag-object-builder""> <build-rules> <build-rule type=""" + FullNameSimpleObject + @""" mode=""Instance""> <property name=""StringProperty""> <value-param type=""System.String"">Bar is here</value-param> </property> </build-rule> </build-rules> </object-builder-config>" ; Builder builder = new Builder(ObjectBuilderXmlConfig.FromXml(config)); Locator locator = CreateLocator(); SimpleObject sm = builder.BuildUp <SimpleObject>(locator, null, null); Assert.IsNotNull(sm); Assert.AreEqual("Bar is here", sm.StringProperty); }