public void TestRollback() { const string dbPath = "TestRollback.s3db"; const string value = "committed"; InsertValueInNewDb(value, dbPath, false); var connString = new SqliteConnectionStringBuilder { DataSource = Path.Combine(Path.GetTempPath(), dbPath) }; var adapter = new SqliteCommandChannelFactory().Open(connString); Assert.AreEqual((long)0, adapter.FetchValue("SELECT COUNT(*) FROM test")); }
public void TestCommit() { const string dbPath = "TestCommit.s3db"; const string value = "committed"; InsertValueInNewDb(value, dbPath, true); var connString = new SqliteConnectionStringBuilder { DataSource = Path.Combine(Path.GetTempPath(), dbPath) }; var adapter = new SqliteCommandChannelFactory().Open(connString); Assert.AreEqual("committed", adapter.FetchValue("SELECT reference FROM test LIMIT 1")); }
private static void InsertValueInNewDb(string value, string dbName, bool commit) { var connString = new SqliteConnectionStringBuilder { DataSource = Path.Combine(Path.GetTempPath(), dbName) }; var adapter = new SqliteCommandChannelFactory().Create(new CreationParameters <SqliteConnectionStringBuilder>(connString, Resources.TestCommitRollback, true)); adapter.ExecuteInTransaction(scope => { adapter.Execute("INSERT INTO test (reference) VALUES (@value)", new Dictionary <string, IConvertible> { { "@value", value } }); return(commit ? TransactionResult.Commit : TransactionResult.Rollback); }); }
public void TestNestedTransactions() { var connString = new SqliteConnectionStringBuilder { DataSource = Path.Combine(Path.GetTempPath(), "TestNestedTransactions.s3db") }; var adapter = new SqliteCommandChannelFactory().Create(new CreationParameters <SqliteConnectionStringBuilder>(connString, Resources.TestCommitRollback, true)); DoSomethingInsertAndCommit(adapter, "B", () => DoSomethingInsertAndRollback(adapter, "C", () => InsertDoSomethingAndCommit(adapter, "D", () => InsertDoSomethingAndRollback(adapter, "E", () => { }) ) ) ); Assert.AreEqual(1, GetCount(adapter)); }
public void Initializa() { _commandChannelFactory = new SqliteCommandChannelFactory(); _memoryCommandChannelFactory = new MemorySqliteCommandChannelFactory(); }