public void ItShouldCallNotCreateSchemaTableMethodIfEnsureSchemaVersionTableAndTableExists() { var database = new DatabaseStub(1); var schema = new Schema(database, new LoggerStub()); schema.EnsureSchemaVersionTable(); Assert.That(database.Statements.Any(x => x.Contains(@"CREATE TABLE [dbo].[SchemaInfo]")), Is.False); }
public void ItShouldProduceSqlForCreatingSchemaVersionTable() { var database = new DatabaseStub(0); var schema = new Schema(database, new LoggerStub()); schema.CreateSchemaVersionTable(); Assert.That(database.Statements.Any(x => x.Contains(@"CREATE TABLE [dbo].[SchemaInfo]"))); }
public void ItShouldCreateSqlForUpdatingSchemaToSpecificVersionWhenRequested() { var database = new DatabaseStub(1); var schema = new Schema(database, new LoggerStub()); schema.UpdateSchemaVersionTo(10); Assert.That(database.Statements.Any(x => x.Contains(@"INSERT INTO [dbo].[SchemaInfo]"))); Assert.That(database.Statements.Any(x => x.Contains(@"10"))); }
public void ItShouldCreateSqlForFetchingSchemaVersionWhenRequested() { var database = new DatabaseStub(1); var schema = new Schema(database, new LoggerStub()); var result = schema.GetLatestSchemaVersion(); Assert.That(database.Statements.Any(x => x.Contains(@"SELECT Max([Version])"))); Assert.That(result, Is.EqualTo(1)); }
public void ItShouldNotApplyMigrationsSinceLastVersionWhenVersionBiggerThanMigration() { var database = new DatabaseStub(3); var logger = new LoggerStub(); var schema = new Schema(database, logger); var migrator = new Migrator(schema, typeof(FirstMigration).Assembly, logger); migrator.MigrateToLatest(); Assert.That(database.Statements.Any(x => x.Contains("FirstMigration")), Is.False); }
public void ItShouldInformIfNoMigrationsFoundInAssembly() { var database = new DatabaseStub(); var logger = new LoggerStub(); var schema = new Schema(database, logger); var migrator = new Migrator(schema, typeof (Schema).Assembly, logger); migrator.MigrateToLatest(); Assert.That(logger.Logs.Any(x=>x.Contains(@"No Migrations Found"))); }
public void ItShouldFindFirstMigrationInAssembly() { var database = new DatabaseStub(); var logger = new LoggerStub(); var schema = new Schema(database, logger); var migrator = new Migrator(schema, typeof(FirstMigration).Assembly, logger); migrator.MigrateToLatest(); Assert.That(logger.Logs.Any(x => x.Contains(@"Found 1 Migrations"))); }
public void ItShouldApplyMigrationsSinceLastVersionAndUpdateSchemaTable() { var database = new DatabaseStub(); var logger = new LoggerStub(); var schema = new Schema(database, logger); var migrator = new Migrator(schema, typeof(FirstMigration).Assembly, logger); migrator.MigrateToLatest(); Assert.That(database.Statements.Any(x => x.Contains("FirstMigration"))); }
public void ItShouldNotUpdateSchemaVersionTo1IfMigrationNotApplicable() { var database = new DatabaseStub(3); var logger = new LoggerStub(); var schema = new Schema(database, logger); var migrator = new Migrator(schema, typeof(FirstMigration).Assembly, logger); migrator.MigrateToLatest(); Assert.That(database.Statements.Any(x => x.Contains(@"INSERT INTO [dbo].[SchemaInfo] ([Version]) VALUES (1)")), Is.False); }