From 87e5e192e5d1c28746b2b9d3be5e284f077e3211 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois?= Date: Tue, 27 Feb 2024 14:53:50 +0100 Subject: [PATCH] test_total_changes --- src/lib.rs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/lib.rs b/src/lib.rs index 64542cc..87474c3 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1703,6 +1703,27 @@ mod test { Ok(()) } + #[test] + fn test_total_changes() -> Result<()> { + let db = Connection::open_in_memory()?; + let sql = "CREATE TABLE foo(x INTEGER PRIMARY KEY, value TEXT defaut '' NOT NULL, + desc TEXT default ''); + CREATE VIEW foo_bar AS SELECT x, desc FROM foo WHERE value = 'bar'; + CREATE TRIGGER INSERT_FOOBAR + INSTEAD OF INSERT + ON foo_bar + BEGIN + INSERT INTO foo VALUES(new.x, 'bar', new.desc); + END;"; + db.execute_batch(sql)?; + let total_changes_before = db.total_changes(); + let changes = db.prepare("INSERT INTO foo_bar VALUES(null, 'baz');")?.execute([])?; + let total_changes_after = db.total_changes(); + assert_eq!(changes, 0); + assert_eq!(total_changes_after - total_changes_before, 1); + Ok(()) + } + #[test] fn test_is_autocommit() -> Result<()> { let db = Connection::open_in_memory()?;