public void test_error() { using (sqlite3 db = ugly.open(":memory:")) { db.exec("CREATE TABLE foo (x int UNIQUE);"); db.exec("INSERT INTO foo (x) VALUES (3);"); bool fail = false; try { db.exec("INSERT INTO foo (x) VALUES (3);"); } catch (ugly.sqlite3_exception e) { fail = true; int errcode = db.errcode(); Assert.AreEqual(errcode, e.errcode); Assert.AreEqual(errcode, raw.SQLITE_CONSTRAINT); Assert.AreEqual(db.extended_errcode(), raw.SQLITE_CONSTRAINT_UNIQUE, "Extended error codes for SQLITE_CONSTRAINT were added in 3.7.16"); string errmsg = db.errmsg(); Assert.IsTrue(errmsg != null); Assert.IsTrue(errmsg.Length > 0); } Assert.IsTrue(fail); Assert.IsTrue(raw.sqlite3_errstr(raw.SQLITE_CONSTRAINT) != null); } }