Esempio n. 1
0
        public async Task InitializeMigrationLogDb_DatabaseExists_Test()
        {
            //need a script to create the database or do we go straight into postgres itself and create the database?

            var builder = new ConfigurationBuilder()
                          .SetBasePath(Directory.GetCurrentDirectory())
                          .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
                          .AddEnvironmentVariables();

            DatabaseBuilderSettings databaseBuilderSettings = new DatabaseBuilderSettings();
            IConfiguration          config = builder.Build();

            config.GetSection("DatabaseBuilderSettings").Bind(databaseBuilderSettings);

            Assert.True(!string.IsNullOrWhiteSpace(databaseBuilderSettings.SqlSourceDir));
            Assert.True(!string.IsNullOrWhiteSpace(databaseBuilderSettings.MigrationSourceDir));
            Assert.True(!string.IsNullOrWhiteSpace(databaseBuilderSettings.DatabaseHost));
            Assert.True(!string.IsNullOrWhiteSpace(databaseBuilderSettings.DatabaseUserName));
            Assert.True(!string.IsNullOrWhiteSpace(databaseBuilderSettings.DatabasePassword));

            //need a method returning a list of migrations from the migrations directory
            MigrationProcessor migrationProcessor = new MigrationProcessor(databaseBuilderSettings);
            await migrationProcessor.Run();

            Assert.NotNull(migrationProcessor.MigrationLogs);
            Assert.True(migrationProcessor.MigrationLogs.Count > 0);
            Assert.True(migrationProcessor.MigrationLogs.First().MigrationLogId > 0);
        }
 public MigrationProcessor(DatabaseBuilderSettings databaseBuilderSettings)
 {
     this.databaseBuilderSettings = databaseBuilderSettings;
 }