using System; using NUnit.Framework; using Rhino.Mocks; using XF.Specs.AutoMocking; namespace XF.Specs { [TestFixture] public class Spec { private MockRepository _mocks; private AutoMockingContainer _autoMockingContainer; [SetUp] public void MainSetup() { _mocks = new MockRepository(); _autoMockingContainer = new AutoMockingContainer(_mocks); _autoMockingContainer.Initialize(); Before_each_spec(); } [TearDown] protected void MainTeardown() { After_each_spec(); } public MockRepository Mocks { get { return _mocks; } } protected virtual void Before_each_spec() { } protected virtual void After_each_spec() { } protected IDisposable Record { get { return _mocks.Record(); } } protected IDisposable Playback { get { return _mocks.Playback(); } } protected TType Mock() { return _mocks.DynamicMock(); } protected TType Mock(object[] args) { return _mocks.DynamicMock(args); } protected TType Stub() { return _mocks.Stub(); } protected TType Stub(object[] args) { return _mocks.Stub(args); } protected TType Partial() where TType : class { return _mocks.PartialMock(); } protected TType Get() where TType : class { return _autoMockingContainer.Get(); } protected TType Create() where TType : class { return _autoMockingContainer.Create(); } protected void Verify(object mock) { _mocks.Verify(mock); } protected void VerifyAll() { _mocks.VerifyAll(); } protected void Spec_not_implemented() { Console.WriteLine("Not implemented"); } } }