public void DatabaseShouldCommitItsTranection() { var tracer = new TrannectionTraceOnly(); var testSubject = new DatabaseRemote(tracer); testSubject.Commit(); tracer.IsCommitted.Should().BeTrue(); }
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 }); }
public void DatabaseShouldDisposeItsTranection() { var tracer = new TrannectionTraceOnly(); var testSubject = new DatabaseRemote(tracer); testSubject.Dispose(); tracer.IsDisposed.Should().BeTrue(); }
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 ProductionRemoteDatabaseShouldNotApplyTestData() { 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 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 RealDatabaseShouldNoOpToUnapplyMigrationsWhichDoNothingWhenUnapplied() { var tranection = new TrannectionTraceOnly().BeginCapturing(); var testSubject = new DatabaseRemote(tranection, DbEngine.None); testSubject.Unapply(MigrationEmpty); tranection.SqlExecuted.Should().BeEmpty(); }
public void DatabaseShouldDisposeItsTranection() { var tracer = new TrannectionTraceOnly(); var testSubject = new DatabaseRemote(tracer, DbEngine.None); testSubject.Dispose(); tracer.IsDisposed.Should().BeTrue(); }
public void RealDatabaseShouldUnapplyMigrationsByExecutingSql() { var tranection = new TrannectionTraceOnly().BeginCapturing(); var testSubject = new DatabaseRemote(tranection, DbEngine.None); testSubject.Unapply(Migration3); testSubject.Unapply(Migration2); tranection.SqlExecuted.Should().Equal(new[] { Migration3.Unapply, Migration2.Unapply }); }
public void ProductionRemoteDatabaseShouldNotRemoveTestData() { var tranection = new TrannectionTraceOnly().BeginCapturing(); var testSubject = new DatabaseRemote(tranection, DbEngine.None); testSubject.Unapply(Migration3); testSubject.Unapply(Migration2); tranection.SqlExecuted.Should().Equal(new[] { Migration3.Unapply, Migration2.Unapply }); }
public void DatabaseShouldCommitItsTranection() { var tracer = new TrannectionTraceOnly(); using (var testSubject = new DatabaseRemote(tracer, DbEngine.None)) { testSubject.Commit(); tracer.IsCommitted.Should().BeTrue(); } }
public void ShouldNeverInsertTestDataWhichIsNoOp() { var tranection = new TrannectionTraceOnly().BeginCapturing(); var testSubject = new DatabaseRemote(tranection, DbEngine.None) { IsTestDatabase = true }; testSubject.Apply(MigrationWithoutTestData); tranection.SqlExecuted.Should().Equal(new[] { MigrationWithoutTestData.Apply }); }
public void DatabaseShouldKnowItsCurrentVersion() { var tracer = new TrannectionTraceOnly(); var testSubject = new DatabaseRemote(tracer); tracer.ExecuteScalarHandler = sql => { sql.Should().Be(RequestVersionSql); return 6; }; testSubject.CurrentVersion.Result.Should().Be(6); }
public void DatabaseShouldKnowItsCurrentVersion() { var tracer = new TrannectionTraceOnly(); var testSubject = new DatabaseRemote(tracer, DbEngine.SqlLite); tracer.ExecuteScalarHandler = sql => { sql.Should().Be(DbEngine.SqlLite.RequestVersionSql); return(6); }; testSubject.CurrentVersion.Result.Should().Be(6); }
public void NonProductionRemoteDatabaseShouldApplyTestData() { var tranection = new TrannectionTraceOnly().BeginCapturing(); var testSubject = new DatabaseRemote(tranection, DbEngine.None) { IsTestDatabase = true }; testSubject.Apply(Migration2); testSubject.Apply(Migration3); tranection.SqlExecuted.Should().Equal(new[] { Migration2.Apply, Migration2.InsertTestData, Migration3.Apply, Migration3.InsertTestData }); }
public void ShouldBeAbleToGoToNewVersion() { var tracer = new TrannectionTraceOnly(); var testSubject = new DatabaseRemote(tracer); var hasBeenCalled = false; tracer.ExecuteNonQueryHandler = sql => { sql.Should().Be(UpdateToVersion9Sql); hasBeenCalled = true; }; testSubject.SetCurrentVersionTo(9).Wait(); hasBeenCalled.Should().BeTrue(); }
public void ShouldBeAbleToGoToNewVersion() { var tracer = new TrannectionTraceOnly(); var testSubject = new DatabaseRemote(tracer, DbEngine.None); var hasBeenCalled = false; tracer.ExecuteNonQueryHandler = sql => { sql.Should().Be(UpdateToVersion9Sql); hasBeenCalled = true; }; testSubject.SetCurrentVersionTo(9).Wait(); hasBeenCalled.Should().BeTrue(); }