From f3e9a779a16c52bbcd8b5d674331a5bc27603528 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Rombauts?= Date: Fri, 14 Mar 2014 20:44:00 +0100 Subject: [PATCH] Added a test for Database::execAndGet() --- tests/Database_test.cpp | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/tests/Database_test.cpp b/tests/Database_test.cpp index 8880785..5cc21b0 100644 --- a/tests/Database_test.cpp +++ b/tests/Database_test.cpp @@ -28,7 +28,6 @@ void assertion_failed(const char* apFile, const long apLine, const char* apFunc, #endif -// Constructor TEST(Database, ctorExecCreateDropExist) { remove("test.db3"); { @@ -55,9 +54,7 @@ TEST(Database, ctorExecCreateDropExist) { remove("test.db3"); } - -// Constructor -TEST(Database, ctorExecAndGet) { +TEST(Database, exec) { remove("test.db3"); { // Create a new database @@ -121,3 +118,26 @@ TEST(Database, ctorExecAndGet) { } // Close DB test.db3 remove("test.db3"); } + + +TEST(Database, execAndGet) { + remove("test.db3"); + { + // Create a new database + SQLite::Database db("test.db3", SQLITE_OPEN_READWRITE|SQLITE_OPEN_CREATE); + + // Create a new table with an explicit "id" column aliasing the underlying rowid + db.exec("CREATE TABLE test (id INTEGER PRIMARY KEY, value TEXT, weight INTEGER)"); + + // insert a few rows + EXPECT_EQ(1, db.exec("INSERT INTO test VALUES (NULL, \"first\", 3)")); + EXPECT_EQ(1, db.exec("INSERT INTO test VALUES (NULL, \"second\", 5)")); + EXPECT_EQ(1, db.exec("INSERT INTO test VALUES (NULL, \"third\", 7)")); + + // Get a single value result with an easy to use shortcut + EXPECT_STREQ("second", db.execAndGet("SELECT value FROM test WHERE id=2")); + EXPECT_STREQ("third", db.execAndGet("SELECT value FROM test WHERE weight=7")); + EXPECT_EQ(3, (int)db.execAndGet("SELECT weight FROM test WHERE value=\"first\"")); + } // Close DB test.db3 + remove("test.db3"); +}