|
From: <jer...@us...> - 2008-09-15 01:47:41
|
Revision: 150
http://structuremap.svn.sourceforge.net/structuremap/?rev=150&view=rev
Author: jeremydmiller
Date: 2008-09-15 01:47:31 +0000 (Mon, 15 Sep 2008)
Log Message:
-----------
ObjectFactory.Initialize
Modified Paths:
--------------
trunk/Source/StructureMap/Container.cs
trunk/Source/StructureMap/ObjectFactory.cs
trunk/Source/StructureMap/Pipeline/ConfiguredInstance.cs
trunk/Source/StructureMap/Pipeline/ConfiguredInstanceBase.cs
trunk/Source/StructureMap/Pipeline/ExplicitArguments.cs
trunk/Source/StructureMap/StructureMapConfiguration.cs
trunk/Source/StructureMap/StructureMapException.resx
trunk/Source/StructureMap.Testing/Configuration/DSL/DeepInstanceTester.cs
trunk/Source/StructureMap.Testing/Graph/ExplicitArgumentTester.cs
trunk/Source/StructureMap.Testing/ObjectFactoryTester.cs
trunk/Source/StructureMap.Testing/StructureMap.Testing.csproj
trunk/Source/StructureMap.Testing/StructureMapConfigurationTester.cs
Added Paths:
-----------
trunk/Source/StructureMap.Testing/ObjectFactoryInitializeTester.cs
trunk/Source/StructureMap.Testing/StructureMapConfigurationDefensiveChecksTester.cs
Modified: trunk/Source/StructureMap/Container.cs
===================================================================
--- trunk/Source/StructureMap/Container.cs 2008-09-14 22:14:18 UTC (rev 149)
+++ trunk/Source/StructureMap/Container.cs 2008-09-15 01:47:31 UTC (rev 150)
@@ -3,6 +3,7 @@
using System.Collections.Generic;
using System.Diagnostics;
using System.Text;
+using System.Xml;
using StructureMap.Configuration;
using StructureMap.Configuration.DSL;
using StructureMap.Diagnostics;
@@ -13,15 +14,53 @@
namespace StructureMap
{
- public class ConfigurationExpression
+ public class InitializationExpression : ConfigurationExpression
{
+ internal InitializationExpression()
+ {
+ _parserBuilder.IgnoreDefaultFile = false;
+ DefaultProfileName = string.Empty;
+ }
+
+ public bool UseDefaultStructureMapConfigFile
+ {
+ set { _parserBuilder.UseAndEnforceExistenceOfDefaultFile = value; }
+ }
+
+ public bool IgnoreStructureMapConfig
+ {
+ set { _parserBuilder.IgnoreDefaultFile = value; }
+ }
+
+ public bool PullConfigurationFromAppConfig
+ {
+ set { _parserBuilder.PullConfigurationFromAppConfig = value; }
+ }
+
+ public string DefaultProfileName { get; set; }
+ }
+
+ public class ConfigurationExpression : Registry
+ {
+ protected readonly GraphLog _log = new GraphLog();
private readonly List<Registry> _registries = new List<Registry>();
- private readonly List<ConfigurationParser> _parsers = new List<ConfigurationParser>();
+ protected readonly ConfigurationParserBuilder _parserBuilder;
- internal ConfigurationExpression(PluginGraphBuilder builder)
+ internal ConfigurationExpression()
{
+ _parserBuilder = new ConfigurationParserBuilder(_log);
+ _parserBuilder.IgnoreDefaultFile = true;
+ _parserBuilder.PullConfigurationFromAppConfig = false;
+
+ _registries.Add(this);
+
}
+ public void AddRegistry<T>() where T : Registry, new()
+ {
+ AddRegistry(new T());
+ }
+
public void AddRegistry(Registry registry)
{
_registries.Add(registry);
@@ -29,12 +68,29 @@
public void AddConfigurationFromXmlFile(string fileName)
{
- throw new NotImplementedException();
+ _parserBuilder.IncludeFile(fileName);
}
+ public void AddConfigurationFromNode(XmlNode node)
+ {
+ _parserBuilder.IncludeNode(node, "Xml configuration");
+ }
+
+ public bool IncludeConfigurationFromConfigFile
+ {
+ set
+ {
+ _parserBuilder.UseAndEnforceExistenceOfDefaultFile = value;
+ }
+
+ }
+
internal PluginGraph BuildGraph()
{
- throw new NotImplementedException();
+ var parsers = _parserBuilder.GetParsers();
+ PluginGraphBuilder builder = new PluginGraphBuilder(parsers, _registries.ToArray(), _log);
+
+ return builder.Build();
}
}
@@ -46,12 +102,12 @@
private InterceptorLibrary _interceptorLibrary;
private PipelineGraph _pipelineGraph;
- public Container(Action<Registry> action)
+ public Container(Action<ConfigurationExpression> action)
{
- Registry registry = new Registry();
- action(registry);
+ ConfigurationExpression expression = new ConfigurationExpression();
+ action(expression);
- construct(registry.Build());
+ construct(expression.BuildGraph());
}
public Container(Registry registry) : this(registry.Build())
Modified: trunk/Source/StructureMap/ObjectFactory.cs
===================================================================
--- trunk/Source/StructureMap/ObjectFactory.cs 2008-09-14 22:14:18 UTC (rev 149)
+++ trunk/Source/StructureMap/ObjectFactory.cs 2008-09-15 01:47:31 UTC (rev 150)
@@ -41,7 +41,22 @@
}
}
+ public static void Initialize(Action<InitializationExpression> action)
+ {
+ lock (typeof(ObjectFactory))
+ {
+ InitializationExpression expression = new InitializationExpression();
+ action(expression);
+ var graph = expression.BuildGraph();
+ StructureMapConfiguration.Seal();
+
+ _manager = new Container(graph);
+ Profile = expression.DefaultProfileName;
+ }
+ }
+
+
/// <summary>
/// Creates an instance of the concrete type specified. Dependencies are inferred from the constructor function of the type
/// and automatically "filled"
Modified: trunk/Source/StructureMap/Pipeline/ConfiguredInstance.cs
===================================================================
--- trunk/Source/StructureMap/Pipeline/ConfiguredInstance.cs 2008-09-14 22:14:18 UTC (rev 149)
+++ trunk/Source/StructureMap/Pipeline/ConfiguredInstance.cs 2008-09-15 01:47:31 UTC (rev 150)
@@ -29,30 +29,6 @@
}
- protected void mergeIntoThis(ConfiguredInstance instance)
- {
- _pluggedType = instance._pluggedType;
-
- foreach (KeyValuePair<string, string> pair in instance._properties)
- {
- if (!_properties.ContainsKey(pair.Key))
- {
- _properties.Add(pair.Key, pair.Value);
- }
- }
-
- foreach (KeyValuePair<string, Instance> pair in instance._children)
- {
- if (!_children.ContainsKey(pair.Key))
- {
- _children.Add(pair.Key, pair.Value);
- }
- }
-
- _arrays = instance._arrays;
- }
-
-
protected override void preprocess(PluginFamily family)
{
Modified: trunk/Source/StructureMap/Pipeline/ConfiguredInstanceBase.cs
===================================================================
--- trunk/Source/StructureMap/Pipeline/ConfiguredInstanceBase.cs 2008-09-14 22:14:18 UTC (rev 149)
+++ trunk/Source/StructureMap/Pipeline/ConfiguredInstanceBase.cs 2008-09-15 01:47:31 UTC (rev 150)
@@ -1,11 +1,21 @@
using System;
+using System.Collections;
using System.Collections.Generic;
using StructureMap.Graph;
namespace StructureMap.Pipeline
{
- public abstract class ConfiguredInstanceBase<T> : Instance, IConfiguredInstance, IStructuredInstance
+ public interface Copyable
{
+ Type PluggedType { get; }
+ Dictionary<string, string> Properties { get; }
+ Dictionary<string, Instance> Children { get; }
+ Dictionary<string, Instance[]> Arrays { get; }
+ }
+
+
+ public abstract class ConfiguredInstanceBase<T> : Instance, IConfiguredInstance, IStructuredInstance, Copyable
+ {
protected Dictionary<string, Instance> _children = new Dictionary<string, Instance>();
protected Dictionary<string, string> _properties = new Dictionary<string, string>();
protected Dictionary<string, Instance[]> _arrays = new Dictionary<string, Instance[]>();
@@ -35,6 +45,8 @@
get { return _pluggedType; }
}
+
+
Instance IStructuredInstance.GetChild(string name)
{
return _children[name];
@@ -196,5 +208,48 @@
{
setChildArray(name, children);
}
+
+ protected void mergeIntoThis(Copyable instance)
+ {
+ _pluggedType = instance.PluggedType;
+
+ foreach (KeyValuePair<string, string> pair in instance.Properties)
+ {
+ if (!_properties.ContainsKey(pair.Key))
+ {
+ _properties.Add(pair.Key, pair.Value);
+ }
+ }
+
+ foreach (KeyValuePair<string, Instance> pair in instance.Children)
+ {
+ if (!_children.ContainsKey(pair.Key))
+ {
+ _children.Add(pair.Key, pair.Value);
+ }
+ }
+
+ _arrays = instance.Arrays;
+ }
+
+ Type Copyable.PluggedType
+ {
+ get { return _pluggedType; }
+ }
+
+ Dictionary<string, string> Copyable.Properties
+ {
+ get { return _properties; }
+ }
+
+ Dictionary<string, Instance> Copyable.Children
+ {
+ get { return _children; }
+ }
+
+ Dictionary<string, Instance[]> Copyable.Arrays
+ {
+ get { return _arrays; }
+ }
}
}
\ No newline at end of file
Modified: trunk/Source/StructureMap/Pipeline/ExplicitArguments.cs
===================================================================
--- trunk/Source/StructureMap/Pipeline/ExplicitArguments.cs 2008-09-14 22:14:18 UTC (rev 149)
+++ trunk/Source/StructureMap/Pipeline/ExplicitArguments.cs 2008-09-15 01:47:31 UTC (rev 150)
@@ -81,7 +81,7 @@
args.Configure(this);
_args = args;
- ConfiguredInstance defaultConfiguration = defaultInstance as ConfiguredInstance;
+ Copyable defaultConfiguration = defaultInstance as Copyable;
if (defaultConfiguration != null)
{
mergeIntoThis(defaultConfiguration);
Modified: trunk/Source/StructureMap/StructureMapConfiguration.cs
===================================================================
--- trunk/Source/StructureMap/StructureMapConfiguration.cs 2008-09-14 22:14:18 UTC (rev 149)
+++ trunk/Source/StructureMap/StructureMapConfiguration.cs 2008-09-15 01:47:31 UTC (rev 150)
@@ -12,6 +12,7 @@
namespace StructureMap
{
+ [Obsolete("Please put configuration into Registry classes and use the ObjectFactory.Initialize() method for configuring the container")]
public static class StructureMapConfiguration
{
private const string CONFIG_FILE_NAME = "StructureMap.config";
@@ -27,10 +28,19 @@
ResetAll();
}
+ private static void assertIsNotSealed()
+ {
+ if (_sealed)
+ {
+ throw new StructureMapException(50);
+ }
+ }
+
private static IConfigurationParserBuilder parserBuilder
{
get
{
+ assertIsNotSealed();
return _parserBuilder;
}
}
@@ -39,6 +49,7 @@
{
get
{
+ assertIsNotSealed();
return _registry;
}
}
@@ -81,7 +92,7 @@
/// Returns the path to the StructureMap.config file
/// </summary>
/// <returns></returns>
- public static string GetStructureMapConfigurationPath()
+ internal static string GetStructureMapConfigurationPath()
{
string basePath = AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
string configPath = Path.Combine(basePath, CONFIG_FILE_NAME);
@@ -189,19 +200,16 @@
/// </summary>
/// <typeparam name="T"></typeparam>
/// <returns></returns>
- [Obsolete]
public static Registry.ConfiguredInstanceExpression<T> AddInstanceOf<T>()
{
return registry.AddInstanceOf<T>();
}
- [Obsolete]
public static void AddInstanceOf<T>(Func<T> func)
{
registry.AddInstanceOf<T>(new ConstructorInstance<T>(func));
}
- [Obsolete]
public static void AddInstanceOf<T>(Instance instance)
{
registry.ForRequestedType<T>().AddInstance(instance);
@@ -215,7 +223,6 @@
/// <typeparam name="T"></typeparam>
/// <param name="target"></param>
/// <returns></returns>
- [Obsolete]
public static LiteralInstance AddInstanceOf<T>(T target)
{
return registry.AddInstanceOf(target);
@@ -238,6 +245,7 @@
/// <param name="registry"></param>
public static void AddRegistry(Registry registry)
{
+ assertIsNotSealed();
_registries.Add(registry);
}
Modified: trunk/Source/StructureMap/StructureMapException.resx
===================================================================
--- trunk/Source/StructureMap/StructureMapException.resx 2008-09-14 22:14:18 UTC (rev 149)
+++ trunk/Source/StructureMap/StructureMapException.resx 2008-09-15 01:47:31 UTC (rev 150)
@@ -256,4 +256,7 @@
<data name="280" xml:space="preserve">
<value>Requested Profile {0} cannot be found</value>
</data>
+ <data name="50" xml:space="preserve">
+ <value>StructureMapConfiguration cannot be used after ObjectFactory is initialized</value>
+ </data>
</root>
\ No newline at end of file
Modified: trunk/Source/StructureMap.Testing/Configuration/DSL/DeepInstanceTester.cs
===================================================================
--- trunk/Source/StructureMap.Testing/Configuration/DSL/DeepInstanceTester.cs 2008-09-14 22:14:18 UTC (rev 149)
+++ trunk/Source/StructureMap.Testing/Configuration/DSL/DeepInstanceTester.cs 2008-09-15 01:47:31 UTC (rev 150)
@@ -11,7 +11,7 @@
{
private readonly Thing _prototype = new Thing(4, "Jeremy", .333, new WidgetRule(new ColorWidget("yellow")));
- private void assertThingMatches(Action<Registry> action)
+ private void assertThingMatches(Action<ConfigurationExpression> action)
{
IContainer manager = new Container(action);
Thing actual = manager.GetInstance<Thing>();
Modified: trunk/Source/StructureMap.Testing/Graph/ExplicitArgumentTester.cs
===================================================================
--- trunk/Source/StructureMap.Testing/Graph/ExplicitArgumentTester.cs 2008-09-14 22:14:18 UTC (rev 149)
+++ trunk/Source/StructureMap.Testing/Graph/ExplicitArgumentTester.cs 2008-09-15 01:47:31 UTC (rev 150)
@@ -143,6 +143,25 @@
}
[Test]
+ public void NowDoItWithObjectFactoryItself_with_new_API()
+ {
+ ObjectFactory.Initialize(x =>
+ {
+ x.ForRequestedType<ExplicitTarget>().TheDefault.Is.OfConcreteType<ExplicitTarget>()
+ .CtorDependency<IProvider>().Is(child => child.OfConcreteType<RedProvider>())
+ .WithCtorArg("name").EqualTo("Jeremy");
+ });
+
+ // Get the ExplicitTarget without setting an explicit arg for IProvider
+ ObjectFactory.GetInstance<ExplicitTarget>().Provider.IsType<RedProvider>();
+
+ // Now, set the explicit arg for IProvider
+ var theBlueProvider = new BlueProvider();
+ ObjectFactory.With<IProvider>(theBlueProvider).GetInstance<ExplicitTarget>()
+ .Provider.ShouldBeTheSameAs(theBlueProvider);
+ }
+
+ [Test]
public void OverrideAPrimitiveWithObjectFactory()
{
StructureMapConfiguration.ForRequestedType<ExplicitTarget>().TheDefaultIs(
Added: trunk/Source/StructureMap.Testing/ObjectFactoryInitializeTester.cs
===================================================================
--- trunk/Source/StructureMap.Testing/ObjectFactoryInitializeTester.cs (rev 0)
+++ trunk/Source/StructureMap.Testing/ObjectFactoryInitializeTester.cs 2008-09-15 01:47:31 UTC (rev 150)
@@ -0,0 +1,69 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Xml;
+using NUnit.Framework;
+using StructureMap.Configuration;
+using StructureMap.Graph;
+using StructureMap.Testing.GenericWidgets;
+using StructureMap.Testing.TestData;
+using StructureMap.Testing.Widget3;
+
+namespace StructureMap.Testing
+{
+ [TestFixture]
+ public class ObjectFactoryInitializeTester
+ {
+ private static XmlNode createNodeFromText(string outerXml)
+ {
+ XmlDocument document = new XmlDocument();
+ document.LoadXml(outerXml);
+ return document.DocumentElement;
+ }
+
+
+
+ [Test]
+ public void PullConfigurationFromTheAppConfig()
+ {
+ ObjectFactory.Initialize(x =>
+ {
+ x.UseDefaultStructureMapConfigFile = false;
+ x.PullConfigurationFromAppConfig = true;
+ });
+
+ ObjectFactory.GetInstance<IThing<string, bool>>()
+ .IsType<ColorThing<string, bool>>().Color.ShouldEqual("Cornflower");
+ }
+
+
+ [Test]
+ public void StructureMap_functions_without_StructureMapconfig_file_in_the_default_mode()
+ {
+ DataMother.RemoveStructureMapConfig();
+
+ ObjectFactory.Initialize(x => { });
+ }
+
+
+
+ [Test]
+ public void TheDefaultNameIs_should_set_the_default_profile_name()
+ {
+ string theDefaultProfileName = "the default profile";
+
+ ObjectFactory.Initialize(x =>
+ {
+ x.CreateProfile(theDefaultProfileName).For<IGateway>().Use(() => null);
+
+ x.IgnoreStructureMapConfig = true;
+ x.DefaultProfileName = theDefaultProfileName;
+ });
+
+ ObjectFactory.Profile.ShouldEqual(theDefaultProfileName);
+ }
+
+
+ }
+}
Modified: trunk/Source/StructureMap.Testing/ObjectFactoryTester.cs
===================================================================
--- trunk/Source/StructureMap.Testing/ObjectFactoryTester.cs 2008-09-14 22:14:18 UTC (rev 149)
+++ trunk/Source/StructureMap.Testing/ObjectFactoryTester.cs 2008-09-15 01:47:31 UTC (rev 150)
@@ -17,41 +17,12 @@
[SetUp]
public void SetUp()
{
- _event = new ManualResetEvent(false);
- DataMother.WriteDocument("FullTesting.XML");
+ DataMother.RestoreStructureMapConfig();
+ ObjectFactory.Initialize(x => x.UseDefaultStructureMapConfigFile = true);
}
#endregion
- private ManualResetEvent _event;
-
- private void markDone()
- {
- _event.Set();
- }
-
- private void modifyXml(string Color)
- {
- XmlDocument doc = new XmlDocument();
- doc.Load("StructureMap.config");
- XmlNode node =
- doc.DocumentElement.SelectSingleNode("PluginFamily[@Type='StructureMap.Testing.Widget.Rule']");
- node.Attributes["DefaultKey"].Value = Color;
- doc.Save("StructureMap.config");
- }
-
- private void timeout()
- {
- Thread thread = new Thread(signal);
- thread.Start();
- }
-
- private void signal()
- {
- Thread.Sleep(500);
- _event.Set();
- }
-
[Test]
public void SmokeTestGetAllInstances()
{
Modified: trunk/Source/StructureMap.Testing/StructureMap.Testing.csproj
===================================================================
--- trunk/Source/StructureMap.Testing/StructureMap.Testing.csproj 2008-09-14 22:14:18 UTC (rev 149)
+++ trunk/Source/StructureMap.Testing/StructureMap.Testing.csproj 2008-09-15 01:47:31 UTC (rev 150)
@@ -349,6 +349,7 @@
<Compile Include="InstanceMementoInstanceCreationTester.cs" />
<Compile Include="MementoTester.cs" />
<Compile Include="MergingTester.cs" />
+ <Compile Include="ObjectFactoryInitializeTester.cs" />
<Compile Include="ObjectFactoryTester.cs">
<SubType>Code</SubType>
</Compile>
@@ -381,6 +382,7 @@
</Compile>
<Compile Include="SpecificationExtensions.cs" />
<Compile Include="StructureMapConfigCreator.cs" />
+ <Compile Include="StructureMapConfigurationDefensiveChecksTester.cs" />
<Compile Include="StructureMapConfigurationTester.cs" />
<Compile Include="TestData\DataMother.cs">
<SubType>Code</SubType>
Added: trunk/Source/StructureMap.Testing/StructureMapConfigurationDefensiveChecksTester.cs
===================================================================
--- trunk/Source/StructureMap.Testing/StructureMapConfigurationDefensiveChecksTester.cs (rev 0)
+++ trunk/Source/StructureMap.Testing/StructureMapConfigurationDefensiveChecksTester.cs 2008-09-15 01:47:31 UTC (rev 150)
@@ -0,0 +1,47 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using NUnit.Framework;
+using StructureMap.Testing.Widget3;
+
+namespace StructureMap.Testing
+{
+ [TestFixture]
+ public class StructureMapConfigurationDefensiveChecksTester
+ {
+ private void shouldThrowExceptionWhenSealed(Action action)
+ {
+ StructureMapConfiguration.ResetAll();
+ StructureMapConfiguration.Seal();
+
+ try
+ {
+ action();
+ Assert.Fail("Should have thrown exception");
+ }
+ catch (StructureMapException ex)
+ {
+ ex.ErrorCode.ShouldEqual(50);
+ }
+ }
+
+ [Test]
+ public void Ensure_defensive_check_is_always_thrown_when_StructureMapConfiguration_is_sealed()
+ {
+ shouldThrowExceptionWhenSealed(() => StructureMapConfiguration.AddInstanceOf<IGateway>());
+ shouldThrowExceptionWhenSealed(() => StructureMapConfiguration.AddRegistry(null));
+ shouldThrowExceptionWhenSealed(() => StructureMapConfiguration.BuildInstancesOf<IGateway>());
+ shouldThrowExceptionWhenSealed(() => StructureMapConfiguration.CreateProfile("something"));
+ shouldThrowExceptionWhenSealed(() => StructureMapConfiguration.ForRequestedType(typeof(IGateway)));
+ shouldThrowExceptionWhenSealed(() => StructureMapConfiguration.IgnoreStructureMapConfig = true);
+ shouldThrowExceptionWhenSealed(() => StructureMapConfiguration.IncludeConfigurationFromFile("something"));
+ shouldThrowExceptionWhenSealed(() => StructureMapConfiguration.IncludeConfigurationFromNode(null, null));
+ shouldThrowExceptionWhenSealed(() => StructureMapConfiguration.PullConfigurationFromAppConfig = true);
+ shouldThrowExceptionWhenSealed(() => StructureMapConfiguration.RegisterInterceptor(null));
+ shouldThrowExceptionWhenSealed(() => StructureMapConfiguration.ScanAssemblies());
+ shouldThrowExceptionWhenSealed(() => StructureMapConfiguration.TheDefaultProfileIs("something"));
+ shouldThrowExceptionWhenSealed(() => StructureMapConfiguration.UseDefaultStructureMapConfigFile = true);
+ }
+ }
+}
Modified: trunk/Source/StructureMap.Testing/StructureMapConfigurationTester.cs
===================================================================
--- trunk/Source/StructureMap.Testing/StructureMapConfigurationTester.cs 2008-09-14 22:14:18 UTC (rev 149)
+++ trunk/Source/StructureMap.Testing/StructureMapConfigurationTester.cs 2008-09-15 01:47:31 UTC (rev 150)
@@ -48,10 +48,7 @@
public void Ignore_the_StructureMap_config_file_even_if_it_exists()
{
StructureMapConfiguration.IgnoreStructureMapConfig = true;
-
- PluginGraph graph = StructureMapConfiguration.GetPluginGraph();
-
- Assert.AreEqual(0, graph.FamilyCount);
+ StructureMapConfiguration.GetPluginGraph().FamilyCount.ShouldEqual(0);
}
@@ -61,9 +58,8 @@
StructureMapConfiguration.UseDefaultStructureMapConfigFile = false;
StructureMapConfiguration.PullConfigurationFromAppConfig = true;
- ColorThing<string, bool> thing =
- (ColorThing<string, bool>) ObjectFactory.GetInstance<IThing<string, bool>>();
- Assert.AreEqual("Cornflower", thing.Color, "Cornflower is the color from the App.config file");
+ ObjectFactory.GetInstance<IThing<string, bool>>()
+ .IsType<ColorThing<string, bool>>().Color.ShouldEqual("Cornflower");
}
@@ -94,7 +90,7 @@
{
DataMother.RemoveStructureMapConfig();
- PluginGraph graph = StructureMapConfiguration.GetPluginGraph();
+ StructureMapConfiguration.GetPluginGraph().ShouldNotBeNull();
}
[Test]
@@ -106,16 +102,14 @@
StructureMapConfiguration.TheDefaultProfileIs(theDefaultProfileName);
PluginGraph graph = StructureMapConfiguration.GetPluginGraph();
- Assert.AreEqual(theDefaultProfileName, graph.ProfileManager.DefaultProfileName);
+ graph.ProfileManager.DefaultProfileName.ShouldEqual(theDefaultProfileName);
}
[Test]
public void Use_the_StructureMap_config_file_if_it_exists()
{
DataMother.RestoreStructureMapConfig();
-
- PluginGraph graph = StructureMapConfiguration.GetPluginGraph();
- Assert.IsTrue(graph.FamilyCount > 0);
+ StructureMapConfiguration.GetPluginGraph().FamilyCount.ShouldBeGreaterThan(0);
}
[Test(Description = "Guid test based on problems encountered by Paul Segaro. See http://groups.google.com/group/structuremap-users/browse_thread/thread/34ddaf549ebb14f7?hl=en")]
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|