public void RealDatabaseShouldUnapplyMigrationsByExecutingSql() { var tranection = new TrannectionTraceOnly().BeginCapturing(); var testSubject = new DatabaseRemote(tranection); testSubject.Unapply(Migration3); testSubject.Unapply(Migration2); tranection.SqlExecuted.Should().Equal(new[] { Migration3.Unapply, Migration2.Unapply }); }
public void NonProductionRemoteDatabaseShouldRemoveTestData() { var tranection = new TrannectionTraceOnly().BeginCapturing(); var testSubject = new DatabaseRemote(tranection) {IsTestDatabase = true}; testSubject.Unapply(Migration3); testSubject.Unapply(Migration2); tranection.SqlExecuted.Should().Equal(new[] { Migration3.DeleteTestData, Migration3.Unapply, Migration2.DeleteTestData, Migration2.Unapply }); }
public void RealDatabaseShouldNoOpToUnapplyMigrationsWhichDoNothingWhenUnapplied() { var tranection = new TrannectionTraceOnly().BeginCapturing(); var testSubject = new DatabaseRemote(tranection); testSubject.Unapply(MigrationEmpty); tranection.SqlExecuted.Should().BeEmpty(); }
public void ShouldNeverDeleteTestDataWhichIsNoOp() { var tranection = new TrannectionTraceOnly().BeginCapturing(); var testSubject = new DatabaseRemote(tranection) {IsTestDatabase = true}; testSubject.Unapply(MigrationWithoutTestData); tranection.SqlExecuted.Should().Equal(new[] { MigrationWithoutTestData.Unapply }); }