public void The_root_resolver_uses_the_default_provider_services_resolver_and_caches_provider_instances()
        {
            var providerServices = new Mock<DbProviderServices>().Object;
            var mockProviderResolver = new Mock<DefaultProviderServicesResolver>();
            mockProviderResolver
                .Setup(m => m.GetService(typeof(DbProviderServices), "FooClient"))
                .Returns(providerServices);

            var resolver = new RootDependencyResolver(new MigrationsConfigurationResolver(), mockProviderResolver.Object);

            Assert.Same(providerServices, resolver.GetService<DbProviderServices>("FooClient"));
            mockProviderResolver.Verify(m => m.GetService(typeof(DbProviderServices), "FooClient"), Times.Once());
            Assert.Same(providerServices, resolver.GetService<DbProviderServices>("FooClient"));
            mockProviderResolver.Verify(m => m.GetService(typeof(DbProviderServices), "FooClient"), Times.Once());
        }
        public void The_root_resolver_uses_the_default_provider_services_resolver_and_caches_provider_instances()
        {
            var providerServices     = new Mock <DbProviderServices>().Object;
            var mockProviderResolver = new Mock <DefaultProviderServicesResolver>();

            mockProviderResolver
            .Setup(m => m.GetService(typeof(DbProviderServices), "FooClient"))
            .Returns(providerServices);

            var resolver = new RootDependencyResolver(
                mockProviderResolver.Object,
                new DatabaseInitializerResolver());

            Assert.Same(providerServices, resolver.GetService <DbProviderServices>("FooClient"));
            mockProviderResolver.Verify(m => m.GetService(typeof(DbProviderServices), "FooClient"), Times.Once());
            Assert.Same(providerServices, resolver.GetService <DbProviderServices>("FooClient"));
            mockProviderResolver.Verify(m => m.GetService(typeof(DbProviderServices), "FooClient"), Times.Once());
        }
        public void GetService_can_be_accessed_from_multiple_threads_concurrently()
        {
            for (var i = 0; i < 30; i++)
            {
                var bag = new ConcurrentBag <DbProviderServices>();

                var resolver = new RootDependencyResolver();

                ExecuteInParallel(() => bag.Add(resolver.GetService <DbProviderServices>("System.Data.SqlClient")));

                Assert.Equal(20, bag.Count);
                Assert.True(bag.All(c => SqlProviderServices.Instance == c));
            }
        }
示例#4
0
        public void GetService_can_be_accessed_from_multiple_threads_concurrently()
        {
            for (var i = 0; i < 30; i++)
            {
                var bag = new ConcurrentBag <AttributeProvider>();

                var resolver = new RootDependencyResolver();

                ExecuteInParallel(() => bag.Add(resolver.GetService <AttributeProvider>()));

                Assert.Equal(20, bag.Count);
                Assert.True(bag.All(c => c.GetType() == typeof(AttributeProvider)));
            }
        }
示例#5
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 GetService_can_be_accessed_from_multiple_threads_concurrently()
        {
            for (var i = 0; i < 30; i++)
            {
                var bag = new ConcurrentBag<AttributeProvider>();

                var resolver = new RootDependencyResolver();

                ExecuteInParallel(() => bag.Add(resolver.GetService<AttributeProvider>()));

                Assert.Equal(20, bag.Count);
                Assert.True(bag.All(c => c.GetType() == typeof(AttributeProvider)));
            }
        }
        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 GetService_can_be_accessed_from_multiple_threads_concurrently()
        {
            for (var i = 0; i < 30; i++)
            {
                var bag = new ConcurrentBag<DbProviderServices>();

                var resolver = new RootDependencyResolver(
                    new MigrationsConfigurationResolver(),
                    new DefaultProviderServicesResolver());

                ExecuteInParallel(() => bag.Add(resolver.GetService<DbProviderServices>("System.Data.SqlClient")));

                Assert.Equal(20, bag.Count);
                Assert.True(bag.All(c => SqlProviderServices.Instance == c));
            }
        }