summaryrefslogtreecommitdiff
path: root/src/Notepad/Infrastructure/Logging/LogSpecs.cs
blob: 3e6aead65315b018c74693c42c9f4517f333a3cc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
using MbUnit.Framework;
using Notepad.Infrastructure.Container;
using Rhino.Mocks;

namespace Notepad.Infrastructure.Logging {
    public class LogSpecs {}

    [TestFixture]
    public class when_creating_a_logger_for_a_particular_type_ {
        private MockRepository mockery;
        private ILogFactory factory;

        [SetUp]
        public void SetUp() {
            mockery = new MockRepository();
            factory = mockery.DynamicMock<ILogFactory>();

            var resolver = mockery.DynamicMock<IDependencyRegistry>();
            SetupResult.For(resolver.FindAnImplementationOf<ILogFactory>()).Return(factory);

            Resolve.InitializeWith(resolver);
        }

        [Test]
        public void should_leverage_the_log_factory_to_create_a_logger_for_the_given_type() {
            var logger = mockery.DynamicMock<ILogger>();
            using (mockery.Record()) {
                Expect
                    .Call(factory.CreateFor(GetType()))
                    .Return(logger)
                    .Repeat
                    .AtLeastOnce();
            }

            using (mockery.Playback()) {
                Log.For(this);
            }
        }
    }
}