public void GetService_returns_null_when_contract_type_does_not_match() { var resolver = new WrappingDependencyResolver<IPilkington>( new Mock<IDbDependencyResolver>().Object, (s, k) => { Assert.True(false); return s; }); Assert.Null(resolver.GetService<Random>()); }
public void GetService_wraps_service_and_returns_wrapped_service() { var originalService = new Mock<IPilkington>().Object; var wrappedService = new Mock<IPilkington>().Object; var snapshot = new Mock<IDbDependencyResolver>(); snapshot.Setup(m => m.GetService(typeof(IPilkington), "Foo")).Returns(originalService); var resolver = new WrappingDependencyResolver<IPilkington>( snapshot.Object, (s, k) => { Assert.Same(originalService, s); Assert.Equal("Foo", k); return wrappedService; }); Assert.Same(wrappedService, resolver.GetService<IPilkington>("Foo")); snapshot.Verify(m => m.GetService(typeof(IPilkington), "Foo")); }
public void GetServices_wraps_service_and_returns_wrapped_services() { var originalService1 = new Mock<IPilkington>().Object; var wrappedService1 = new Mock<IPilkington>().Object; var originalService2 = new Mock<IPilkington>().Object; var wrappedService2 = new Mock<IPilkington>().Object; var snapshot = new Mock<IDbDependencyResolver>(); snapshot.Setup(m => m.GetServices(typeof(IPilkington), "Foo")) .Returns(new object[] { originalService1, originalService2 }); var resolver = new WrappingDependencyResolver<IPilkington>( snapshot.Object, (s, k) => { Assert.Equal("Foo", k); return s == originalService1 ? wrappedService1 : s == originalService2 ? wrappedService2 : null; }); var pilkingtons = resolver.GetServices<IPilkington>("Foo").ToList(); Assert.Equal(2, pilkingtons.Count); Assert.Same(wrappedService1, pilkingtons[0]); Assert.Same(wrappedService2, pilkingtons[1]); snapshot.Verify(m => m.GetServices(typeof(IPilkington), "Foo")); }