private static IHistoryRepository CreateHistoryRepository()
        {
            var annotationsProvider = new SqlServerAnnotationProvider();
            var sqlGenerator        = new SqlServerSqlGenerator();
            var typeMapper          = new SqlServerTypeMapper();

            var commandBuilderFactory = new RelationalCommandBuilderFactory(
                typeMapper);

            return(new SqlServerHistoryRepository(
                       Mock.Of <IRelationalDatabaseCreator>(),
                       Mock.Of <ISqlStatementExecutor>(),
                       Mock.Of <ISqlServerConnection>(),
                       new DbContextOptions <DbContext>(
                           new Dictionary <Type, IDbContextOptionsExtension>
            {
                { typeof(SqlServerOptionsExtension), new SqlServerOptionsExtension() }
            }),
                       new MigrationsModelDiffer(
                           annotationsProvider,
                           new SqlServerMigrationsAnnotationProvider()),
                       new SqlServerMigrationsSqlGenerator(
                           commandBuilderFactory,
                           new SqlServerSqlGenerator(),
                           typeMapper,
                           annotationsProvider),
                       annotationsProvider,
                       sqlGenerator));
        }
Exemple #2
0
        public ScaffoldingDto ScaffoldDatabase(string connectionString, string rootNamespace, string contextName)
        {
            var scaffUtils           = new ScaffoldingUtilities();
            var csharpUtils          = new CSharpUtilities();
            var provider             = new SqlServerAnnotationProvider();
            var customConfiguration  = new CustomConfiguration(connectionString, contextName, rootNamespace, true);
            var entityTypeWriter     = new EntityTypeWriter(csharpUtils);
            var dbContextWriter      = new SingularDbContextWriter(scaffUtils, csharpUtils);
            var configurationFactory = new ConfigurationFactory(provider, csharpUtils, scaffUtils);
            var loggerFactory        = new LoggerFactory();
            var logger        = loggerFactory.CreateLogger <SqlServerDatabaseModelFactory>();
            var revEngeConfig = new ReverseEngineeringConfiguration {
                ConnectionString = connectionString
            };
            var sqlScaffoldModelFactory = new SingularScaffoldingModelFactory(new LoggerFactory(),
                                                                              new SqlServerTypeMapper(), new SqlServerDatabaseModelFactory(logger), new CandidateNamingService());
            var codeWriter = new StringBuilderCodeWriter(new FileSystemFileService(), dbContextWriter, entityTypeWriter);

            var generator          = new ReverseEngineeringGenerator(sqlScaffoldModelFactory, configurationFactory, codeWriter);
            var metaModel          = generator.GetMetadataModel(revEngeConfig);
            var modelConfiguration = configurationFactory.CreateModelConfiguration(metaModel, customConfiguration);
            var dbContextData      = dbContextWriter.WriteCode(modelConfiguration);
            var scaffoldingDto     = new ScaffoldingDto
            {
                DbContextSource = dbContextData,
                ModelSources    = modelConfiguration.EntityConfigurations
                                  .Select(entityConfiguration => entityTypeWriter.WriteCode(entityConfiguration))
                                  .ToImmutableList()
            };

            return(scaffoldingDto);
        }
        private static IHistoryRepository CreateHistoryRepository(string schema = null)
        {
            var annotationsProvider = new SqlServerAnnotationProvider();
            var sqlGenerator        = new SqlServerSqlGenerationHelper(new RelationalSqlGenerationHelperDependencies());
            var typeMapper          = new SqlServerTypeMapper(new RelationalTypeMapperDependencies());

            var commandBuilderFactory = new RelationalCommandBuilderFactory(
                new FakeSensitiveDataLogger <RelationalCommandBuilderFactory>(),
                new DiagnosticListener("Fake"),
                typeMapper);

            return(new SqlServerHistoryRepository(
                       new HistoryRepositoryDependencies(
                           Mock.Of <IRelationalDatabaseCreator>(),
                           Mock.Of <IRawSqlCommandBuilder>(),
                           Mock.Of <ISqlServerConnection>(),
                           new DbContextOptions <DbContext>(
                               new Dictionary <Type, IDbContextOptionsExtension>
            {
                {
                    typeof(SqlServerOptionsExtension),
                    new SqlServerOptionsExtension {
                        MigrationsHistoryTableSchema = schema
                    }
                }
            }),
                           new MigrationsModelDiffer(
                               new SqlServerTypeMapper(new RelationalTypeMapperDependencies()),
                               annotationsProvider,
                               new SqlServerMigrationsAnnotationProvider(new MigrationsAnnotationProviderDependencies())),
                           new SqlServerMigrationsSqlGenerator(
                               new MigrationsSqlGeneratorDependencies(
                                   commandBuilderFactory,
                                   new SqlServerSqlGenerationHelper(new RelationalSqlGenerationHelperDependencies()),
                                   typeMapper,
                                   annotationsProvider),
                               new SqlServerMigrationsAnnotationProvider(new MigrationsAnnotationProviderDependencies())),
                           annotationsProvider,
                           sqlGenerator)));
        }
 public SqlServerMigrationsAnnotationProviderTest()
 {
     _annotations = new SqlServerAnnotationProvider(new RelationalAnnotationProviderDependencies());
 }
Exemple #5
0
 public SqlServerMigrationsAnnotationProviderTest()
 {
     _modelBuilder = SqlServerTestHelpers.Instance.CreateConventionBuilder(/*skipValidation: true*/);
     _annotations  = new SqlServerAnnotationProvider(new RelationalAnnotationProviderDependencies());
 }