diff options
Diffstat (limited to 'src/components/policy/test/sqlite_wrapper/sql_query_test.cc')
-rw-r--r-- | src/components/policy/test/sqlite_wrapper/sql_query_test.cc | 105 |
1 files changed, 93 insertions, 12 deletions
diff --git a/src/components/policy/test/sqlite_wrapper/sql_query_test.cc b/src/components/policy/test/sqlite_wrapper/sql_query_test.cc index 73545630f..83a3bf00c 100644 --- a/src/components/policy/test/sqlite_wrapper/sql_query_test.cc +++ b/src/components/policy/test/sqlite_wrapper/sql_query_test.cc @@ -1,4 +1,4 @@ -/* Copyright (c) 2013, Ford Motor Company +/* Copyright (c) 2014, Ford Motor Company * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -96,30 +96,44 @@ class SQLQueryTest : public ::testing::Test { sqlite3* SQLQueryTest::conn = 0; const std::string SQLQueryTest::kDatabaseName = "test-query"; +TEST_F(SQLQueryTest, Query_CreateQuery_QueryInDBEqualCreated) { -TEST_F(SQLQueryTest, Query) { + //arrange const std::string kSelect("SELECT * FROM testTable WHERE integerValue = ?"); - SQLDatabase db(kDatabaseName); + + //assert ASSERT_TRUE(db.Open()); + //act SQLQuery query(&db); query.Prepare(kSelect); + + //assert EXPECT_STREQ(kSelect.c_str(), query.query().c_str()); } -TEST_F(SQLQueryTest, ExecString) { +TEST_F(SQLQueryTest, ExecString_ExecuteQuery_ActWithoutError) { + + //arrange const std::string kInsert("INSERT INTO testTable" " (integerValue, doubleValue, stringValue)" " VALUES(2, 3.4, 'five-пять')"); SQLDatabase db(kDatabaseName); + //assert ASSERT_TRUE(db.Open()); + + //act SQLQuery query(&db); + + //assert EXPECT_TRUE(query.Exec(kInsert)); EXPECT_FALSE(IsError(query.LastError())); } -TEST_F(SQLQueryTest, Bind) { +TEST_F(SQLQueryTest, Bind_BindSeveralQueries_ExpectExecutedQueriesWithoutErrors) { + + //arrange const std::string kInsert1("INSERT INTO testTable (integerValue) VALUES (?)"); const std::string kInsert2("INSERT INTO testTable (doubleValue) VALUES (?)"); const std::string kInsert3("INSERT INTO testTable (stringValue) VALUES (?)"); @@ -130,49 +144,69 @@ TEST_F(SQLQueryTest, Bind) { const std::string kStringValue = "four"; SQLDatabase db(kDatabaseName); + + //assert ASSERT_TRUE(db.Open()); + //act SQLQuery query1(&db); + + //assert EXPECT_TRUE(query1.Prepare(kInsert1)); EXPECT_FALSE(IsError(query1.LastError())); query1.Bind(0, kIntegerValue); + + //assert EXPECT_FALSE(IsError(query1.LastError())); EXPECT_TRUE(query1.Exec()); EXPECT_TRUE(IsDone(query1.LastError())); + //act SQLQuery query2(&db); + //assert EXPECT_TRUE(query2.Prepare(kInsert2)); EXPECT_FALSE(IsError(query2.LastError())); query2.Bind(0, kDoubleValue); + //assert EXPECT_FALSE(IsError(query2.LastError())); EXPECT_TRUE(query2.Exec()); EXPECT_TRUE(IsDone(query2.LastError())); + //act SQLQuery query3(&db); EXPECT_TRUE(query3.Prepare(kInsert3)); EXPECT_FALSE(IsError(query3.LastError())); query3.Bind(0, kStringValue); + //assert EXPECT_FALSE(IsError(query3.LastError())); EXPECT_TRUE(query3.Exec()); EXPECT_TRUE(IsDone(query3.LastError())); + //act SQLQuery query4(&db); + //assert EXPECT_TRUE(query4.Prepare(kInsert4)); EXPECT_FALSE(IsError(query4.LastError())); query4.Bind(0, kIntegerValue); query4.Bind(1, kDoubleValue); query4.Bind(2, kStringValue); + //assert EXPECT_FALSE(IsError(query4.LastError())); EXPECT_TRUE(query4.Exec()); EXPECT_TRUE(IsDone(query4.LastError())); } -TEST_F(SQLQueryTest, Value) { +TEST_F(SQLQueryTest, SetValue_InsertValues_ExpectDBHasInsertedValues) { + + //arrange const char* insert = "INSERT INTO testTable " "(integerValue, doubleValue, stringValue) " "VALUES (1, 2.3, 'four');"; + + //assert ASSERT_EQ(SQLITE_OK, sqlite3_exec(conn, insert, NULL, NULL, NULL)); + //act const std::string kSelect("SELECT integerValue, doubleValue, stringValue" " FROM testTable"); const int kIntegerValue = 1; @@ -180,9 +214,14 @@ TEST_F(SQLQueryTest, Value) { const std::string kStringValue = "four"; SQLDatabase db(kDatabaseName); + + //assert ASSERT_TRUE(db.Open()); + //act SQLQuery query(&db); + + //assert EXPECT_TRUE(query.Prepare(kSelect)); EXPECT_FALSE(IsError(query.LastError())); EXPECT_TRUE(query.Exec()); @@ -194,27 +233,40 @@ TEST_F(SQLQueryTest, Value) { EXPECT_TRUE(IsDone(query.LastError())); } -TEST_F(SQLQueryTest, EmptySelect) { +TEST_F(SQLQueryTest, EmptySelect_SelectValuesEqual0_ExecWithoutErrors) { + + //arrange const std::string kSelect("SELECT integerValue, doubleValue, stringValue" " FROM testTable WHERE 0"); SQLDatabase db(kDatabaseName); + + //assert ASSERT_TRUE(db.Open()); + //act SQLQuery query(&db); + + //assert EXPECT_TRUE(query.Prepare(kSelect)); EXPECT_FALSE(IsError(query.LastError())); EXPECT_TRUE(query.Exec()); EXPECT_TRUE(IsDone(query.LastError())); } -TEST_F(SQLQueryTest, NextAndBind) { +TEST_F(SQLQueryTest, NextAndBind_InsertValuesAndBindQuery_ExecWithoutErrorsAndBindingQueryIsLast) { + + //arrange const char* insert = "INSERT INTO testTable " "(integerValue, doubleValue, stringValue) " "VALUES (1, 2.3, 'four');"; + + //assert ASSERT_EQ(SQLITE_OK, sqlite3_exec(conn, insert, NULL, NULL, NULL)); const std::string kSelect("SELECT integerValue, doubleValue, stringValue" " FROM testTable WHERE stringValue = ?"); + + //act const int kIntegerValue = 1; const double kDoubleValue = 2.3; const std::string kStringValue = "four"; @@ -223,9 +275,13 @@ TEST_F(SQLQueryTest, NextAndBind) { ASSERT_TRUE(db.Open()); SQLQuery query(&db); + + //assert ASSERT_TRUE(query.Prepare(kSelect)); EXPECT_FALSE(IsError(query.LastError())); + //act query.Bind(0, kStringValue); + //assert EXPECT_FALSE(IsError(query.LastError())); EXPECT_TRUE(query.Exec()); ASSERT_TRUE(IsRow(query.LastError())); @@ -236,23 +292,37 @@ TEST_F(SQLQueryTest, NextAndBind) { EXPECT_TRUE(IsDone(query.LastError())); } -TEST_F(SQLQueryTest, LastInsertId) { +TEST_F(SQLQueryTest, LastInsertId_InsertValuesAndBindQuery_GetExpectedId) { + + //arrange const char* create = "CREATE TABLE idTable ( " "id INTEGER PRIMARY KEY AUTOINCREMENT," "value TEXT)"; + + //assert ASSERT_EQ(SQLITE_OK, sqlite3_exec(conn, create, NULL, NULL, NULL)); + const int64_t kExpectId = 1; const std::string kValue("Test last id of insert row"); const std::string kInsert("INSERT INTO idTable (value) VALUES(?)"); + //act SQLDatabase db(kDatabaseName); + + //assert ASSERT_TRUE(db.Open()); + //act SQLQuery query(&db); + + //assert ASSERT_TRUE(query.Prepare(kInsert)); EXPECT_FALSE(IsError(query.LastError())); + + //act query.Bind(0, kValue); + //assert EXPECT_FALSE(IsError(query.LastError())); EXPECT_TRUE(query.Exec()); ASSERT_TRUE(IsDone(query.LastError())); @@ -262,26 +332,37 @@ TEST_F(SQLQueryTest, LastInsertId) { sqlite3_exec(conn, "DROP TABLE idTable", NULL, NULL, NULL)); } -TEST_F(SQLQueryTest, BindNull) { +TEST_F(SQLQueryTest, BindNull_BindWithoutValue_ActWithoutErrors) { + + //arrange const std::string kInsert("INSERT INTO testTable (`integerValue`)" " VALUES (?)"); SQLDatabase db(kDatabaseName); + //assert ASSERT_TRUE(db.Open()); + //act SQLQuery query(&db); + + //assert ASSERT_TRUE(query.Prepare(kInsert)); EXPECT_FALSE(IsError(query.LastError())); query.Bind(0); + //assert EXPECT_FALSE(IsError(query.LastError())); EXPECT_TRUE(query.Exec()); ASSERT_TRUE(IsDone(query.LastError())); } -TEST_F(SQLQueryTest, DoublePrepare) { +TEST_F(SQLQueryTest, DoublePrepare_TwicePrepareQuery_ActWithoutErrors) { + + //arrange SQLDatabase db(kDatabaseName); + //assert ASSERT_TRUE(db.Open()); - + //act SQLQuery query(&db); + //assert EXPECT_TRUE(query.Prepare("SELECT * FROM testTable")); EXPECT_FALSE(IsError(query.LastError())); EXPECT_TRUE(query.Prepare("SELECT * FROM testTable")); |