From: <jer...@us...> - 2008-02-12 15:23:19
|
Revision: 64 http://structuremap.svn.sourceforge.net/structuremap/?rev=64&view=rev Author: jeremydmiller Date: 2008-02-12 07:23:15 -0800 (Tue, 12 Feb 2008) Log Message: ----------- using DynamicMocks by default in the AutoMocking Modified Paths: -------------- trunk/Source/StructureMap.AutoMocking/RhinoAutoMocker.cs trunk/Source/StructureMap.AutoMocking/RhinoMocksServiceLocator.cs trunk/Source/StructureMap.Testing/AutoMocking/RhinoAutoMockerTester.cs Modified: trunk/Source/StructureMap.AutoMocking/RhinoAutoMocker.cs =================================================================== --- trunk/Source/StructureMap.AutoMocking/RhinoAutoMocker.cs 2008-02-09 16:10:55 UTC (rev 63) +++ trunk/Source/StructureMap.AutoMocking/RhinoAutoMocker.cs 2008-02-12 15:23:15 UTC (rev 64) @@ -79,6 +79,15 @@ { _manager.InjectStub<T>(stub); } + + // So that Aaron Jensen can use his concrete HubService object + // Construct whatever T is with all mocks, and make sure that the + // ClassUnderTest gets built with a concrete T + public void UseConcreteClassFor<T>() + { + T concreteClass = _manager.FillDependencies<T>(); + _manager.InjectStub(concreteClass); + } } Modified: trunk/Source/StructureMap.AutoMocking/RhinoMocksServiceLocator.cs =================================================================== --- trunk/Source/StructureMap.AutoMocking/RhinoMocksServiceLocator.cs 2008-02-09 16:10:55 UTC (rev 63) +++ trunk/Source/StructureMap.AutoMocking/RhinoMocksServiceLocator.cs 2008-02-12 15:23:15 UTC (rev 64) @@ -21,12 +21,12 @@ public T Service<T>() { - return _mocks.CreateMock<T>(); + return _mocks.DynamicMock<T>(); } public object Service(Type serviceType) { - return _mocks.CreateMock(serviceType); + return _mocks.DynamicMock(serviceType); } #endregion Modified: trunk/Source/StructureMap.Testing/AutoMocking/RhinoAutoMockerTester.cs =================================================================== --- trunk/Source/StructureMap.Testing/AutoMocking/RhinoAutoMockerTester.cs 2008-02-09 16:10:55 UTC (rev 63) +++ trunk/Source/StructureMap.Testing/AutoMocking/RhinoAutoMockerTester.cs 2008-02-12 15:23:15 UTC (rev 64) @@ -26,6 +26,30 @@ private AutoMockedInstanceManager _instanceManager; + public class ConcreteThing + { + private readonly IMockedService _service; + private readonly IMockedService2 _service2; + + + public ConcreteThing(IMockedService service, IMockedService2 service2) + { + _service = service; + _service2 = service2; + } + + + public IMockedService Service + { + get { return _service; } + } + + public IMockedService2 Service2 + { + get { return _service2; } + } + } + public class ConcreteClass { private readonly IMockedService _service; @@ -106,6 +130,19 @@ } [Test] + public void UseConcreteClassFor() + { + RhinoAutoMocker<ConcreteClass> mocker = new RhinoAutoMocker<ConcreteClass>(); + mocker.UseConcreteClassFor<ConcreteThing>(); + + ConcreteThing thing = mocker.Get<ConcreteThing>(); + Assert.IsInstanceOfType(typeof(ConcreteThing), thing); + + Assert.AreSame(mocker.Get<IMockedService>(), thing.Service); + Assert.AreSame(mocker.Get<IMockedService2>(), thing.Service2); + } + + [Test] public void AutoFillAConcreteClassWithMocks() { IMockedService service = _instanceManager.CreateInstance<IMockedService>(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |