|
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.
|