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);
        }
示例#2
0
        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>());
        }