Example #1
0
 public AppDatabaseSetupService(LoggingMigrationContext logDb,
                                AppMigrationContext appDb,
                                AppDbContext appDbContext,
                                IConnectionStringFactory connectionStringFactory)
 {
     _logMigrationDb          = logDb;
     _appMigrationDb          = appDb;
     _appDbContext            = appDbContext;
     _connectionStringFactory = connectionStringFactory;
 }
Example #2
0
        public void Initialize()
        {
            AutoPocoConfiguration.SaltVector = "";
            AutoPocoConfiguration.SecretKey  = "";


            mig = new Mock <IMigrationsAssembly>();


            applied = new Mock <IHistoryRepository>();
            applied.Setup(c => c.GetAppliedMigrations()).Returns(new List <HistoryRow>());

            var migrator = new Mock <IMigrator>();

            migrator.Setup(c => c.Migrate(It.IsAny <string>()))
            .Callback <string>(c => migrations++);

            var connection = new Mock <DbConnection>();

            connection.Setup(c => c.ConnectionString).Returns("conn1");

            var connService = new Mock <IRelationalConnection>();

            connService.Setup(c => c.DbConnection).Returns(connection.Object);

            var services = new ServiceCollection();

            services.AddEntityFrameworkSqlite();
            services.AddSingleton(mig.Object);
            services.AddSingleton(applied.Object);
            services.AddSingleton(migrator.Object);
            services.AddSingleton(connService.Object);

            var appOptionBuilder = new DbContextOptionsBuilder <AppDbContext>();

            appOptionBuilder.UseInMemoryDatabase(databaseName: connString);

            appDb = new AppDbContext(appOptionBuilder.Options);

            appDb.Connector.AddRange(
                new Connector {
                Id = Guid.NewGuid(), Name = "appDb"
            },
                new Connector {
                Id = Guid.NewGuid(), Name = "logDb"
            }
                );
            appDb.SaveChanges();

            var migContextOptions = new DbContextOptionsBuilder <AppMigrationContext>()
                                    .UseSqlite(connString)
                                    .UseInternalServiceProvider(services.BuildServiceProvider());

            var migLogContextOptions = new DbContextOptionsBuilder <LoggingMigrationContext>()
                                       .UseSqlite(connString)
                                       .UseInternalServiceProvider(services.BuildServiceProvider());

            var appMigDb = new AppMigrationContext(migContextOptions.Options);
            var logMigDb = new LoggingMigrationContext(migLogContextOptions.Options);

            var factory = new Mock <IConnectionStringFactory>();

            factory.Setup(c => c.GetConnectionInformation(appDb.Database))
            .Returns(new ConnectionInformation {
                InitialCatalog = "cat1"
            });

            setupService = new AppDatabaseSetupService(logMigDb,
                                                       appMigDb,
                                                       appDb,
                                                       factory.Object);
        }