main
 1using MbUnit.Framework;
 2using Rhino.Mocks;
 3
 4namespace Spec.Dox.Test
 5{
 6    [TestFixture]
 7    public abstract class context_spec
 8    {
 9        [SetUp]
10        public void SetUp()
11        {
12            UnderTheseConditions();
13            BecauseOf();
14        }
15
16        [TearDown]
17        public virtual void Cleanup() {}
18
19        protected abstract void UnderTheseConditions();
20
21        protected abstract void BecauseOf();
22
23        protected TypeToMock Mock<TypeToMock>() where TypeToMock : class
24        {
25            return MockRepository.GenerateMock<TypeToMock>();
26        }
27
28        protected TypeToMock Stub<TypeToMock>() where TypeToMock : class
29        {
30            return MockRepository.GenerateStub<TypeToMock>();
31        }
32    }
33
34    [TestFixture]
35    public abstract class context_spec<SystemUnderTest>
36    {
37        [SetUp]
38        public void SetUp()
39        {
40            sut = EstablishContext();
41            Because();
42        }
43
44        [TearDown]
45        public virtual void Cleanup() {}
46
47        protected abstract SystemUnderTest EstablishContext();
48
49        protected abstract void Because();
50
51        protected TypeToMock Dependency<TypeToMock>() where TypeToMock : class
52        {
53            return MockRepository.GenerateMock<TypeToMock>();
54        }
55
56        protected TypeToMock Stub<TypeToMock>() where TypeToMock : class
57        {
58            return MockRepository.GenerateStub<TypeToMock>();
59        }
60
61        protected SystemUnderTest sut { get; private set; }
62    }
63}