summaryrefslogtreecommitdiff
path: root/src/components/policy/test/generated_code_with_sqlite_test.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/policy/test/generated_code_with_sqlite_test.cc')
-rw-r--r--src/components/policy/test/generated_code_with_sqlite_test.cc155
1 files changed, 100 insertions, 55 deletions
diff --git a/src/components/policy/test/generated_code_with_sqlite_test.cc b/src/components/policy/test/generated_code_with_sqlite_test.cc
index 8c9eef371..76737c366 100644
--- a/src/components/policy/test/generated_code_with_sqlite_test.cc
+++ b/src/components/policy/test/generated_code_with_sqlite_test.cc
@@ -1,38 +1,36 @@
-/* Copyright (c) 2013, Ford Motor Company
-* All rights reserved.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*
-* Redistributions of source code must retain the above copyright notice, this
-* list of conditions and the following disclaimer.
-*
-* Redistributions in binary form must reproduce the above copyright notice,
-* this list of conditions and the following
-* disclaimer in the documentation and/or other materials provided with the
-* distribution.
-*
-* Neither the name of the Ford Motor Company nor the names of its contributors
-* may be used to endorse or promote products derived from this software
-* without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-* POSSIBILITY OF SUCH DAMAGE.
-*/
+/* Copyright (c) 2014, Ford Motor Company
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Ford Motor Company nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
#include <sqlite3.h>
-
#include "gtest/gtest.h"
-
#include "generated_code_with_sqlite_test.h"
namespace rpc {
@@ -62,55 +60,83 @@ class GeneratedCodeTest : public ::testing::Test {
const std::string GeneratedCodeTest::kDatabaseName = "test_db";
-const std::string GeneratedCodeTest::kEndpointsCreation = "CREATE TABLE Endpoints ("
- "endpoint_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,"
- "service_id VARCHAR(45) NOT NULL,"
- "application_id VARCHAR(45),"
- "url VARCHAR(45) NOT NULL,"
- "is_default INTEGER NOT NULL CHECK(is_default>=0))";
-
-const std::string GeneratedCodeTest::kEndpointsContent = "INSERT INTO Endpoints "
- "VALUES (1, '0x07', null, 'http://test.example.com', 1)";
-
-const std::string GeneratedCodeTest::kAppPoliciesCreation = "CREATE TABLE AppPolicies ("
- "id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,"
- "application_id VARCHAR(45),"
- "priority VARCHAR(45),"
- "is_default INTEGER NOT NULL CHECK(is_default>=0))";
+const std::string GeneratedCodeTest::kEndpointsCreation =
+ "CREATE TABLE Endpoints ("
+ "endpoint_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,"
+ "service_id VARCHAR(45) NOT NULL,"
+ "application_id VARCHAR(45),"
+ "url VARCHAR(45) NOT NULL,"
+ "is_default INTEGER NOT NULL CHECK(is_default>=0))";
+
+const std::string GeneratedCodeTest::kEndpointsContent =
+ "INSERT INTO Endpoints "
+ "VALUES (1, '0x07', null, 'http://test.example.com', 1)";
+
+const std::string GeneratedCodeTest::kAppPoliciesCreation =
+ "CREATE TABLE AppPolicies ("
+ "id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,"
+ "application_id VARCHAR(45),"
+ "priority VARCHAR(45),"
+ "is_default INTEGER NOT NULL CHECK(is_default>=0))";
const std::string GeneratedCodeTest::kGroupsCreation = "CREATE TABLE Groups ("
- "id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,"
- "application_id VARCHAR(45) NOT NULL,"
- "group_name VARCHAR(45) NOT NULL )";
+ "id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,"
+ "application_id VARCHAR(45) NOT NULL,"
+ "group_name VARCHAR(45) NOT NULL )";
+TEST_F(GeneratedCodeTest, FindSectionEndpoints_OpenDBSetDefaultUrl_ExpectDefaultUrl) {
-TEST_F(GeneratedCodeTest, FindSectionEndpoints) {
+ //arrange
dbms::SQLDatabase db(GeneratedCodeTest::kDatabaseName);
+
+ //assert
EXPECT_TRUE(db.Open());
policy_table::ServiceEndpoints ep;
+
+ //assert
EXPECT_TRUE(policy_table::FindSection(&db, ep));
EXPECT_EQ(1u, ep.size());
+
+ //act
std::string url = ep["0x07"]["default"].front();
+
+ //assert
EXPECT_EQ("http://test.example.com", url);
}
-TEST_F(GeneratedCodeTest, RemoveSectionEndpoints) {
+TEST_F(GeneratedCodeTest, RemoveSectionEndpoints_RemoveSectionEndpoints_Expect0EndPoints) {
+ //arrange
dbms::SQLDatabase db(GeneratedCodeTest::kDatabaseName);
+
+ //assert
EXPECT_TRUE(db.Open());
+
+ //act
policy_table::ServiceEndpoints ep;
+
+ //assert
EXPECT_TRUE(policy_table::RemoveSection(&db, ep));
dbms::SQLQuery sqlquery(&db);
+
+ //act
std::string check_query = "select count (*) from endpoints";
+
+ //assert
EXPECT_TRUE(sqlquery.Prepare(check_query));
EXPECT_TRUE(sqlquery.Exec());
// Index for binding starts from 1, index for results starts from 0
EXPECT_EQ(0, sqlquery.GetInteger(0));
}
-TEST_F(GeneratedCodeTest, UpdateSectionEndpoints) {
+TEST_F(GeneratedCodeTest, UpdateSectionEndpoints_SetUrlPoint_ExpectPointEqualsUrl) {
+
+ //arrange
dbms::SQLDatabase db(GeneratedCodeTest::kDatabaseName);
+
+ //assert
EXPECT_TRUE(db.Open());
+ //act
std::string test_url = "http://url.example.com";
policy_table::URL urls;
@@ -122,35 +148,52 @@ TEST_F(GeneratedCodeTest, UpdateSectionEndpoints) {
policy_table::ServiceEndpoints ep;
ep["0x07"] = urllist;
+ //assert
EXPECT_TRUE(policy_table::UpdateSection(&db, ep));
dbms::SQLQuery sqlquery(&db);
std::string num_of_records_check = "select count (*) from endpoints";
+
+ //assert
EXPECT_TRUE(sqlquery.Prepare(num_of_records_check));
EXPECT_TRUE(sqlquery.Exec());
// Index for binding starts from 1, index for results starts from 0
EXPECT_EQ(1, sqlquery.GetInteger(0));
EXPECT_TRUE(sqlquery.Reset());
+
+ //act
std::string url_check_query = "select * from endpoints";
+
+ //assert
EXPECT_TRUE(sqlquery.Prepare(url_check_query));
EXPECT_TRUE(sqlquery.Exec());
// Index for binding starts from 1, index for results starts from 0
EXPECT_EQ(test_url, sqlquery.GetString(3));
}
-TEST_F(GeneratedCodeTest, UpdateSectionAppPolicies) {
+TEST_F(GeneratedCodeTest, UpdateSectionAppPolicies_SetAppParams_ExpectDBHasThem) {
+
+ //arrange
dbms::SQLDatabase db(GeneratedCodeTest::kDatabaseName);
+
+ //assert
EXPECT_TRUE(db.Open());
+ //act
policy_table::ApplicationPolicies ap;
const std::string application_id = "12345678";
ap[application_id].groups.push_back("Base-4");
ap[application_id].priority = policy_table::P_NORMAL;
+ //assert
EXPECT_TRUE(policy_table::UpdateSection(&db, ap));
+ //act
dbms::SQLQuery sqlquery(&db);
+
+
+ //assert
EXPECT_TRUE(sqlquery.Prepare("select count (*) from AppPolicies"));
EXPECT_TRUE(sqlquery.Exec());
// Index for binding starts from 1, index for results starts from 0
@@ -163,7 +206,9 @@ TEST_F(GeneratedCodeTest, UpdateSectionAppPolicies) {
EXPECT_EQ(1, sqlquery.GetInteger(0));
EXPECT_TRUE(sqlquery.Reset());
- EXPECT_TRUE(sqlquery.Prepare("select application_id from Groups where group_name='Base-4'"));
+ EXPECT_TRUE(
+ sqlquery.Prepare(
+ "select application_id from Groups where group_name='Base-4'"));
EXPECT_TRUE(sqlquery.Exec());
// Index for binding starts from 1, index for results starts from 0
EXPECT_EQ(application_id, sqlquery.GetString(0));