master
 1using MbUnit.Framework;
 2using Notepad.Infrastructure.Container;
 3using Rhino.Mocks;
 4
 5namespace Notepad.Infrastructure.Logging {
 6    public class LogSpecs {}
 7
 8    [TestFixture]
 9    public class when_creating_a_logger_for_a_particular_type_ {
10        private MockRepository mockery;
11        private ILogFactory factory;
12
13        [SetUp]
14        public void SetUp() {
15            mockery = new MockRepository();
16            factory = mockery.DynamicMock<ILogFactory>();
17
18            var resolver = mockery.DynamicMock<IDependencyRegistry>();
19            SetupResult.For(resolver.FindAnImplementationOf<ILogFactory>()).Return(factory);
20
21            Resolve.InitializeWith(resolver);
22        }
23
24        [Test]
25        public void should_leverage_the_log_factory_to_create_a_logger_for_the_given_type() {
26            var logger = mockery.DynamicMock<ILogger>();
27            using (mockery.Record()) {
28                Expect
29                    .Call(factory.CreateFor(GetType()))
30                    .Return(logger)
31                    .Repeat
32                    .AtLeastOnce();
33            }
34
35            using (mockery.Playback()) {
36                Log.For(this);
37            }
38        }
39    }
40}