|
From: <fli...@us...> - 2008-09-26 01:03:25
|
Revision: 157
http://structuremap.svn.sourceforge.net/structuremap/?rev=157&view=rev
Author: flimflan
Date: 2008-09-26 01:03:19 +0000 (Fri, 26 Sep 2008)
Log Message:
-----------
Cleaning up AAA support in RhinoAutoMocker
Modified Paths:
--------------
trunk/Source/CommonAssemblyInfo.cs
trunk/Source/StructureMap.AutoMocking/RhinoAutoMocker.cs
trunk/Source/StructureMap.AutoMocking/RhinoMocksServiceLocator.cs
trunk/Source/StructureMap.Testing/AutoMocking/RhinoAutoMockerTester.cs
Modified: trunk/Source/CommonAssemblyInfo.cs
===================================================================
--- trunk/Source/CommonAssemblyInfo.cs 2008-09-25 23:18:11 UTC (rev 156)
+++ trunk/Source/CommonAssemblyInfo.cs 2008-09-26 01:03:19 UTC (rev 157)
@@ -5,7 +5,7 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
-// Runtime Version:2.0.50727.1434
+// Runtime Version:2.0.50727.1433
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
Modified: trunk/Source/StructureMap.AutoMocking/RhinoAutoMocker.cs
===================================================================
--- trunk/Source/StructureMap.AutoMocking/RhinoAutoMocker.cs 2008-09-25 23:18:11 UTC (rev 156)
+++ trunk/Source/StructureMap.AutoMocking/RhinoAutoMocker.cs 2008-09-26 01:03:19 UTC (rev 157)
@@ -11,7 +11,7 @@
public delegate void VoidMethod();
- public enum MockStyle { Dynamic, DynamicWithAAASupport }
+ public enum MockMode { Record, Replay }
// Note that it subclasses the RhinoMocks.MockRepository class
/// <summary>
@@ -23,23 +23,27 @@
private readonly AutoMockedContainer _container;
private TARGETCLASS _classUnderTest;
- public RhinoAutoMocker() : this(MockStyle.Dynamic) {}
+ public RhinoAutoMocker() : this(MockMode.Record) {}
- public RhinoAutoMocker(MockStyle mockStyle)
+ public RhinoAutoMocker(MockMode mockMode)
{
- ServiceLocator serviceLocator;
- switch (mockStyle)
+ var mockCreationStrategy = getMockCreationStrategy(mockMode);
+ var serviceLocator = new RhinoMocksServiceLocator(this, mockCreationStrategy);
+ _container = new AutoMockedContainer(serviceLocator);
+ }
+
+
+ private static Func<MockRepository, Type, object> getMockCreationStrategy(MockMode mockMode)
+ {
+ switch (mockMode)
{
- case MockStyle.DynamicWithAAASupport:
- serviceLocator = new RhinoMocksAAAServiceLocator(this);
- break;
- case MockStyle.Dynamic:
- serviceLocator = new RhinoMocksServiceLocator(this);
- break;
+ case MockMode.Record:
+ return MockCreationStrategy.RecordMode;
+ case MockMode.Replay:
+ return MockCreationStrategy.ReplayMode;
default:
- throw new InvalidOperationException("Unsupported MockStyle " + mockStyle);
+ throw new InvalidOperationException("Unsupported MockMode " + mockMode);
}
- _container = new AutoMockedContainer(serviceLocator);
}
Modified: trunk/Source/StructureMap.AutoMocking/RhinoMocksServiceLocator.cs
===================================================================
--- trunk/Source/StructureMap.AutoMocking/RhinoMocksServiceLocator.cs 2008-09-25 23:18:11 UTC (rev 156)
+++ trunk/Source/StructureMap.AutoMocking/RhinoMocksServiceLocator.cs 2008-09-26 01:03:19 UTC (rev 157)
@@ -6,12 +6,17 @@
public class RhinoMocksServiceLocator : ServiceLocator
{
private readonly MockRepository _mocks;
+ private readonly Func<MockRepository, Type, object> mockCreationStrategy;
- public RhinoMocksServiceLocator(MockRepository mocks)
+ public RhinoMocksServiceLocator(MockRepository mocks, Func<MockRepository, Type, object> mockCreationStrategy)
{
_mocks = mocks;
+ this.mockCreationStrategy = mockCreationStrategy;
}
+ public RhinoMocksServiceLocator(MockRepository mocks) : this(mocks, MockCreationStrategy.RecordMode)
+ {
+ }
public RhinoMocksServiceLocator() : this(new MockRepository())
{
@@ -21,46 +26,30 @@
public T Service<T>()
{
- return _mocks.DynamicMock<T>();
+ return (T)mockCreationStrategy(_mocks, typeof (T));
}
public object Service(Type serviceType)
{
- return _mocks.DynamicMock(serviceType);
+ return mockCreationStrategy(_mocks, serviceType);
}
#endregion
}
- public class RhinoMocksAAAServiceLocator : ServiceLocator
+ public static class MockCreationStrategy
{
- private readonly MockRepository _mocks;
-
- public RhinoMocksAAAServiceLocator(MockRepository mocks)
+ public static object RecordMode(MockRepository repository, Type type)
{
- _mocks = mocks;
+ return repository.DynamicMock(type);
}
-
- public RhinoMocksAAAServiceLocator()
- : this(new MockRepository())
+ public static object ReplayMode(MockRepository repository, Type type)
{
- }
-
- #region ServiceLocator Members
-
- public T Service<T>()
- {
- return MockRepository.GenerateMock<T>();
- }
-
- public object Service(Type serviceType)
- {
- var mock = _mocks.DynamicMock(serviceType);
- _mocks.Replay(mock);
+ var mock = repository.DynamicMock(type);
+ repository.Replay(mock);
return mock;
}
-
- #endregion
}
+
}
\ No newline at end of file
Modified: trunk/Source/StructureMap.Testing/AutoMocking/RhinoAutoMockerTester.cs
===================================================================
--- trunk/Source/StructureMap.Testing/AutoMocking/RhinoAutoMockerTester.cs 2008-09-25 23:18:11 UTC (rev 156)
+++ trunk/Source/StructureMap.Testing/AutoMocking/RhinoAutoMockerTester.cs 2008-09-26 01:03:19 UTC (rev 157)
@@ -335,7 +335,7 @@
[Test]
public void TheAutoMockerOptionallyPushesInMocksInReplayModeToAllowForAAAsyntax()
{
- var autoMocker = new RhinoAutoMocker<ConcreteClass>(MockStyle.DynamicWithAAASupport);
+ var autoMocker = new RhinoAutoMocker<ConcreteClass>(MockMode.Replay);
autoMocker.ClassUnderTest.CallService();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|