public void UseAPreBuiltObjectWithAName() { // Return the specific instance when an IWidget named "Julia" is requested var julia = new CloneableWidget("Julia"); container = new Container(x => x.For <IWidget>().Add(julia).Named("Julia")); var widget1 = (CloneableWidget)container.GetInstance <IWidget>("Julia"); var widget2 = (CloneableWidget)container.GetInstance <IWidget>("Julia"); var widget3 = (CloneableWidget)container.GetInstance <IWidget>("Julia"); Assert.AreSame(julia, widget1); Assert.AreSame(julia, widget2); Assert.AreSame(julia, widget3); }
public void UseAPreBuiltObjectWithAName() { // Return the specific instance when an IWidget named "Lindsey" is requested var lindsey = new CloneableWidget("Lindsey"); container = new Container(x => x.For <IWidget>().Add(lindsey).Named("Lindsey")); var widget1 = (CloneableWidget)container.GetInstance <IWidget>("Lindsey"); var widget2 = (CloneableWidget)container.GetInstance <IWidget>("Lindsey"); var widget3 = (CloneableWidget)container.GetInstance <IWidget>("Lindsey"); lindsey.ShouldBeTheSameAs(widget1); lindsey.ShouldBeTheSameAs(widget2); lindsey.ShouldBeTheSameAs(widget3); }
public void UseAPreBuiltObjectForAnInstanceAsAPrototype() { // Build an instance for IWidget, then setup StructureMap to return cloned instances of the // "Prototype" (GoF pattern) whenever someone asks for IWidget named "Jeremy" var theWidget = new CloneableWidget("Jeremy"); container = new Container(x => { x.For <IWidget>().Add(new PrototypeInstance(theWidget).Named("Jeremy")); }); var widget1 = (CloneableWidget)container.GetInstance <IWidget>("Jeremy"); var widget2 = (CloneableWidget)container.GetInstance <IWidget>("Jeremy"); var widget3 = (CloneableWidget)container.GetInstance <IWidget>("Jeremy"); Assert.AreEqual("Jeremy", widget1.Name); Assert.AreEqual("Jeremy", widget2.Name); Assert.AreEqual("Jeremy", widget3.Name); Assert.AreNotSame(widget1, widget2); Assert.AreNotSame(widget1, widget3); Assert.AreNotSame(widget2, widget3); }
public void UseAPreBuiltObjectWithAName() { // Return the specific instance when an IWidget named "Lindsey" is requested var lindsey = new CloneableWidget("Lindsey"); container = new Container(x => x.For<IWidget>().Add(lindsey).Named("Lindsey")); var widget1 = (CloneableWidget)container.GetInstance<IWidget>("Lindsey"); var widget2 = (CloneableWidget)container.GetInstance<IWidget>("Lindsey"); var widget3 = (CloneableWidget)container.GetInstance<IWidget>("Lindsey"); lindsey.ShouldBeTheSameAs(widget1); lindsey.ShouldBeTheSameAs(widget2); lindsey.ShouldBeTheSameAs(widget3); }
public void UseAPreBuiltObjectWithAName() { // Return the specific instance when an IWidget named "Julia" is requested var julia = new CloneableWidget("Julia"); container = new Container(x => x.For<IWidget>().Add(julia).Named("Julia")); var widget1 = (CloneableWidget) container.GetInstance<IWidget>("Julia"); var widget2 = (CloneableWidget) container.GetInstance<IWidget>("Julia"); var widget3 = (CloneableWidget) container.GetInstance<IWidget>("Julia"); Assert.AreSame(julia, widget1); Assert.AreSame(julia, widget2); Assert.AreSame(julia, widget3); }
public void UseAPreBuiltObjectForAnInstanceAsASerializedCopy() { // Build an instance for IWidget, then setup StructureMap to return cloned instances of the // "Prototype" (GoF pattern) whenever someone asks for IWidget named "Jeremy" var theWidget = new CloneableWidget("Jeremy"); container = new Container(x => { x.For<IWidget>().Add(new SerializedInstance(theWidget).Named("Jeremy")); }); var widget1 = (CloneableWidget) container.GetInstance<IWidget>("Jeremy"); var widget2 = (CloneableWidget) container.GetInstance<IWidget>("Jeremy"); var widget3 = (CloneableWidget) container.GetInstance<IWidget>("Jeremy"); Assert.AreEqual("Jeremy", widget1.Name); Assert.AreEqual("Jeremy", widget2.Name); Assert.AreEqual("Jeremy", widget3.Name); Assert.AreNotSame(widget1, widget2); Assert.AreNotSame(widget1, widget3); Assert.AreNotSame(widget2, widget3); }