public void NonProductionRemoteDatabaseShouldApplyTestData()
 {
     var tranection = new TrannectionTraceOnly().BeginCapturing();
     var testSubject = new DatabaseRemote(tranection) {IsTestDatabase = true};
     testSubject.Apply(Migration2);
     testSubject.Apply(Migration3);
     tranection.SqlExecuted.Should().Equal(new[] { Migration2.Apply, Migration2.InsertTestData, Migration3.Apply, Migration3.InsertTestData });
 }
 public void RealDatabaseShouldApplyMigrationsByExecutingSql()
 {
     var tranection = new TrannectionTraceOnly().BeginCapturing();
     var testSubject = new DatabaseRemote(tranection);
     testSubject.Apply(Migration2);
     testSubject.Apply(Migration3);
     tranection.SqlExecuted.Should().Equal(new[] { Migration2.Apply, Migration3.Apply });
 }
 public void ShouldNeverInsertTestDataWhichIsNoOp()
 {
     var tranection = new TrannectionTraceOnly().BeginCapturing();
     var testSubject = new DatabaseRemote(tranection) {IsTestDatabase = true};
     testSubject.Apply(MigrationWithoutTestData);
     tranection.SqlExecuted.Should().Equal(new[] { MigrationWithoutTestData.Apply });
 }
 public void RealDatabaseShouldNoOpToApplyMigrationsWhichDoNothingWhenApplied()
 {
     var tranection = new TrannectionTraceOnly().BeginCapturing();
     var testSubject = new DatabaseRemote(tranection);
     testSubject.Apply(MigrationEmpty);
     tranection.SqlExecuted.Should().BeEmpty();
 }