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