From abebb231c611eea2c3fbc6ebb8a2d6c5022c32aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Rombauts?= Date: Fri, 1 May 2015 17:41:11 +0200 Subject: [PATCH] Add a new test to show persistence in file (on contrary to in memory databases) --- tests/Database_test.cpp | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/tests/Database_test.cpp b/tests/Database_test.cpp index d055cfc..a693e3b 100644 --- a/tests/Database_test.cpp +++ b/tests/Database_test.cpp @@ -54,6 +54,26 @@ TEST(Database, ctorExecCreateDropExist) { remove("test.db3"); } +TEST(Database, createCloseReopen) { + remove("test.db3"); + { + // Try to open the unexisting database + EXPECT_THROW(SQLite::Database not_found("test.db3"), SQLite::Exception); + + // Create a new database + SQLite::Database db("test.db3", SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE); + EXPECT_FALSE(db.tableExists("test")); + db.exec("CREATE TABLE test (id INTEGER PRIMARY KEY, value TEXT)"); + EXPECT_TRUE(db.tableExists("test")); + } // Close DB test.db3 + { + // Reopen the database file + SQLite::Database db("test.db3", SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE); + EXPECT_TRUE(db.tableExists("test")); + } // Close DB test.db3 + remove("test.db3"); +} + TEST(Database, inMemory) { { // Create a new database @@ -147,9 +167,6 @@ TEST(Database, exec) { EXPECT_EQ(4, db.getLastInsertRowid()); EXPECT_EQ(9, db.getTotalChanges()); #endif - - // Add a row with too many values (more than rows in the table) - EXPECT_THROW(db.exec("INSERT INTO test VALUES (NULL, \"first\", 123, 0.123)"), SQLite::Exception); } TEST(Database, execAndGet) { @@ -197,4 +214,11 @@ TEST(Database, execException) { EXPECT_EQ(1, db.exec("INSERT INTO test VALUES (NULL, \"first\", 3)")); // exception with SQL error: "No row to get a column from" EXPECT_THROW(db.execAndGet("SELECT weight FROM test WHERE value=\"second\""), SQLite::Exception); + + // Add a row with more values than columns in the table: "table test has 3 columns but 4 values were supplied" + EXPECT_THROW(db.exec("INSERT INTO test VALUES (NULL, \"first\", 123, 0.123)"), SQLite::Exception); + EXPECT_EQ(SQLITE_ERROR, db.getErrorCode()); + EXPECT_EQ(SQLITE_ERROR, db.getExtendedErrorCode()); } + +// TODO: test Database::createFunction()