Beispiel #1
0
        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);
            }
        }