diff --git a/SpecsFor.Autofac.Tests/SpecsForSpecs.cs b/SpecsFor.Autofac.Tests/SpecsForSpecs.cs index fa574d5..097c570 100644 --- a/SpecsFor.Autofac.Tests/SpecsForSpecs.cs +++ b/SpecsFor.Autofac.Tests/SpecsForSpecs.cs @@ -157,7 +157,7 @@ public class when_using_a_mock_repository : SpecsFor private int _result; private readonly MockRepository _repo = new MockRepository(MockBehavior.Loose); - public override AutoMock CreateMocker() + public override AutoMock CreateInternalMocker() { return AutoMock.GetFromRepository(_repo); } diff --git a/SpecsFor.Autofac/AutofacAutoMocker.cs b/SpecsFor.Autofac/AutofacAutoMocker.cs index 0dea10a..d7909f8 100644 --- a/SpecsFor.Autofac/AutofacAutoMocker.cs +++ b/SpecsFor.Autofac/AutofacAutoMocker.cs @@ -4,27 +4,32 @@ namespace SpecsFor.Autofac { - public class AutofacAutoMocker : IAutoMocker + public class AutofacAutoMocker : IAutoMocker where TSut : class { - public AutoMock Mocker { get; private set; } + public AutoMock InternalMocker { get; private set; } + + private readonly SpecsFor _specsFor; + + public AutofacAutoMocker(ISpecs specsFor) + { + _specsFor = (SpecsFor)specsFor; + + InternalMocker = _specsFor.CreateInternalMocker(); + } public TSut CreateSUT() where TSut : class { - return Mocker.Create(); + return InternalMocker.Create(); } public Mock GetMockFor() where T : class { - return Mocker.Mock(); + return InternalMocker.Mock(); } - public void ConfigureContainer(ISpecs specsFor) where TSut : class + public void ConfigureContainer() { - var specs = (SpecsFor) specsFor; - - Mocker = specs.CreateMocker(); - - specs.ConfigureMocker(Mocker); + _specsFor.ConfigureMocker(InternalMocker); } } } \ No newline at end of file diff --git a/SpecsFor.Autofac/SpecsFor.cs b/SpecsFor.Autofac/SpecsFor.cs index ea9539d..8a082b5 100644 --- a/SpecsFor.Autofac/SpecsFor.cs +++ b/SpecsFor.Autofac/SpecsFor.cs @@ -22,7 +22,7 @@ public virtual void ConfigureMocker(AutoMock mocker) /// AutoMock.GetFromRepository(myRepository); /// /// - public virtual AutoMock CreateMocker() + public virtual AutoMock CreateInternalMocker() { return AutoMock.GetLoose(); } @@ -34,7 +34,7 @@ public virtual AutoMock CreateMocker() /// protected override IAutoMocker CreateAutoMocker() { - return new AutofacAutoMocker(); + return new AutofacAutoMocker(this); } } } diff --git a/SpecsFor.Core/IAutoMocker.cs b/SpecsFor.Core/IAutoMocker.cs index 55e043f..e10db19 100644 --- a/SpecsFor.Core/IAutoMocker.cs +++ b/SpecsFor.Core/IAutoMocker.cs @@ -8,6 +8,6 @@ public interface IAutoMocker Mock GetMockFor() where T : class; - void ConfigureContainer(ISpecs specsFor) where TSut : class; + void ConfigureContainer(); } } \ No newline at end of file diff --git a/SpecsFor.Core/SpecsForEngine.cs b/SpecsFor.Core/SpecsForEngine.cs index e671499..f4b2126 100644 --- a/SpecsFor.Core/SpecsForEngine.cs +++ b/SpecsFor.Core/SpecsForEngine.cs @@ -43,7 +43,7 @@ public void Init() _currentBehaviors.ApplySpecInitTo(_specs); - Mocker.ConfigureContainer(_specs); + Mocker.ConfigureContainer(); _specs.InitializeClassUnderTest(); diff --git a/SpecsFor.StructureMap/SpecsFor.cs b/SpecsFor.StructureMap/SpecsFor.cs index 9d4016f..232b013 100644 --- a/SpecsFor.StructureMap/SpecsFor.cs +++ b/SpecsFor.StructureMap/SpecsFor.cs @@ -11,7 +11,7 @@ public virtual void ConfigureContainer(Container container) protected override IAutoMocker CreateAutoMocker() { - return new StructureMapAutoMocker(); + return new StructureMapAutoMocker(this); } } } \ No newline at end of file diff --git a/SpecsFor.StructureMap/StructureMapAutoMocker.cs b/SpecsFor.StructureMap/StructureMapAutoMocker.cs index 95d7bb8..ae703cd 100644 --- a/SpecsFor.StructureMap/StructureMapAutoMocker.cs +++ b/SpecsFor.StructureMap/StructureMapAutoMocker.cs @@ -7,8 +7,12 @@ public class StructureMapAutoMocker : IAutoMocker where TSut : class { public MoqAutoMocker MoqAutoMocker { get; } - public StructureMapAutoMocker() + private readonly SpecsFor _specsFor; + + public StructureMapAutoMocker(ISpecs specsFor) { + _specsFor = (SpecsFor)specsFor; + MoqAutoMocker = new MoqAutoMocker(); } @@ -22,11 +26,9 @@ T IAutoMocker.CreateSUT() return Mock.Get(MoqAutoMocker.Get()); } - public void ConfigureContainer(ISpecs specsFor) where T : class + public void ConfigureContainer() { - var specs = (SpecsFor) specsFor; - - specs.ConfigureContainer(MoqAutoMocker.Container); + _specsFor.ConfigureContainer(MoqAutoMocker.Container); } } } \ No newline at end of file