diff options
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.cc | 155 |
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 8c9eef371e..76737c366f 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)); |