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