1: [TestFixture]
2: public class AssertCalledTester
3: {
4: private Dictionary<string, IDependency> dependencies;
5: private MockRepository mocks;
6:
7: [SetUp]
8: public void Setup()
9: {
10: mocks = new MockRepository();
11: dependencies = new Dictionary<string, IDependency>()
12: {
13: {"GenerateMock", MockRepository.GenerateMock<IDependency>()},
14: {"GenerateStub", MockRepository.GenerateStub<IDependency>()},
15: {"StrictMock", this.mocks.StrictMock<IDependency>()},
16: {"DynamicMock", this.mocks.DynamicMock<IDependency>()},
17: {"Stub", this.mocks.Stub<IDependency>()},
18: };
19: }
20:
21: [RowTest]
22: [Row("GenerateMock")]
23: [Row("GenerateStub")]
24: [Row("StrictMock")]
25: [Row("DynamicMock")]
26: [Row("Stub")]
27: public void When_does_it_work(string mockStyle)
28: {
29: var dependency = dependencies[mockStyle];
30: var caller = new Caller(dependency);
31: caller.Go();
32: dependency.AssertWasCalled(d => d.DoSomething());
33: }
34: }
35:
36: public class Caller
37: {
38: private readonly IDependency dependency;
39:
40: public Caller(IDependency dependency)
41: {
42: this.dependency = dependency;
43: }
44:
45: public void Go()
46: {
47: dependency.DoSomething();
48: }
49: }
50:
51: public interface IDependency
52: {
53: void DoSomething();
54: }