From: <jer...@us...> - 2008-06-01 14:33:19
|
Revision: 113 http://structuremap.svn.sourceforge.net/structuremap/?rev=113&view=rev Author: jeremydmiller Date: 2008-06-01 07:33:12 -0700 (Sun, 01 Jun 2008) Log Message: ----------- dynamic container expansion, InjectStub_by_name Modified Paths: -------------- trunk/Source/StructureMap/Container.cs trunk/Source/StructureMap.Testing/BuildSessionTester.cs trunk/Source/StructureMap.Testing/Graph/ContainerTester.cs trunk/Source/StructureMap.Testing/Graph/DynamicInjectionTester.cs trunk/Source/StructureMap.Testing/Graph/EnumerationTester.cs Modified: trunk/Source/StructureMap/Container.cs =================================================================== --- trunk/Source/StructureMap/Container.cs 2008-05-31 19:47:30 UTC (rev 112) +++ trunk/Source/StructureMap/Container.cs 2008-06-01 14:33:12 UTC (rev 113) @@ -105,9 +105,10 @@ Inject<T>(instance); } - public void InjectStub<T>(string name, T instance) + public void InjectStub<T>(string name, T stub) { - throw new NotImplementedException(); + LiteralInstance instance = new LiteralInstance(stub).WithName(name); + _pipelineGraph.AddInstance<T>(instance); } public IList<T> GetAllInstances<T>() Modified: trunk/Source/StructureMap.Testing/BuildSessionTester.cs =================================================================== --- trunk/Source/StructureMap.Testing/BuildSessionTester.cs 2008-05-31 19:47:30 UTC (rev 112) +++ trunk/Source/StructureMap.Testing/BuildSessionTester.cs 2008-06-01 14:33:12 UTC (rev 113) @@ -148,7 +148,7 @@ assertActionThrowsErrorCode(200, delegate { BuildSession session = new BuildSession(graph, null); - session.CreateInstance(typeof (IGateway), "A Name"); + session.CreateInstance(typeof (IGateway), "Gateway that is not configured"); }); } Modified: trunk/Source/StructureMap.Testing/Graph/ContainerTester.cs =================================================================== --- trunk/Source/StructureMap.Testing/Graph/ContainerTester.cs 2008-05-31 19:47:30 UTC (rev 112) +++ trunk/Source/StructureMap.Testing/Graph/ContainerTester.cs 2008-06-01 14:33:12 UTC (rev 113) @@ -33,14 +33,11 @@ private void addColorMemento(string Color) { - ConfiguredInstance instance = new ConfiguredInstance(Color).WithConcreteKey("Color").SetProperty("Color", - Color); - _manager.Configure(delegate(Registry registry) { - registry.AddInstanceOf<Rule>(instance); - registry.AddInstanceOf<IWidget>(instance); - registry.AddInstanceOf<WidgetMaker>(instance); + registry.AddInstanceOf<Rule>().UsingConcreteType<ColorRule>().SetProperty("Color", Color).WithName(Color); + registry.AddInstanceOf<IWidget>().UsingConcreteType<ColorWidget>().SetProperty("Color", Color).WithName(Color); + registry.AddInstanceOf<WidgetMaker>().UsingConcreteType<ColorWidgetMaker>().SetProperty("Color", Color).WithName(Color); }); } @@ -203,8 +200,16 @@ [Test] public void InjectStub_by_name() { - Assert.Fail("Do."); IContainer container = new Container(); + + ColorRule red = new ColorRule("Red"); + ColorRule blue = new ColorRule("Blue"); + + container.InjectStub<Rule>("Red", red); + container.InjectStub<Rule>("Blue", blue); + + Assert.AreSame(red, container.GetInstance<Rule>("Red")); + Assert.AreSame(blue, container.GetInstance<Rule>("Blue")); } Modified: trunk/Source/StructureMap.Testing/Graph/DynamicInjectionTester.cs =================================================================== --- trunk/Source/StructureMap.Testing/Graph/DynamicInjectionTester.cs 2008-05-31 19:47:30 UTC (rev 112) +++ trunk/Source/StructureMap.Testing/Graph/DynamicInjectionTester.cs 2008-06-01 14:33:12 UTC (rev 113) @@ -113,8 +113,13 @@ family.AddPlugin(typeof (SomethingOne), "One"); IContainer manager = new Container(pluginGraph); + manager.Configure( - delegate(Registry registry) { registry.AddInstanceOf<ISomething>().WithConcreteKey("One").WithName("One"); }); + delegate(Registry registry) + { + registry.ForRequestedType<ISomething>().AliasConcreteType<SomethingOne>("One"); + registry.AddInstanceOf<ISomething>().WithConcreteKey("One").WithName("One"); + }); IList<ISomething> list = manager.GetAllInstances<ISomething>(); Assert.AreEqual(1, list.Count); Modified: trunk/Source/StructureMap.Testing/Graph/EnumerationTester.cs =================================================================== --- trunk/Source/StructureMap.Testing/Graph/EnumerationTester.cs 2008-05-31 19:47:30 UTC (rev 112) +++ trunk/Source/StructureMap.Testing/Graph/EnumerationTester.cs 2008-06-01 14:33:12 UTC (rev 113) @@ -21,7 +21,7 @@ manager.Configure(delegate(Registry registry) { - registry.AddInstanceOf<Cow>().UsingConcreteTypeNamed("Default") + registry.AddInstanceOf<Cow>().UsingConcreteType<Cow>() .WithName("Angus") .WithProperty("Name").EqualTo("Bessie") .WithProperty("Breed").EqualTo("Angus") This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |