|
From: <fli...@us...> - 2008-10-08 20:12:29
|
Revision: 179
http://structuremap.svn.sourceforge.net/structuremap/?rev=179&view=rev
Author: flimflan
Date: 2008-10-08 20:12:24 +0000 (Wed, 08 Oct 2008)
Log Message:
-----------
Fixed AAA support for PartialMockTheClassUnderTest, AddAdditionalMockFor, and CreateMockArrayFor
Modified Paths:
--------------
trunk/Source/StructureMap.AutoMocking/RhinoAutoMocker.cs
trunk/Source/StructureMap.Testing/AutoMocking/RhinoAutoMockerTester.cs
Modified: trunk/Source/StructureMap.AutoMocking/RhinoAutoMocker.cs
===================================================================
--- trunk/Source/StructureMap.AutoMocking/RhinoAutoMocker.cs 2008-10-08 19:29:40 UTC (rev 178)
+++ trunk/Source/StructureMap.AutoMocking/RhinoAutoMocker.cs 2008-10-08 20:12:24 UTC (rev 179)
@@ -22,14 +22,15 @@
{
private readonly AutoMockedContainer _container;
private TARGETCLASS _classUnderTest;
+ private readonly RhinoMocksServiceLocator _serviceLocator;
public RhinoAutoMocker() : this(MockMode.RecordAndReplay) {}
public RhinoAutoMocker(MockMode mockMode)
{
var mockCreationStrategy = getMockCreationStrategy(mockMode);
- var serviceLocator = new RhinoMocksServiceLocator(this, mockCreationStrategy);
- _container = new AutoMockedContainer(serviceLocator);
+ _serviceLocator = new RhinoMocksServiceLocator(this, mockCreationStrategy);
+ _container = new AutoMockedContainer(_serviceLocator);
}
@@ -159,7 +160,7 @@
/// <returns></returns>
public T AddAdditionalMockFor<T>() where T : class
{
- var mock = DynamicMock<T>();
+ var mock = _serviceLocator.Service<T>();
_container.Configure(r => r.InstanceOf<T>().Is.Object(mock));
return mock;
@@ -190,7 +191,7 @@
for (int i = 0; i < returnValue.Length; i++)
{
- returnValue[i] = DynamicMock<T>();
+ returnValue[i] = _serviceLocator.Service<T>();
}
InjectArray(returnValue);
Modified: trunk/Source/StructureMap.Testing/AutoMocking/RhinoAutoMockerTester.cs
===================================================================
--- trunk/Source/StructureMap.Testing/AutoMocking/RhinoAutoMockerTester.cs 2008-10-08 19:29:40 UTC (rev 178)
+++ trunk/Source/StructureMap.Testing/AutoMocking/RhinoAutoMockerTester.cs 2008-10-08 20:12:24 UTC (rev 179)
@@ -338,9 +338,72 @@
var autoMocker = new RhinoAutoMocker<ConcreteClass>(MockMode.AAA);
autoMocker.ClassUnderTest.CallService();
+ autoMocker.IsInReplayMode(autoMocker.Get<IMockedService>()).ShouldBeTrue();
autoMocker.Get<IMockedService>().AssertWasCalled(s => s.Go());
}
+ public interface IAnotherService
+ {
+
+ }
+
+ [Test]
+ public void AddAdditionalMockForCreatesMocksInRecordModeWhenUsingRecordReplay()
+ {
+ var autoMocker = new RhinoAutoMocker<ConcreteClass>(MockMode.RecordAndReplay);
+ autoMocker.AddAdditionalMockFor<IAnotherService>();
+
+ autoMocker.IsInReplayMode(autoMocker.Get<IAnotherService>()).ShouldBeFalse();
+ }
+
+ [Test]
+ public void AddAdditionalMockForCreatesMocksInReplayModeWhenUsingAAA()
+ {
+ var autoMocker = new RhinoAutoMocker<ConcreteClass>(MockMode.AAA);
+ autoMocker.AddAdditionalMockFor<IAnotherService>();
+
+ autoMocker.IsInReplayMode(autoMocker.Get<IAnotherService>()).ShouldBeTrue();
+ }
+
+ [Test]
+ public void CreateMockArrayForCreatesMocksInRecordModeWhenUsingReplayRecord()
+ {
+ var autoMocker = new RhinoAutoMocker<ConcreteClass>(MockMode.RecordAndReplay);
+ var mockArray = autoMocker.CreateMockArrayFor<IAnotherService>(3);
+ foreach (var service in mockArray)
+ {
+ autoMocker.IsInReplayMode(service).ShouldBeFalse();
+ }
+ }
+
+ [Test]
+ public void CreateMockArrayForCreatesMocksInReplayModeWhenUsingAAA()
+ {
+ var autoMocker = new RhinoAutoMocker<ConcreteClass>(MockMode.AAA);
+ var mockArray = autoMocker.CreateMockArrayFor<IAnotherService>(3);
+ foreach (var service in mockArray)
+ {
+ autoMocker.IsInReplayMode(service).ShouldBeTrue();
+ }
+ }
+
+ [Test]
+ public void PartialMockClassUnderTestCreatesMocksInRecordModeWhenUsingRecordReplay()
+ {
+ var autoMocker = new RhinoAutoMocker<ConcreteClass>(MockMode.RecordAndReplay);
+ autoMocker.PartialMockTheClassUnderTest();
+
+ autoMocker.IsInReplayMode(autoMocker.Get<IMockedService>()).ShouldBeFalse();
+ }
+
+ [Test]
+ public void PartialMockClassUnderTestCreatesMocksInReplayModeWhenUsingAAA()
+ {
+ var autoMocker = new RhinoAutoMocker<ConcreteClass>(MockMode.AAA);
+ autoMocker.PartialMockTheClassUnderTest();
+
+ autoMocker.IsInReplayMode(autoMocker.Get<IMockedService>()).ShouldBeTrue();
+ }
}
}
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|