public void NestedTransactionTest_CommitThenRollback() { using (var ds = new SQLiteDatastore()) { ds.CurrentTransaction.Should().BeNull(); ds.TransactionDepth.Should().Be(0); ds.Execute("CREATE TABLE TableA (Data TEXT);"); ds.BeginTransaction(); ds.CurrentTransaction.Should().NotBeNull(); ds.TransactionDepth.Should().Be(1); ds.BeginTransaction(); ds.CurrentTransaction.Should().NotBeNull(); ds.TransactionDepth.Should().Be(2); ds.Execute("INSERT INTO TableA VALUES ('something');"); ds.CommitTransaction(); ds.GetRowCount("TableA", null).Should().Be(1); ds.RollbackTransaction(); ds.GetRowCount("TableA", null).Should().Be(0); } }
public void RollBackTransaction_WtihTransaction() { using (var ds = new SQLiteDatastore()) { ds.BeginTransaction(); ds.Execute("CREATE TABLE TableA (Data TEXT);"); ds.RollbackTransaction(); ds.CheckTableExists("TableA").Should().BeFalse(); } }
public void RollBackTransaction_WtihNoTransaction() { using (var ds = new SQLiteDatastore()) { ds.Execute("CREATE TABLE TableA (Data TEXT);"); ds.CurrentTransaction.Should().BeNull(); ds.RollbackTransaction();//extra rollback should not throw exception, but will fail Debug.Assert ds.TransactionDepth.Should().Be(0); ds.CheckTableExists("TableA").Should().BeTrue(); } }