|
From: <jer...@us...> - 2008-08-11 01:56:27
|
Revision: 137
http://structuremap.svn.sourceforge.net/structuremap/?rev=137&view=rev
Author: jeremydmiller
Date: 2008-08-11 01:56:24 +0000 (Mon, 11 Aug 2008)
Log Message:
-----------
added some unit tests for Xml optional properties. Strangely enough, it worked already
Modified Paths:
--------------
trunk/Source/StructureMap/Graph/PluginFamilyCollection.cs
trunk/Source/StructureMap/Graph/PluginGraph.cs
trunk/Source/StructureMap.Testing/Pipeline/OptionalSetterInjectionTester.cs
Modified: trunk/Source/StructureMap/Graph/PluginFamilyCollection.cs
===================================================================
--- trunk/Source/StructureMap/Graph/PluginFamilyCollection.cs 2008-08-10 21:38:45 UTC (rev 136)
+++ trunk/Source/StructureMap/Graph/PluginFamilyCollection.cs 2008-08-11 01:56:24 UTC (rev 137)
@@ -37,6 +37,16 @@
get { return _pluginFamilies.Count; }
}
+ public IEnumerable<PluginFamily> All
+ {
+ get
+ {
+ PluginFamily[] families = new PluginFamily[_pluginFamilies.Count];
+ _pluginFamilies.Values.CopyTo(families, 0);
+ return families;
+ }
+ }
+
#region IEnumerable<PluginFamily> Members
IEnumerator<PluginFamily> IEnumerable<PluginFamily>.GetEnumerator()
Modified: trunk/Source/StructureMap/Graph/PluginGraph.cs
===================================================================
--- trunk/Source/StructureMap/Graph/PluginGraph.cs 2008-08-10 21:38:45 UTC (rev 136)
+++ trunk/Source/StructureMap/Graph/PluginGraph.cs 2008-08-11 01:56:24 UTC (rev 137)
@@ -104,7 +104,7 @@
_assemblies.ScanForStructureMapObjects(this);
}
- foreach (PluginFamily family in _pluginFamilies)
+ foreach (PluginFamily family in _pluginFamilies.All)
{
family.Seal();
}
Modified: trunk/Source/StructureMap.Testing/Pipeline/OptionalSetterInjectionTester.cs
===================================================================
--- trunk/Source/StructureMap.Testing/Pipeline/OptionalSetterInjectionTester.cs 2008-08-10 21:38:45 UTC (rev 136)
+++ trunk/Source/StructureMap.Testing/Pipeline/OptionalSetterInjectionTester.cs 2008-08-11 01:56:24 UTC (rev 137)
@@ -1,9 +1,11 @@
using System;
+using System.Diagnostics;
using System.Drawing;
using System.Linq.Expressions;
using NUnit.Framework;
using StructureMap.Configuration.DSL;
using StructureMap.Pipeline;
+using StructureMap.Testing.TestData;
using StructureMap.Testing.Widget;
namespace StructureMap.Testing.Pipeline
@@ -92,7 +94,7 @@
}
[Test]
- public void one_optional_child_setter()
+ public void one_optional_child_setter_with_the_setter_property_defined()
{
var container = new Container(r => r.ForRequestedType<ClassWithDependency>().TheDefaultIs(
Instance<ClassWithDependency>().Child("Rule").Is(new ColorRule("Red"))
@@ -102,7 +104,70 @@
container.GetInstance<ClassWithDependency>().Rule.ShouldBeOfType(typeof(ColorRule));
}
+
[Test]
+ public void one_optional_child_setter_without_the_setter_property_defined()
+ {
+ var container = new Container(r => r.ForRequestedType<ClassWithDependency>().TheDefaultIs(
+ Instance<ClassWithDependency>())
+
+ );
+
+ container.GetInstance<ClassWithDependency>().Rule.ShouldBeNull();
+ }
+
+ [Test]
+ public void read_instance_from_xml_with_optional_setter_defined()
+ {
+ Debug.WriteLine(typeof(ClassWithDependency).AssemblyQualifiedName);
+
+ var graph = DataMother.BuildPluginGraphFromXml(@"
+<StructureMap MementoStyle='Attribute'>
+ <DefaultInstance
+ PluginType='StructureMap.Testing.Pipeline.ClassWithDependency, StructureMap.Testing'
+ PluggedType='StructureMap.Testing.Pipeline.ClassWithDependency, StructureMap.Testing'>
+
+ <Rule PluggedType='StructureMap.Testing.Widget.ColorRule, StructureMap.Testing.Widget' color='Red' />
+
+
+
+ </DefaultInstance>
+</StructureMap>
+
+");
+
+ Container container = new Container(graph);
+
+ container.GetInstance<ClassWithDependency>().Rule.IsType<ColorRule>().Color.ShouldEqual("Red");
+ }
+
+
+
+ [Test]
+ public void read_instance_from_xml_with_optional_setter_not_defined()
+ {
+ Debug.WriteLine(typeof(ClassWithDependency).AssemblyQualifiedName);
+
+ var graph = DataMother.BuildPluginGraphFromXml(@"
+<StructureMap MementoStyle='Attribute'>
+ <DefaultInstance
+ PluginType='StructureMap.Testing.Pipeline.ClassWithDependency, StructureMap.Testing'
+ PluggedType='StructureMap.Testing.Pipeline.ClassWithDependency, StructureMap.Testing'>
+
+ </DefaultInstance>
+</StructureMap>
+
+");
+
+ Container container = new Container(graph);
+
+ container.GetInstance<ClassWithDependency>().Rule.ShouldBeNull();
+ }
+
+
+
+
+ [Test]
public void one_optional_child_setter2()
{
var container = new Container(r => r.ForRequestedType<ClassWithDependency>().TheDefaultIs(
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|