summaryrefslogtreecommitdiff
path: root/slips/src/test/Marina.Test/Unit/Infrastructure/Logging/Interfaces/LogTest.cs
blob: 504d5986e72213a88a2a295911b29fd84b21a26a (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
using Marina.Infrastructure.Container;
using Marina.Infrastructure.Logging.Interfaces;
using MbUnit.Framework;
using Rhino.Mocks;

namespace Marina.Test.Unit.Infrastructure.Logging.Interfaces {
	[TestFixture]
	public class LogTest {
		private MockRepository mockery;

		[SetUp]
		public void SetUp( ) {
			mockery = new MockRepository( );
		}

		[Test]
		public void Should_leverage_factory_to_return_a_logger_to_the_client( ) {
			ILog mockLog = mockery.DynamicMock< ILog >( );
			ILogFactory mockLogFactory = mockery.DynamicMock< ILogFactory >( );

			IDependencyContainer mockContainer = mockery.DynamicMock< IDependencyContainer >( );

			using ( mockery.Record( ) ) {
				Expect.Call( mockContainer.GetMeAnImplementationOfAn< ILogFactory >( ) ).Return( mockLogFactory );
				Expect.Call( mockLogFactory.CreateFor( typeof( LogTest ) ) ).Return( mockLog );
			}

			using ( mockery.Playback( ) ) {
				Resolve.InitializeWith( mockContainer );
				ILog log = Log.For( this );
				Assert.AreEqual( mockLog, log );
				Resolve.InitializeWith( null );
			}
		}
	}
}