public RootDependencyResolver( DefaultProviderServicesResolver defaultProviderServicesResolver, DatabaseInitializerResolver databaseInitializerResolver) { DebugCheck.NotNull(defaultProviderServicesResolver); DebugCheck.NotNull(databaseInitializerResolver); _databaseInitializerResolver = databaseInitializerResolver; _resolvers.Add(new TransactionContextInitializerResolver()); _resolvers.Add(_databaseInitializerResolver); _resolvers.Add(new DefaultExecutionStrategyResolver()); _resolvers.Add(new CachingDependencyResolver(defaultProviderServicesResolver)); _resolvers.Add(new CachingDependencyResolver(new DefaultProviderFactoryResolver())); _resolvers.Add(new CachingDependencyResolver(new DefaultInvariantNameResolver())); _resolvers.Add(new SingletonDependencyResolver <IDbConnectionFactory>(new LocalDbConnectionFactory())); _resolvers.Add(new SingletonDependencyResolver <Func <DbContext, IDbModelCacheKey> >(new DefaultModelCacheKeyFactory().Create)); _resolvers.Add(new SingletonDependencyResolver <IManifestTokenResolver>(new DefaultManifestTokenResolver())); _resolvers.Add(new SingletonDependencyResolver <Func <DbConnection, string, HistoryContext> >(HistoryContext.DefaultFactory)); _resolvers.Add(new SingletonDependencyResolver <IPluralizationService>(new EnglishPluralizationService())); _resolvers.Add(new SingletonDependencyResolver <AttributeProvider>(new AttributeProvider())); _resolvers.Add(new SingletonDependencyResolver <Func <DbContext, Action <string>, DatabaseLogFormatter> >((c, w) => new DatabaseLogFormatter(c, w))); _resolvers.Add(new SingletonDependencyResolver <Func <TransactionHandler> >(() => new DefaultTransactionHandler(), k => k is ExecutionStrategyKey)); #if NET40 _resolvers.Add(new SingletonDependencyResolver <IDbProviderFactoryResolver>(new Net40DefaultDbProviderFactoryResolver())); #else _resolvers.Add(new SingletonDependencyResolver <IDbProviderFactoryResolver>(new DefaultDbProviderFactoryResolver())); #endif _resolvers.Add(new SingletonDependencyResolver <Func <IMetadataAnnotationSerializer> >( () => new ClrTypeAnnotationSerializer(), XmlConstants.ClrTypeAnnotation)); _resolvers.Add(new SingletonDependencyResolver <Func <IMetadataAnnotationSerializer> >( () => new IndexAnnotationSerializer(), IndexAnnotation.AnnotationName)); }
public RootDependencyResolver( DefaultProviderServicesResolver defaultProviderServicesResolver, DatabaseInitializerResolver databaseInitializerResolver) { DebugCheck.NotNull(defaultProviderServicesResolver); DebugCheck.NotNull(databaseInitializerResolver); _databaseInitializerResolver = databaseInitializerResolver; _resolvers.Add(_databaseInitializerResolver); _resolvers.Add(new DefaultExecutionStrategyResolver()); _resolvers.Add(new CachingDependencyResolver(defaultProviderServicesResolver)); _resolvers.Add(new CachingDependencyResolver(new DefaultProviderFactoryResolver())); _resolvers.Add(new CachingDependencyResolver(new DefaultInvariantNameResolver())); _resolvers.Add(new SingletonDependencyResolver<IDbConnectionFactory>(new SqlConnectionFactory())); _resolvers.Add(new SingletonDependencyResolver<Func<DbContext, IDbModelCacheKey>>(new DefaultModelCacheKeyFactory().Create)); _resolvers.Add(new SingletonDependencyResolver<IManifestTokenResolver>(new DefaultManifestTokenResolver())); _resolvers.Add(new SingletonDependencyResolver<Func<DbConnection, string, HistoryContext>>(HistoryContext.DefaultFactory)); _resolvers.Add(new SingletonDependencyResolver<IPluralizationService>(new EnglishPluralizationService())); _resolvers.Add(new SingletonDependencyResolver<AttributeProvider>(new AttributeProvider())); _resolvers.Add(new SingletonDependencyResolver<Func<DbContext, Action<string>, DbCommandLogger>>((c, w) => new DbCommandLogger(c, w))); #if NET40 _resolvers.Add(new SingletonDependencyResolver<IDbProviderFactoryResolver>(new Net40DefaultDbProviderFactoryResolver())); #else _resolvers.Add(new SingletonDependencyResolver<IDbProviderFactoryResolver>(new DefaultDbProviderFactoryResolver())); #endif }
public RootDependencyResolver( DefaultProviderServicesResolver defaultProviderServicesResolver, DatabaseInitializerResolver databaseInitializerResolver) { DebugCheck.NotNull(defaultProviderServicesResolver); DebugCheck.NotNull(databaseInitializerResolver); _databaseInitializerResolver = databaseInitializerResolver; _resolvers.Add(new TransactionContextInitializerResolver()); _resolvers.Add(_databaseInitializerResolver); _resolvers.Add(new DefaultExecutionStrategyResolver()); _resolvers.Add(new CachingDependencyResolver(defaultProviderServicesResolver)); _resolvers.Add(new CachingDependencyResolver(new DefaultProviderFactoryResolver())); _resolvers.Add(new CachingDependencyResolver(new DefaultInvariantNameResolver())); _resolvers.Add(new SingletonDependencyResolver<IDbConnectionFactory>(new SqlConnectionFactory())); _resolvers.Add(new SingletonDependencyResolver<Func<DbContext, IDbModelCacheKey>>(new DefaultModelCacheKeyFactory().Create)); _resolvers.Add(new SingletonDependencyResolver<IManifestTokenResolver>(new DefaultManifestTokenResolver())); _resolvers.Add(new SingletonDependencyResolver<Func<DbConnection, string, HistoryContext>>(HistoryContext.DefaultFactory)); _resolvers.Add(new SingletonDependencyResolver<IPluralizationService>(new EnglishPluralizationService())); _resolvers.Add(new SingletonDependencyResolver<AttributeProvider>(new AttributeProvider())); _resolvers.Add(new SingletonDependencyResolver<Func<DbContext, Action<string>, DatabaseLogFormatter>>((c, w) => new DatabaseLogFormatter(c, w))); _resolvers.Add(new SingletonDependencyResolver<Func<TransactionHandler>>(() => new DefaultTransactionHandler(), k => k is ExecutionStrategyKey)); #if NET40 _resolvers.Add(new SingletonDependencyResolver<IDbProviderFactoryResolver>(new Net40DefaultDbProviderFactoryResolver())); #else _resolvers.Add(new SingletonDependencyResolver<IDbProviderFactoryResolver>(new DefaultDbProviderFactoryResolver())); #endif _resolvers.Add(new SingletonDependencyResolver<Func<IMetadataAnnotationSerializer>>( () => new ClrTypeAnnotationSerializer(), XmlConstants.ClrTypeAnnotation)); _resolvers.Add(new SingletonDependencyResolver<Func<IMetadataAnnotationSerializer>>( () => new IndexAnnotationSerializer(), IndexAnnotation.AnnotationName)); }
public RootDependencyResolver( DefaultProviderServicesResolver defaultProviderServicesResolver, DatabaseInitializerResolver databaseInitializerResolver) { DebugCheck.NotNull(defaultProviderServicesResolver); DebugCheck.NotNull(databaseInitializerResolver); _databaseInitializerResolver = databaseInitializerResolver; _resolvers.Add(_databaseInitializerResolver); _resolvers.Add(new DefaultExecutionStrategyResolver()); _resolvers.Add(new CachingDependencyResolver(defaultProviderServicesResolver)); _resolvers.Add(new CachingDependencyResolver(new DefaultProviderFactoryResolver())); _resolvers.Add(new CachingDependencyResolver(new DefaultInvariantNameResolver())); _resolvers.Add(new SingletonDependencyResolver <IDbConnectionFactory>(new SqlConnectionFactory())); _resolvers.Add(new SingletonDependencyResolver <Func <DbContext, IDbModelCacheKey> >(new DefaultModelCacheKeyFactory().Create)); _resolvers.Add(new SingletonDependencyResolver <IManifestTokenResolver>(new DefaultManifestTokenResolver())); _resolvers.Add(new SingletonDependencyResolver <Func <DbConnection, string, HistoryContext> >(HistoryContext.DefaultFactory)); _resolvers.Add(new SingletonDependencyResolver <IPluralizationService>(new EnglishPluralizationService())); _resolvers.Add(new SingletonDependencyResolver <AttributeProvider>(new AttributeProvider())); _resolvers.Add(new SingletonDependencyResolver <Func <DbContext, Action <string>, DbCommandLogger> >((c, w) => new DbCommandLogger(c, w))); #if NET40 _resolvers.Add(new SingletonDependencyResolver <IDbProviderFactoryResolver>(new Net40DefaultDbProviderFactoryResolver())); #else _resolvers.Add(new SingletonDependencyResolver <IDbProviderFactoryResolver>(new DefaultDbProviderFactoryResolver())); #endif }
private static DatabaseInitializerResolver CreateResolver(IDatabaseInitializer <FakeContext1> initializer = null) { var resolver = new DatabaseInitializerResolver(); resolver.SetInitializer(typeof(FakeContext1), initializer ?? new Mock <IDatabaseInitializer <FakeContext1> >().Object); resolver.SetInitializer(typeof(FakeContext2), new Mock <IDatabaseInitializer <FakeContext2> >().Object); return(resolver); }
public void The_database_initializer_resolver_can_be_obtained_from_the_root_resolver() { var initializerResolver = new DatabaseInitializerResolver(); Assert.Same( initializerResolver, new RootDependencyResolver( new DefaultProviderServicesResolver(), initializerResolver) .DatabaseInitializerResolver); }
public void GetService_can_be_accessed_from_multiple_threads_concurrently() { for (var i = 0; i < 30; i++) { var bag = new ConcurrentBag <IDatabaseInitializer <FakeContext1> >(); var resolver = new DatabaseInitializerResolver(); var initializer = new Mock <IDatabaseInitializer <FakeContext1> >().Object; ExecuteInParallel( () => { resolver.SetInitializer(typeof(FakeContext1), initializer); bag.Add(resolver.GetService <IDatabaseInitializer <FakeContext1> >()); }); Assert.Equal(20, bag.Count); Assert.True(bag.All(c => initializer == c)); } }
public void GetService_can_be_accessed_from_multiple_threads_concurrently() { for (var i = 0; i < 30; i++) { var bag = new ConcurrentBag<IDatabaseInitializer<FakeContext1>>(); var resolver = new DatabaseInitializerResolver(); var initializer = new Mock<IDatabaseInitializer<FakeContext1>>().Object; ExecuteInParallel( () => { resolver.SetInitializer(typeof(FakeContext1), initializer); bag.Add(resolver.GetService<IDatabaseInitializer<FakeContext1>>()); }); Assert.Equal(20, bag.Count); Assert.True(bag.All(c => initializer == c)); } }
public RootDependencyResolver( DefaultProviderServicesResolver defaultProviderServicesResolver, DatabaseInitializerResolver databaseInitializerResolver) { this._databaseInitializerResolver = databaseInitializerResolver; this._resolvers.Add((IDbDependencyResolver) new TransactionContextInitializerResolver()); this._resolvers.Add((IDbDependencyResolver)this._databaseInitializerResolver); this._resolvers.Add((IDbDependencyResolver) new DefaultExecutionStrategyResolver()); this._resolvers.Add((IDbDependencyResolver) new CachingDependencyResolver((IDbDependencyResolver)defaultProviderServicesResolver)); this._resolvers.Add((IDbDependencyResolver) new CachingDependencyResolver((IDbDependencyResolver) new DefaultProviderFactoryResolver())); this._resolvers.Add((IDbDependencyResolver) new CachingDependencyResolver((IDbDependencyResolver) new DefaultInvariantNameResolver())); this._resolvers.Add((IDbDependencyResolver) new SingletonDependencyResolver <IDbConnectionFactory>((IDbConnectionFactory) new SqlConnectionFactory())); this._resolvers.Add((IDbDependencyResolver) new SingletonDependencyResolver <Func <DbContext, IDbModelCacheKey> >(new Func <DbContext, IDbModelCacheKey>(new DefaultModelCacheKeyFactory().Create))); this._resolvers.Add((IDbDependencyResolver) new SingletonDependencyResolver <IManifestTokenResolver>((IManifestTokenResolver) new DefaultManifestTokenResolver())); this._resolvers.Add((IDbDependencyResolver) new SingletonDependencyResolver <Func <DbConnection, string, HistoryContext> >(HistoryContext.DefaultFactory)); this._resolvers.Add((IDbDependencyResolver) new SingletonDependencyResolver <IPluralizationService>((IPluralizationService) new EnglishPluralizationService())); this._resolvers.Add((IDbDependencyResolver) new SingletonDependencyResolver <AttributeProvider>(new AttributeProvider())); this._resolvers.Add((IDbDependencyResolver) new SingletonDependencyResolver <Func <DbContext, Action <string>, DatabaseLogFormatter> >((Func <DbContext, Action <string>, DatabaseLogFormatter>)((c, w) => new DatabaseLogFormatter(c, w)))); this._resolvers.Add((IDbDependencyResolver) new SingletonDependencyResolver <Func <TransactionHandler> >((Func <TransactionHandler>)(() => (TransactionHandler) new DefaultTransactionHandler()), (Func <object, bool>)(k => k is ExecutionStrategyKey))); this._resolvers.Add((IDbDependencyResolver) new SingletonDependencyResolver <IDbProviderFactoryResolver>((IDbProviderFactoryResolver) new DefaultDbProviderFactoryResolver())); this._resolvers.Add((IDbDependencyResolver) new SingletonDependencyResolver <Func <IMetadataAnnotationSerializer> >((Func <IMetadataAnnotationSerializer>)(() => (IMetadataAnnotationSerializer) new ClrTypeAnnotationSerializer()), (object)"ClrType")); this._resolvers.Add((IDbDependencyResolver) new SingletonDependencyResolver <Func <IMetadataAnnotationSerializer> >((Func <IMetadataAnnotationSerializer>)(() => (IMetadataAnnotationSerializer) new IndexAnnotationSerializer()), (object)"Index")); }
private static DatabaseInitializerResolver CreateResolver(IDatabaseInitializer<FakeContext1> initializer = null) { var resolver = new DatabaseInitializerResolver(); resolver.SetInitializer(typeof(FakeContext1), initializer ?? new Mock<IDatabaseInitializer<FakeContext1>>().Object); resolver.SetInitializer(typeof(FakeContext2), new Mock<IDatabaseInitializer<FakeContext2>>().Object); return resolver; }