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