|
From: <fli...@us...> - 2008-12-19 05:04:55
|
Revision: 200
http://structuremap.svn.sourceforge.net/structuremap/?rev=200&view=rev
Author: flimflan
Date: 2008-12-19 05:04:53 +0000 (Fri, 19 Dec 2008)
Log Message:
-----------
Added AutoMocking support for Moq
Modified Paths:
--------------
trunk/Source/StructureMap.AutoMocking/RhinoAutoMocker.cs
trunk/Source/StructureMap.AutoMocking/ServiceLocator.cs
trunk/Source/StructureMap.AutoMocking/StructureMap.AutoMocking.csproj
trunk/Source/StructureMap.Testing/AutoMocking/RhinoAutoMockerTester.cs
trunk/Source/StructureMap.Testing/StructureMap.Testing.csproj
Added Paths:
-----------
trunk/Source/StructureMap.AutoMocking/MoqAutoMocker.cs
trunk/Source/StructureMap.AutoMocking/MoqFactory.cs
trunk/Source/StructureMap.Testing/AutoMocking/AutoMockerTester.cs
trunk/Source/StructureMap.Testing/AutoMocking/MoqAutoMockerTester.cs
trunk/Source/StructureMap.Testing/AutoMocking/MoqFactoryTester.cs
trunk/bin/Moq.dll
Property Changed:
----------------
trunk/
Property changes on: trunk
___________________________________________________________________
Modified: svn:ignore
- build
results
push.bat
+ build
results
push.bat
deploy
TestResult.xml
Copied: trunk/Source/StructureMap.AutoMocking/MoqAutoMocker.cs (from rev 199, trunk/Source/StructureMap.AutoMocking/RhinoAutoMocker.cs)
===================================================================
--- trunk/Source/StructureMap.AutoMocking/MoqAutoMocker.cs (rev 0)
+++ trunk/Source/StructureMap.AutoMocking/MoqAutoMocker.cs 2008-12-19 05:04:53 UTC (rev 200)
@@ -0,0 +1,15 @@
+namespace StructureMap.AutoMocking
+{
+ /// <summary>
+ /// Provides an "Auto Mocking Container" for the concrete class TARGETCLASS using Moq
+ /// </summary>
+ /// <typeparam name="TARGETCLASS">The concrete class being tested</typeparam>
+ public class MoqAutoMocker<TARGETCLASS> : AutoMocker<TARGETCLASS> where TARGETCLASS : class
+ {
+ public MoqAutoMocker()
+ {
+ _serviceLocator = new MoqServiceLocator();
+ _container = new AutoMockedContainer(_serviceLocator);
+ }
+ }
+}
\ No newline at end of file
Property changes on: trunk/Source/StructureMap.AutoMocking/MoqAutoMocker.cs
___________________________________________________________________
Added: svn:mergeinfo
+
Copied: trunk/Source/StructureMap.AutoMocking/MoqFactory.cs (from rev 199, trunk/Source/StructureMap.AutoMocking/RhinoMockRepositoryProxy.cs)
===================================================================
--- trunk/Source/StructureMap.AutoMocking/MoqFactory.cs (rev 0)
+++ trunk/Source/StructureMap.AutoMocking/MoqFactory.cs 2008-12-19 05:04:53 UTC (rev 200)
@@ -0,0 +1,36 @@
+using System;
+using System.Reflection;
+
+namespace StructureMap.AutoMocking
+{
+ public class MoqFactory
+ {
+ private readonly Type mockOpenType;
+
+ public MoqFactory()
+ {
+ var Moq = Assembly.Load("Moq");
+ mockOpenType = Moq.GetType("Moq.Mock`1");
+ if (mockOpenType == null) throw new InvalidOperationException("Unable to find Type Moq.Mock<T> in assembly " + Moq.Location);
+ }
+
+ public object CreateMock(Type type)
+ {
+ var closedType = mockOpenType.MakeGenericType(new[] {type});
+ var objectProperty = closedType.GetProperty("Object", type);
+ var instance = Activator.CreateInstance(closedType);
+ return objectProperty.GetValue(instance, null);
+ }
+
+ public object CreateMockThatCallsBase(Type type, object[] args)
+ {
+ var closedType = mockOpenType.MakeGenericType(new[] { type });
+ var callBaseProperty = closedType.GetProperty("CallBase", typeof(bool));
+ var objectProperty = closedType.GetProperty("Object", type);
+ var constructor = closedType.GetConstructor(new[]{typeof(object[])});
+ var instance = constructor.Invoke(new[]{args});
+ callBaseProperty.SetValue(instance, true, null);
+ return objectProperty.GetValue(instance, null);
+ }
+ }
+}
\ No newline at end of file
Property changes on: trunk/Source/StructureMap.AutoMocking/MoqFactory.cs
___________________________________________________________________
Added: svn:mergeinfo
+
Modified: trunk/Source/StructureMap.AutoMocking/RhinoAutoMocker.cs
===================================================================
--- trunk/Source/StructureMap.AutoMocking/RhinoAutoMocker.cs 2008-12-19 02:41:25 UTC (rev 199)
+++ trunk/Source/StructureMap.AutoMocking/RhinoAutoMocker.cs 2008-12-19 05:04:53 UTC (rev 200)
@@ -9,7 +9,7 @@
public enum MockMode { RecordAndReplay, AAA }
/// <summary>
- /// Provides an "Auto Mocking Container" for the concrete class TARGETCLASS
+ /// Provides an "Auto Mocking Container" for the concrete class TARGETCLASS using Rhino.Mocks
/// </summary>
/// <typeparam name="TARGETCLASS">The concrete class being tested</typeparam>
public class RhinoAutoMocker<TARGETCLASS> : AutoMocker<TARGETCLASS> where TARGETCLASS : class
Modified: trunk/Source/StructureMap.AutoMocking/ServiceLocator.cs
===================================================================
--- trunk/Source/StructureMap.AutoMocking/ServiceLocator.cs 2008-12-19 02:41:25 UTC (rev 199)
+++ trunk/Source/StructureMap.AutoMocking/ServiceLocator.cs 2008-12-19 05:04:53 UTC (rev 200)
@@ -54,4 +54,24 @@
return instance;
}
}
+
+ public class MoqServiceLocator : ServiceLocator
+ {
+ private readonly MoqFactory _moqs = new MoqFactory();
+
+ public T Service<T>() where T : class
+ {
+ return (T)_moqs.CreateMock(typeof(T));
+ }
+
+ public object Service(Type serviceType)
+ {
+ return _moqs.CreateMock(serviceType);
+ }
+
+ public T PartialMock<T>(params object[] args) where T : class
+ {
+ return (T)_moqs.CreateMockThatCallsBase(typeof (T), args);
+ }
+ }
}
\ No newline at end of file
Modified: trunk/Source/StructureMap.AutoMocking/StructureMap.AutoMocking.csproj
===================================================================
--- trunk/Source/StructureMap.AutoMocking/StructureMap.AutoMocking.csproj 2008-12-19 02:41:25 UTC (rev 199)
+++ trunk/Source/StructureMap.AutoMocking/StructureMap.AutoMocking.csproj 2008-12-19 05:04:53 UTC (rev 200)
@@ -2,7 +2,7 @@
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
- <ProductVersion>9.0.21022</ProductVersion>
+ <ProductVersion>9.0.30729</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{0ED1B206-A1C9-4A52-BA87-3BA416C8725C}</ProjectGuid>
<OutputType>Library</OutputType>
@@ -66,6 +66,8 @@
</Compile>
<Compile Include="AutoMockedContainer.cs" />
<Compile Include="AutoMocker.cs" />
+ <Compile Include="MoqAutoMocker.cs" />
+ <Compile Include="MoqFactory.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="RhinoAutoMocker.cs" />
<Compile Include="RhinoMockRepositoryProxy.cs" />
@@ -107,4 +109,4 @@
<Target Name="AfterBuild">
</Target>
-->
-</Project>
+</Project>
\ No newline at end of file
Copied: trunk/Source/StructureMap.Testing/AutoMocking/AutoMockerTester.cs (from rev 197, trunk/Source/StructureMap.Testing/AutoMocking/RhinoAutoMockerTester.cs)
===================================================================
--- trunk/Source/StructureMap.Testing/AutoMocking/AutoMockerTester.cs (rev 0)
+++ trunk/Source/StructureMap.Testing/AutoMocking/AutoMockerTester.cs 2008-12-19 05:04:53 UTC (rev 200)
@@ -0,0 +1,267 @@
+using System;
+using System.Linq.Expressions;
+using NUnit.Framework;
+using StructureMap.AutoMocking;
+
+namespace StructureMap.Testing.AutoMocking
+{
+ [TestFixture]
+ public abstract class AutoMockerTester
+ {
+ protected abstract AutoMocker<T> createAutoMocker<T>() where T : class;
+ protected abstract void setExpectation<T, TResult>(T mock, Expression<Func<T, TResult>> functionCall, TResult expectedResult) where T : class;
+
+ 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;
+ private readonly IMockedService2 _service2;
+ private readonly IMockedService3 _service3;
+
+ public ConcreteClass(IMockedService service, IMockedService2 service2, IMockedService3 service3)
+ {
+ _service = service;
+ _service2 = service2;
+ _service3 = service3;
+ }
+
+ public virtual string Name
+ {
+ get { return _service.Name; }
+ }
+
+ public IMockedService Service
+ {
+ get { return _service; }
+ }
+
+ public IMockedService2 Service2
+ {
+ get { return _service2; }
+ }
+
+ public IMockedService3 Service3
+ {
+ get { return _service3; }
+ }
+
+ public void CallService()
+ {
+ _service.Go();
+ }
+ }
+
+ public interface IMockedService
+ {
+ string Name { get; }
+ void Go();
+ }
+
+ public interface IMockedService2
+ {
+ void Go();
+ }
+
+ public interface IMockedService3
+ {
+ void Go();
+ }
+
+
+ public class StubService : IMockedService
+ {
+ private readonly string _name;
+
+ public StubService()
+ {
+ }
+
+ public StubService(string name)
+ {
+ _name = name;
+ }
+
+ #region IMockedService Members
+
+ public string Name
+ {
+ get { return _name; }
+ }
+
+ public void Go()
+ {
+ throw new NotImplementedException();
+ }
+
+ #endregion
+ }
+
+ public class ClassWithArray
+ {
+ private readonly IMockedService[] _services;
+
+ public ClassWithArray(IMockedService[] services)
+ {
+ _services = services;
+ }
+
+ public IMockedService[] Services
+ {
+ get { return _services; }
+ }
+ }
+
+ [Test]
+ public void CanInjectAnArrayOfMockServices1()
+ {
+ var mocker = createAutoMocker<ClassWithArray>();
+
+ IMockedService[] services = mocker.CreateMockArrayFor<IMockedService>(3);
+ ClassWithArray theClass = mocker.ClassUnderTest;
+
+ theClass.Services.Length.ShouldEqual(3);
+ }
+
+ [Test]
+ public void CanInjectAnArrayOfMockServices2()
+ {
+ var mocker = createAutoMocker<ClassWithArray>();
+
+ ClassWithArray theClass = mocker.ClassUnderTest;
+
+ theClass.Services.Length.ShouldEqual(0);
+ }
+
+
+ [Test]
+ public void CanInjectAnArrayOfMockServices3()
+ {
+ var mocker = createAutoMocker<ClassWithArray>();
+
+ IMockedService[] services = mocker.CreateMockArrayFor<IMockedService>(3);
+
+ mocker.PartialMockTheClassUnderTest();
+ ClassWithArray theClass = mocker.ClassUnderTest;
+
+ theClass.Services.Length.ShouldEqual(3);
+ }
+
+ [Test]
+ public void CanInjectAnArrayOfMockServices4()
+ {
+ var mocker = createAutoMocker<ClassWithArray>();
+
+ mocker.PartialMockTheClassUnderTest();
+ ClassWithArray theClass = mocker.ClassUnderTest;
+
+ theClass.Services.Length.ShouldEqual(0);
+ }
+
+
+ [Test]
+ public void GetTheSameConcreteClassTwiceFromCreate()
+ {
+ var autoMocker = createAutoMocker<ConcreteClass>();
+ ConcreteClass concreteClass = autoMocker.ClassUnderTest;
+
+ Assert.AreSame(concreteClass, autoMocker.ClassUnderTest);
+ Assert.AreSame(concreteClass, autoMocker.ClassUnderTest);
+ Assert.AreSame(concreteClass, autoMocker.ClassUnderTest);
+ }
+
+ [Test]
+ public void TheAutoMockerPushesInMocksAndAPreBuiltStubForAllOfTheConstructorArguments()
+ {
+ var autoMocker = createAutoMocker<ConcreteClass>();
+ var stub = new StubService();
+ autoMocker.Inject<IMockedService>(stub);
+
+ var service2 = autoMocker.Get<IMockedService2>();
+ var service3 = autoMocker.Get<IMockedService3>();
+
+ ConcreteClass concreteClass = autoMocker.ClassUnderTest;
+
+ Assert.AreSame(stub, concreteClass.Service);
+ Assert.AreSame(service2, concreteClass.Service2);
+ Assert.AreSame(service3, concreteClass.Service3);
+ }
+
+ [Test]
+ public void TheAutoMockerPushesInMocksForAllOfTheConstructorArgumentsForAPartialMock()
+ {
+ var autoMocker = createAutoMocker<ConcreteClass>();
+
+ var service = autoMocker.Get<IMockedService>();
+ var service2 = autoMocker.Get<IMockedService2>();
+ var service3 = autoMocker.Get<IMockedService3>();
+
+ autoMocker.PartialMockTheClassUnderTest();
+ ConcreteClass concreteClass = autoMocker.ClassUnderTest;
+
+ Assert.AreSame(service, concreteClass.Service);
+ Assert.AreSame(service2, concreteClass.Service2);
+ Assert.AreSame(service3, concreteClass.Service3);
+ }
+
+ [Test]
+ public void UseConcreteClassFor()
+ {
+ var mocker = createAutoMocker<ConcreteClass>();
+ mocker.UseConcreteClassFor<ConcreteThing>();
+
+ var 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 UseTheAutoMockerToStartUpTheConcreteClass()
+ {
+ var autoMocker = createAutoMocker<ConcreteClass>();
+ setExpectation(autoMocker.Get<IMockedService>(), x=> x.Name, "Jeremy");
+ autoMocker.ClassUnderTest.Name.ShouldEqual("Jeremy");
+ }
+
+ [Test]
+ public void UseTheAutoMockerToStartUpTheConcreteClassAsAPartialMockAndSetTheNameMethodUp()
+ {
+ var autoMocker = createAutoMocker<ConcreteClass>();
+
+ autoMocker.PartialMockTheClassUnderTest();
+ ConcreteClass concreteClass = autoMocker.ClassUnderTest;
+ setExpectation(concreteClass, x=> x.Name, "Max");
+ concreteClass.Name.ShouldEqual("Max");
+ }
+
+ public interface IAnotherService
+ {
+
+ }
+
+ }
+}
\ No newline at end of file
Property changes on: trunk/Source/StructureMap.Testing/AutoMocking/AutoMockerTester.cs
___________________________________________________________________
Added: svn:mergeinfo
+
Added: trunk/Source/StructureMap.Testing/AutoMocking/MoqAutoMockerTester.cs
===================================================================
--- trunk/Source/StructureMap.Testing/AutoMocking/MoqAutoMockerTester.cs (rev 0)
+++ trunk/Source/StructureMap.Testing/AutoMocking/MoqAutoMockerTester.cs 2008-12-19 05:04:53 UTC (rev 200)
@@ -0,0 +1,22 @@
+using System;
+using Moq;
+using NUnit.Framework;
+using StructureMap.AutoMocking;
+using System.Linq.Expressions;
+
+namespace StructureMap.Testing.AutoMocking
+{
+ [TestFixture]
+ public class MoqAutoMockerTester : AutoMockerTester
+ {
+ protected override AutoMocker<T> createAutoMocker<T>()
+ {
+ return new MoqAutoMocker<T>();
+ }
+
+ protected override void setExpectation<T, TResult>(T mock, Expression<Func<T, TResult>> functionCall, TResult expectedResult)
+ {
+ Mock.Get(mock).Expect(functionCall).Returns(expectedResult);
+ }
+ }
+}
Copied: trunk/Source/StructureMap.Testing/AutoMocking/MoqFactoryTester.cs (from rev 199, trunk/Source/StructureMap.Testing/AutoMocking/RhinoMockRepositoryProxyTester.cs)
===================================================================
--- trunk/Source/StructureMap.Testing/AutoMocking/MoqFactoryTester.cs (rev 0)
+++ trunk/Source/StructureMap.Testing/AutoMocking/MoqFactoryTester.cs 2008-12-19 05:04:53 UTC (rev 200)
@@ -0,0 +1,46 @@
+using Moq;
+using NUnit.Framework;
+using StructureMap.AutoMocking;
+
+namespace StructureMap.Testing.AutoMocking
+{
+ [TestFixture]
+ public class MoqFactoryTester
+ {
+
+ [Test]
+ public void sample_moq_usage()
+ {
+ var mock = new Mock<ITestMocks>();
+ mock.Expect(t => t.Answer()).Returns("Moq");
+ mock.Object.Answer().ShouldEqual("Moq");
+ }
+
+ [Test]
+ public void can_make_dynamic_mocks()
+ {
+ var moqFactory = new MoqFactory();
+ var fooMock = moqFactory.CreateMock(typeof(ITestMocks));
+
+ fooMock.ShouldNotBeNull();
+ }
+
+ [Test]
+ public void can_make_partial_mocks()
+ {
+ var moqFactory = new MoqFactory();
+ var testPartials = (TestPartials)moqFactory.CreateMockThatCallsBase(typeof(TestPartials), new object[0]);
+
+ testPartials.ShouldNotBeNull();
+ testPartials.Concrete().ShouldEqual("Concrete");
+ testPartials.Virtual().ShouldEqual("Virtual");
+
+ var mock = Mock.Get(testPartials);
+ mock.Expect(t => t.Virtual()).Returns("MOQed!");
+ testPartials.Virtual().ShouldEqual("MOQed!");
+ }
+
+ }
+
+
+}
\ No newline at end of file
Property changes on: trunk/Source/StructureMap.Testing/AutoMocking/MoqFactoryTester.cs
___________________________________________________________________
Added: svn:mergeinfo
+
Modified: trunk/Source/StructureMap.Testing/AutoMocking/RhinoAutoMockerTester.cs
===================================================================
--- trunk/Source/StructureMap.Testing/AutoMocking/RhinoAutoMockerTester.cs 2008-12-19 02:41:25 UTC (rev 199)
+++ trunk/Source/StructureMap.Testing/AutoMocking/RhinoAutoMockerTester.cs 2008-12-19 05:04:53 UTC (rev 200)
@@ -1,4 +1,5 @@
using System;
+using System.Linq.Expressions;
using NUnit.Framework;
using Rhino.Mocks;
using Rhino.Mocks.Interfaces;
@@ -8,7 +9,7 @@
namespace StructureMap.Testing.AutoMocking
{
[TestFixture]
- public class RhinoAutoMockerTester
+ public class RhinoAutoMockerTester : AutoMockerTester
{
#region Setup/Teardown
@@ -26,130 +27,16 @@
private RhinoMocksAAAServiceLocator _locator;
private AutoMockedContainer _container;
-
- public class ConcreteThing
+ protected override AutoMocker<T> createAutoMocker<T>()
{
- 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; }
- }
+ return new RhinoAutoMocker<T>();
}
- public class ConcreteClass
+ protected override void setExpectation<T,TResult>(T mock, Expression<Func<T,TResult>> functionCall, TResult expectedResult)
{
- private readonly IMockedService _service;
- private readonly IMockedService2 _service2;
- private readonly IMockedService3 _service3;
-
- public ConcreteClass(IMockedService service, IMockedService2 service2, IMockedService3 service3)
- {
- _service = service;
- _service2 = service2;
- _service3 = service3;
- }
-
- public virtual string Name
- {
- get { return _service.Name; }
- }
-
- public IMockedService Service
- {
- get { return _service; }
- }
-
- public IMockedService2 Service2
- {
- get { return _service2; }
- }
-
- public IMockedService3 Service3
- {
- get { return _service3; }
- }
-
- public void CallService()
- {
- _service.Go();
- }
+ mock.Expect(x => functionCall.Compile()(mock)).Return(expectedResult);
}
- public interface IMockedService
- {
- string Name { get; }
- void Go();
- }
-
- public interface IMockedService2
- {
- void Go();
- }
-
- public interface IMockedService3
- {
- void Go();
- }
-
-
- public class StubService : IMockedService
- {
- private readonly string _name;
-
- public StubService()
- {
- }
-
- public StubService(string name)
- {
- _name = name;
- }
-
- #region IMockedService Members
-
- public string Name
- {
- get { return _name; }
- }
-
- public void Go()
- {
- throw new NotImplementedException();
- }
-
- #endregion
- }
-
- public class ClassWithArray
- {
- private readonly IMockedService[] _services;
-
- public ClassWithArray(IMockedService[] services)
- {
- _services = services;
- }
-
- public IMockedService[] Services
- {
- get { return _services; }
- }
- }
-
[Test]
public void AutoFillAConcreteClassWithMocks()
{
@@ -164,54 +51,8 @@
Assert.AreSame(service3, concreteClass.Service3);
}
- [Test]
- public void CanInjectAnArrayOfMockServices1()
- {
- var mocker = new RhinoAutoMocker<ClassWithArray>();
- IMockedService[] services = mocker.CreateMockArrayFor<IMockedService>(3);
- ClassWithArray theClass = mocker.ClassUnderTest;
-
- theClass.Services.Length.ShouldEqual(3);
- }
-
[Test]
- public void CanInjectAnArrayOfMockServices2()
- {
- var mocker = new RhinoAutoMocker<ClassWithArray>();
-
- ClassWithArray theClass = mocker.ClassUnderTest;
-
- theClass.Services.Length.ShouldEqual(0);
- }
-
-
- [Test]
- public void CanInjectAnArrayOfMockServices3()
- {
- var mocker = new RhinoAutoMocker<ClassWithArray>();
-
- IMockedService[] services = mocker.CreateMockArrayFor<IMockedService>(3);
-
- mocker.PartialMockTheClassUnderTest();
- ClassWithArray theClass = mocker.ClassUnderTest;
-
- theClass.Services.Length.ShouldEqual(3);
- }
-
- [Test]
- public void CanInjectAnArrayOfMockServices4()
- {
- var mocker = new RhinoAutoMocker<ClassWithArray>();
-
- mocker.PartialMockTheClassUnderTest();
- ClassWithArray theClass = mocker.ClassUnderTest;
-
- theClass.Services.Length.ShouldEqual(0);
- }
-
-
- [Test]
public void GetAFullMockForAServiceThatHasNotPreviouslyBeenRequested()
{
var service = _container.GetInstance<IMockedService>();
@@ -219,17 +60,6 @@
}
[Test]
- public void GetTheSameConcreteClassTwiceFromCreate()
- {
- var autoMocker = new RhinoAutoMocker<ConcreteClass>();
- ConcreteClass concreteClass = autoMocker.ClassUnderTest;
-
- Assert.AreSame(concreteClass, autoMocker.ClassUnderTest);
- Assert.AreSame(concreteClass, autoMocker.ClassUnderTest);
- Assert.AreSame(concreteClass, autoMocker.ClassUnderTest);
- }
-
- [Test]
public void InjectAStubAndGetTheStubBack()
{
var stub = new StubService();
@@ -250,76 +80,8 @@
Assert.AreSame(service, _container.GetInstance<IMockedService>());
}
- [Test]
- public void TheAutoMockerPushesInMocksAndAPreBuiltStubForAllOfTheConstructorArguments()
- {
- var autoMocker = new RhinoAutoMocker<ConcreteClass>();
- var stub = new StubService();
- autoMocker.Inject<IMockedService>(stub);
- var service2 = autoMocker.Get<IMockedService2>();
- var service3 = autoMocker.Get<IMockedService3>();
-
- ConcreteClass concreteClass = autoMocker.ClassUnderTest;
-
- Assert.AreSame(stub, concreteClass.Service);
- Assert.AreSame(service2, concreteClass.Service2);
- Assert.AreSame(service3, concreteClass.Service3);
- }
-
[Test]
- public void TheAutoMockerPushesInMocksForAllOfTheConstructorArgumentsForAPartialMock()
- {
- var autoMocker = new RhinoAutoMocker<ConcreteClass>();
-
- var service = autoMocker.Get<IMockedService>();
- var service2 = autoMocker.Get<IMockedService2>();
- var service3 = autoMocker.Get<IMockedService3>();
-
- autoMocker.PartialMockTheClassUnderTest();
- ConcreteClass concreteClass = autoMocker.ClassUnderTest;
-
- Assert.AreSame(service, concreteClass.Service);
- Assert.AreSame(service2, concreteClass.Service2);
- Assert.AreSame(service3, concreteClass.Service3);
- }
-
- [Test]
- public void UseConcreteClassFor()
- {
- var mocker = new RhinoAutoMocker<ConcreteClass>();
- mocker.UseConcreteClassFor<ConcreteThing>();
-
- var 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 UseTheAutoMockerToStartUpTheConcreteClass()
- {
- var autoMocker = new RhinoAutoMocker<ConcreteClass>();
-
- autoMocker.Get<IMockedService>().Expect(x => x.Name).Return("Jeremy");
-
- autoMocker.ClassUnderTest.Name.ShouldEqual("Jeremy");
- }
-
- [Test]
- public void UseTheAutoMockerToStartUpTheConcreteClassAsAPartialMockAndSetTheNameMethodUp()
- {
- var autoMocker = new RhinoAutoMocker<ConcreteClass>();
-
- autoMocker.PartialMockTheClassUnderTest();
- ConcreteClass concreteClass = autoMocker.ClassUnderTest;
-
- concreteClass.Expect(x => x.Name).Return("Max");
- concreteClass.Name.ShouldEqual("Max");
- }
-
- [Test]
public void TheAutoMockerOptionallyPushesInMocksInReplayModeToAllowForAAAsyntax()
{
var autoMocker = new RhinoAutoMocker<ConcreteClass>(MockMode.AAA);
Modified: trunk/Source/StructureMap.Testing/StructureMap.Testing.csproj
===================================================================
--- trunk/Source/StructureMap.Testing/StructureMap.Testing.csproj 2008-12-19 02:41:25 UTC (rev 199)
+++ trunk/Source/StructureMap.Testing/StructureMap.Testing.csproj 2008-12-19 05:04:53 UTC (rev 200)
@@ -1,7 +1,7 @@
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
<PropertyGroup>
<ProjectType>Local</ProjectType>
- <ProductVersion>9.0.21022</ProductVersion>
+ <ProductVersion>9.0.30729</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{63C2742D-B6E2-484F-AFDB-346873075C5E}</ProjectGuid>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
@@ -91,6 +91,10 @@
<ErrorReport>prompt</ErrorReport>
</PropertyGroup>
<ItemGroup>
+ <Reference Include="Moq, Version=2.6.1014.1, Culture=neutral, PublicKeyToken=69f491c39445e920, processorArchitecture=MSIL">
+ <SpecificVersion>False</SpecificVersion>
+ <HintPath>..\..\bin\Moq.dll</HintPath>
+ </Reference>
<Reference Include="nunit.framework, Version=2.2.6.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\bin\NUnit\nunit.framework.dll</HintPath>
@@ -169,6 +173,9 @@
<Compile Include="Attributes\PluginFamilyAttributeTester.cs">
<SubType>Code</SubType>
</Compile>
+ <Compile Include="AutoMocking\AutoMockerTester.cs" />
+ <Compile Include="AutoMocking\MoqAutoMockerTester.cs" />
+ <Compile Include="AutoMocking\MoqFactoryTester.cs" />
<Compile Include="AutoMocking\RhinoAutoMockerTester.cs" />
<Compile Include="AutoMocking\RhinoMockRepositoryProxyTester.cs" />
<Compile Include="BuildSessionTester.cs" />
@@ -446,4 +453,4 @@
<PostBuildEvent>
</PostBuildEvent>
</PropertyGroup>
-</Project>
+</Project>
\ No newline at end of file
Added: trunk/bin/Moq.dll
===================================================================
(Binary files differ)
Property changes on: trunk/bin/Moq.dll
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|