public void CanCreateConnectionString()
 {
     using (var connection = new MySQLServerConnection(CreateOptions(), new Logger <MySQLServerConnection>(new LoggerFactory())))
     {
         Assert.IsType <MySqlConnection>(connection.DbConnection);
     }
 }
Exemplo n.º 2
0
        private static IHistoryRepository CreateHistoryRepository()
        {
            var optionsBuilder = new DbContextOptionsBuilder();

            optionsBuilder.UseMySQL(MySQLTestStore.rootConnectionString + "database=test;");
            var connection = new MySQLServerConnection(optionsBuilder.Options, new Logger <MySQLServerConnection>(new LoggerFactory()));

            var annotationsProvider = new MySQLAnnotationProvider();
            var sqlGenerator        = new MySQLSqlGenerationHelper();
            var typeMapper          = new MySQLTypeMapper();

            var serviceCollection = new ServiceCollection();

            serviceCollection.AddEntityFrameworkMySQL()
            .AddDbContext <MyTestContext>();

            var serviceProvider = serviceCollection.BuildServiceProvider();

            var context = serviceProvider.GetRequiredService <MyTestContext>();


            var creator    = context.GetService <IDatabaseCreator>();
            var cmdBuilder = context.GetService <IRawSqlCommandBuilder>();


            return(new MySQLHistoryRepository(
                       creator,
                       cmdBuilder,
                       connection,
                       new DbContextOptions <DbContext>(
                           new Dictionary <Type, IDbContextOptionsExtension>
            {
                { typeof(MySQLOptionsExtension), new MySQLOptionsExtension() }
            }),
                       new MigrationsModelDiffer(
                           new MySQLTypeMapper(),
                           annotationsProvider,
                           new MySQLMigrationsAnnotationProvider()),
                       new MySQLMigrationsSqlGenerator(
                           new RelationalCommandBuilderFactory(
                               new FakeSensitiveDataLogger <RelationalCommandBuilderFactory>(),
                               new DiagnosticListener("FakeListener"),
                               typeMapper),
                           new MySQLSqlGenerationHelper(),
                           typeMapper,
                           annotationsProvider),
                       annotationsProvider,
                       sqlGenerator));
        }
 public void CanCreateMainConnection()
 {
     using (var connection = new MySQLServerConnection(CreateOptions(), new Logger <MySQLServerConnection>(new LoggerFactory())))
     {
         using (var master = connection.CreateSystemConnection())
         {
             var csb  = new MySqlConnectionStringBuilder(master.ConnectionString);
             var csb1 = new MySqlConnectionStringBuilder(MySQLTestStore.baseConnectionString + "database=mysql");
             Assert.True(csb.Database == csb1.Database);
             Assert.True(csb.Port == csb1.Port);
             Assert.True(csb.Server == csb1.Server);
             Assert.True(csb.UserID == csb1.UserID);
         }
     }
 }
 public MySQLHistoryRepository(
     IDatabaseCreator databaseCreator,
     IRawSqlCommandBuilder sqlCommandBuilder,
     MySQLServerConnection connection,
     IDbContextOptions options,
     IMigrationsModelDiffer modelDiffer,
     MySQLMigrationsSqlGenerator sqlGenerator,
     IRelationalAnnotationProvider annotations,
     ISqlGenerationHelper sql)
     : base(
         databaseCreator,
         sqlCommandBuilder,
         connection,
         options,
         modelDiffer,
         sqlGenerator,
         annotations,
         sql)
 {
 }
        private static IHistoryRepository CreateHistoryRepository()
        {
            var optionsBuilder = new DbContextOptionsBuilder();

            optionsBuilder.UseMySQL(MySQLTestStore.rootConnectionString + "database=test;");
            var connection = new MySQLServerConnection(optionsBuilder.Options, new Logger <MySQLServerConnection>(new LoggerFactory()));

            var typeMapper = new MySQLTypeMapper();

            var serviceCollection = new ServiceCollection();

            serviceCollection.AddEntityFrameworkMySQL()
            .AddDbContext <MyTestContext>();

            var serviceProvider = serviceCollection.BuildServiceProvider();

            var context = serviceProvider.GetRequiredService <MyTestContext>();

            var creator    = context.GetService <IRelationalDatabaseCreator>();
            var cmdBuilder = context.GetService <IRawSqlCommandBuilder>();

            var options = new DbContextOptions <DbContext>(
                new Dictionary <Type, IDbContextOptionsExtension>
            {
                {
                    typeof(MySQLOptionsExtension),
                    new MySQLOptionsExtension()
                }
            });

            var modelDiffer = new MigrationsModelDiffer(
                new MySQLTypeMapper(),
                new MySQLMigrationsAnnotationProvider(
                    new MigrationsAnnotationProviderDependencies()));

            var logger = new DiagnosticsLogger <DbLoggerCategory.Database.Command>(
                new LoggerFactory(),
                new LoggingOptions(),
                new DiagnosticListener("Fake"));

            var commandBuilderFactory = new RelationalCommandBuilderFactory(
                logger,
                typeMapper);

            var sqlGeneratorHelper = new MySQLSqlGenerationHelper(new RelationalSqlGenerationHelperDependencies());

            var migrationsSqlGeneratorDependencies = new MigrationsSqlGeneratorDependencies(
                commandBuilderFactory,
                sqlGeneratorHelper,
                typeMapper);

            var migrationsSqlGeneratior = new MySQLMigrationsSqlGenerator(migrationsSqlGeneratorDependencies);

            HistoryRepositoryDependencies dependencies = new HistoryRepositoryDependencies(
                creator,
                cmdBuilder,
                connection,
                options,
                modelDiffer,
                migrationsSqlGeneratior,
                sqlGeneratorHelper);

            return(new MySQLHistoryRepository(dependencies));
        }