public virtual void AddSecondaryResolver(IDbDependencyResolver resolver) { DebugCheck.NotNull(resolver); // Secondary resolvers only kick in if nothing else before the root resolves the dependency. _rootResolver.AddSecondaryResolver(resolver); }
public void The_root_resolver_resolves_from_secondary_resolvers_before_roots() { var attributeProvider1 = new Mock <AttributeProvider>().Object; var attributeProvider2 = new Mock <AttributeProvider>().Object; var mockSecondaryResolver1 = new Mock <IDbDependencyResolver>(); mockSecondaryResolver1.Setup(m => m.GetService(typeof(AttributeProvider), null)).Returns(attributeProvider1); var mockSecondaryResolver2 = new Mock <IDbDependencyResolver>(); mockSecondaryResolver2.Setup(m => m.GetService(typeof(AttributeProvider), null)).Returns(attributeProvider2); var rootResolver = new RootDependencyResolver(); Assert.IsType <AttributeProvider>(rootResolver.GetService <AttributeProvider>()); rootResolver.AddSecondaryResolver(mockSecondaryResolver1.Object); Assert.Same(attributeProvider1, rootResolver.GetService <AttributeProvider>()); rootResolver.AddSecondaryResolver(mockSecondaryResolver2.Object); Assert.Same(attributeProvider2, rootResolver.GetService <AttributeProvider>()); Assert.IsType <ViewAssemblyCache>(new RootDependencyResolver().GetService <IViewAssemblyCache>()); }
public void The_root_resolver_resolves_from_secondary_resolvers_before_roots() { var attributeProvider1 = new Mock<AttributeProvider>().Object; var attributeProvider2 = new Mock<AttributeProvider>().Object; var mockSecondaryResolver1 = new Mock<IDbDependencyResolver>(); mockSecondaryResolver1.Setup(m => m.GetService(typeof(AttributeProvider), null)).Returns(attributeProvider1); var mockSecondaryResolver2 = new Mock<IDbDependencyResolver>(); mockSecondaryResolver2.Setup(m => m.GetService(typeof(AttributeProvider), null)).Returns(attributeProvider2); var rootResolver = new RootDependencyResolver(); Assert.IsType<AttributeProvider>(rootResolver.GetService<AttributeProvider>()); rootResolver.AddSecondaryResolver(mockSecondaryResolver1.Object); Assert.Same(attributeProvider1, rootResolver.GetService<AttributeProvider>()); rootResolver.AddSecondaryResolver(mockSecondaryResolver2.Object); Assert.Same(attributeProvider2, rootResolver.GetService<AttributeProvider>()); Assert.IsType<ViewAssemblyCache>(new RootDependencyResolver().GetService<IViewAssemblyCache>()); }