summaryrefslogtreecommitdiff
path: root/src/components/policy/test/sql_pt_representation_test.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/policy/test/sql_pt_representation_test.cc')
-rw-r--r--src/components/policy/test/sql_pt_representation_test.cc1703
1 files changed, 0 insertions, 1703 deletions
diff --git a/src/components/policy/test/sql_pt_representation_test.cc b/src/components/policy/test/sql_pt_representation_test.cc
deleted file mode 100644
index 1f4df5d15d..0000000000
--- a/src/components/policy/test/sql_pt_representation_test.cc
+++ /dev/null
@@ -1,1703 +0,0 @@
-/* Copyright (c) 2015, 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 <vector>
-#include <string>
-#include <algorithm>
-#include <fstream>
-#include <memory>
-#include <stdio.h>
-#include <sys/stat.h>
-
-#include "gtest/gtest.h"
-#include "policy/test/include/driver_dbms.h"
-#include "policy/sql_pt_representation.h"
-#include "policy/policy_types.h"
-#include "policy/mock_policy_settings.h"
-#include "json/writer.h"
-#include "json/reader.h"
-#include "rpc_base/rpc_base.h"
-#include "policy/mock_policy_settings.h"
-#include "utils/shared_ptr.h"
-#include "utils/make_shared.h"
-#include "utils/file_system.h"
-#include "policy/policy_table/types.h"
-#include "policy/policy_table/enums.h"
-#include "rpc_base/rpc_base.h"
-#include "utils/sqlite_wrapper/sql_database.h"
-
-namespace policy_table = rpc::policy_table_interface_base;
-using policy::SQLPTRepresentation;
-using policy::CheckPermissionResult;
-using policy::UserFriendlyMessage;
-using policy::EndpointUrls;
-using policy::VehicleInfo;
-
-using testing::ReturnRef;
-using testing::Return;
-using testing::NiceMock;
-using testing::Mock;
-
-namespace test {
-namespace components {
-namespace policy {
-
-class SQLPTRepresentationTest : public SQLPTRepresentation,
- public ::testing::Test {
- protected:
- static DBMS* dbms;
- static SQLPTRepresentation* reps;
- static const std::string kDatabaseName;
- // Gtest can show message that this object doesn't destroyed
- static std::auto_ptr<policy_handler_test::MockPolicySettings>
- policy_settings_;
-
- static void SetUpTestCase() {
- const std::string kAppStorageFolder = "storage1";
- file_system::RemoveDirectory(kAppStorageFolder);
- file_system::DeleteFile("policy.sqlite");
- reps = new SQLPTRepresentation;
- dbms = new DBMS(kDatabaseName);
- policy_settings_ = std::auto_ptr<policy_handler_test::MockPolicySettings>(
- new policy_handler_test::MockPolicySettings());
- ON_CALL(*policy_settings_, app_storage_folder())
- .WillByDefault(ReturnRef(kAppStorageFolder));
- EXPECT_EQ(::policy::SUCCESS, reps->Init(policy_settings_.get()));
- EXPECT_TRUE(dbms->Open());
- }
-
- void TearDown() OVERRIDE {
- EXPECT_TRUE(reps->Clear());
- }
-
- static void TearDownTestCase() {
- EXPECT_TRUE(reps->Drop());
- EXPECT_TRUE(reps->Close());
- reps->RemoveDB();
- delete reps;
- dbms->Close();
- policy_settings_.reset();
- }
-
- virtual utils::dbms::SQLDatabase* db() const {
- return reps->db();
- }
-
- void GatherModuleMeta(policy_table::ModuleMeta* meta) const {
- ::SQLPTRepresentation::GatherModuleMeta(meta);
- }
-
- void GatherModuleConfig(policy_table::ModuleConfig* config) const {
- ::SQLPTRepresentation::GatherModuleConfig(config);
- }
-
- bool GatherUsageAndErrorCounts(
- policy_table::UsageAndErrorCounts* counts) const {
- return ::SQLPTRepresentation::GatherUsageAndErrorCounts(counts);
- }
-
- bool GatherApplicationPoliciesSection(
- policy_table::ApplicationPoliciesSection* policies) const {
- return ::SQLPTRepresentation::GatherApplicationPoliciesSection(policies);
- }
- virtual void GatherDeviceData(policy_table::DeviceData* data) const {
- ::SQLPTRepresentation::GatherDeviceData(data);
- }
-
- virtual bool GatherConsumerFriendlyMessages(
- policy_table::ConsumerFriendlyMessages* messages) const {
- return ::SQLPTRepresentation::GatherConsumerFriendlyMessages(messages);
- }
-
- bool GatherAppGroup(const std::string& app_id,
- policy_table::Strings* app_groups) const {
- return ::SQLPTRepresentation::GatherAppGroup(app_id, app_groups);
- }
-
- bool GatherAppType(const std::string& app_id,
- policy_table::AppHMITypes* app_types) const {
- return ::SQLPTRepresentation::GatherAppType(app_id, app_types);
- }
-
- bool GatherRequestType(const std::string& app_id,
- policy_table::RequestTypes* request_types) const {
- return ::SQLPTRepresentation::GatherRequestType(app_id, request_types);
- }
-
- bool GatherNickName(const std::string& app_id,
- policy_table::Strings* nicknames) const {
- return ::SQLPTRepresentation::GatherNickName(app_id, nicknames);
- }
-
- void CheckAppPoliciesSection(
- policy_table::ApplicationPoliciesSection& policies,
- uint16_t apps_size,
- policy_table::Priority prio,
- const std::string& section,
- uint16_t memory_kb,
- uint32_t heart_beat_timeout_ms,
- policy_table::Strings& groups) const {
- if (section != "device") {
- policy_table::ApplicationPolicies& apps = policies.apps;
- EXPECT_EQ(apps_size, apps.size());
- policy_table::ApplicationPolicies::iterator apps_iter =
- apps.find(section);
- ASSERT_TRUE(apps.end() != apps_iter);
- policy_table::Strings& temp_groups = apps_iter->second.groups;
- StringsCompare(groups, temp_groups);
- EXPECT_EQ(0u, (*(apps_iter->second.nicknames)).size());
- EXPECT_EQ(prio, apps_iter->second.priority);
- EXPECT_EQ(0u, (*(apps_iter->second.AppHMIType)).size());
- EXPECT_EQ(memory_kb, (*(apps_iter->second.memory_kb)));
- EXPECT_EQ(heart_beat_timeout_ms,
- (*(apps_iter->second.heart_beat_timeout_ms)));
- } else {
- policy_table::DevicePolicy& device = policies.device;
- EXPECT_EQ(prio, device.priority);
- }
- }
-
- void StringsCompare(policy_table::Strings& groups1,
- policy_table::Strings& groups2) const {
- EXPECT_EQ(groups1.size(), groups2.size());
- std::sort(groups1.begin(), groups1.end());
- std::sort(groups2.begin(), groups2.end());
- EXPECT_TRUE(groups1 == groups2);
- }
-
- void CheckAppGroups(const std::string& app_id,
- policy_table::Strings& groups) {
- policy_table::Strings app_groups;
- GatherAppGroup(app_id, &app_groups);
- StringsCompare(groups, app_groups);
- }
-
- void PolicyTableUpdatePrepare(Json::Value& table) {
- // Root
- table["policy_table"] = Json::Value(Json::objectValue);
-
- // 1st level
- Json::Value& policy_table = table["policy_table"];
- policy_table["module_config"] = Json::Value(Json::objectValue);
- policy_table["functional_groupings"] = Json::Value(Json::objectValue);
- policy_table["consumer_friendly_messages"] = Json::Value(Json::objectValue);
- policy_table["app_policies"] = Json::Value(Json::objectValue);
- policy_table["usage_and_error_counts"] = Json::Value(Json::objectValue);
- policy_table["device_data"] = Json::Value(Json::objectValue);
-
- // 'module_config' section start
- Json::Value& module_config = policy_table["module_config"];
- module_config["preloaded_pt"] = Json::Value(false);
- module_config["preloaded_date"] = Json::Value("");
- module_config["exchange_after_x_ignition_cycles"] = Json::Value(10);
- module_config["exchange_after_x_kilometers"] = Json::Value(100);
- module_config["exchange_after_x_days"] = Json::Value(5);
- module_config["timeout_after_x_seconds"] = Json::Value(500);
- module_config["seconds_between_retries"] = Json::Value(Json::arrayValue);
-
- Json::Value& seconds_between_retries =
- module_config["seconds_between_retries"];
- seconds_between_retries[0] = Json::Value(10);
- seconds_between_retries[1] = Json::Value(20);
- seconds_between_retries[2] = Json::Value(30);
- module_config["endpoints"] = Json::Value(Json::objectValue);
-
- Json::Value& endpoins = module_config["endpoints"];
- endpoins["0x00"] = Json::Value(Json::objectValue);
- endpoins["0x00"]["default"] = Json::Value(Json::arrayValue);
- endpoins["0x00"]["default"][0] =
- Json::Value("http://ford.com/cloud/default");
- module_config["notifications_per_minute_by_priority"] =
- Json::Value(Json::objectValue);
- module_config["notifications_per_minute_by_priority"]["emergency"] =
- Json::Value(1);
- module_config["notifications_per_minute_by_priority"]["navigation"] =
- Json::Value(2);
- module_config["notifications_per_minute_by_priority"]["VOICECOMM"] =
- Json::Value(3);
- module_config["notifications_per_minute_by_priority"]["communication"] =
- Json::Value(4);
- module_config["notifications_per_minute_by_priority"]["normal"] =
- Json::Value(5);
- module_config["notifications_per_minute_by_priority"]["none"] =
- Json::Value(6);
- module_config["vehicle_make"] = Json::Value("");
- module_config["vehicle_model"] = Json::Value("");
- module_config["vehicle_year"] = Json::Value("");
- module_config["certificate"] = Json::Value("encrypted_certificate_content");
- // 'module_config' section end
-
- // 'functional_groupings' section start
- Json::Value& functional_groupings = policy_table["functional_groupings"];
- functional_groupings["default"] = Json::Value(Json::objectValue);
- Json::Value& default_group = functional_groupings["default"];
- default_group["rpcs"] = Json::Value(Json::objectValue);
- default_group["rpcs"]["Update"] = Json::Value(Json::objectValue);
- default_group["rpcs"]["Update"]["hmi_levels"] =
- Json::Value(Json::arrayValue);
- default_group["rpcs"]["Update"]["hmi_levels"][0] = Json::Value("FULL");
- default_group["rpcs"]["Update"]["parameters"] =
- Json::Value(Json::arrayValue);
- default_group["rpcs"]["Update"]["parameters"][0] = Json::Value("speed");
-
- Json::Value& consumer_friendly_messages =
- policy_table["consumer_friendly_messages"];
- consumer_friendly_messages["version"] = Json::Value("some_msg_version");
- consumer_friendly_messages["messages"] = Json::Value(Json::objectValue);
- consumer_friendly_messages["messages"]["MSG_CODE"] =
- Json::Value(Json::objectValue);
- Json::Value& msg1 = consumer_friendly_messages["messages"]["MSG_CODE"];
- msg1["languages"] = Json::Value(Json::objectValue);
- msg1["languages"]["en-us"] = Json::Value(Json::objectValue);
- // 'functional_groupings' section end
-
- // 'app_policies' section start
- Json::Value& app_policies = policy_table["app_policies"];
- app_policies["default"] = Json::Value(Json::objectValue);
- app_policies["default"]["priority"] = Json::Value("EMERGENCY");
- app_policies["default"]["memory_kb"] = Json::Value(50);
- app_policies["default"]["heart_beat_timeout_ms"] = Json::Value(100);
- app_policies["default"]["groups"] = Json::Value(Json::arrayValue);
- app_policies["default"]["groups"][0] = Json::Value("default");
- app_policies["default"]["priority"] = Json::Value("EMERGENCY");
- app_policies["default"]["is_revoked"] = Json::Value(true);
- app_policies["default"]["default_hmi"] = Json::Value("FULL");
- app_policies["default"]["keep_context"] = Json::Value(true);
- app_policies["default"]["steal_focus"] = Json::Value(true);
-
- app_policies["pre_DataConsent"] = Json::Value(Json::objectValue);
- app_policies["pre_DataConsent"]["memory_kb"] = Json::Value(40);
- app_policies["pre_DataConsent"]["heart_beat_timeout_ms"] = Json::Value(90);
- app_policies["pre_DataConsent"]["groups"] = Json::Value(Json::arrayValue);
- app_policies["pre_DataConsent"]["groups"][0] = Json::Value("default");
- app_policies["pre_DataConsent"]["priority"] = Json::Value("EMERGENCY");
- app_policies["pre_DataConsent"]["default_hmi"] = Json::Value("FULL");
- app_policies["pre_DataConsent"]["is_revoked"] = Json::Value(false);
- app_policies["pre_DataConsent"]["keep_context"] = Json::Value(true);
- app_policies["pre_DataConsent"]["steal_focus"] = Json::Value(true);
- app_policies["1234"] = Json::Value(Json::objectValue);
- app_policies["1234"]["memory_kb"] = Json::Value(150);
- app_policies["1234"]["heart_beat_timeout_ms"] = Json::Value(200);
- app_policies["1234"]["groups"] = Json::Value(Json::arrayValue);
- app_policies["1234"]["groups"][0] = Json::Value("default");
- app_policies["1234"]["priority"] = Json::Value("EMERGENCY");
- app_policies["1234"]["default_hmi"] = Json::Value("FULL");
- app_policies["1234"]["is_revoked"] = Json::Value(true);
- app_policies["1234"]["keep_context"] = Json::Value(false);
- app_policies["1234"]["steal_focus"] = Json::Value(false);
- app_policies["device"] = Json::Value(Json::objectValue);
- app_policies["device"]["groups"] = Json::Value(Json::arrayValue);
- app_policies["device"]["groups"][0] = Json::Value("default");
- app_policies["device"]["priority"] = Json::Value("EMERGENCY");
- app_policies["device"]["is_revoked"] = Json::Value(true);
- app_policies["device"]["default_hmi"] = Json::Value("FULL");
- app_policies["device"]["keep_context"] = Json::Value(true);
- app_policies["device"]["steal_focus"] = Json::Value(true);
- // 'app_policies' section end
-
- Json::Value& usage_and_error_counts =
- policy_table["usage_and_error_counts"];
- usage_and_error_counts["app_level"] = Json::Value(Json::objectValue);
- usage_and_error_counts["app_level"]["some_app_id"] =
- Json::Value(Json::objectValue);
- usage_and_error_counts["app_level"]["some_app_id"]["count_of_tls_errors"] =
- Json::Value(5);
-
- Json::Value& device_data = policy_table["device_data"];
- device_data["device_id_hash_1"] = Json::Value(Json::objectValue);
- device_data["device_id_hash_2"] = Json::Value(Json::objectValue);
- device_data["device_id_hash_3"] = Json::Value(Json::objectValue);
- }
-
- ::testing::AssertionResult IsValid(const policy_table::Table& table) {
- if (table.is_valid()) {
- return ::testing::AssertionSuccess();
- } else {
- ::rpc::ValidationReport report(" - table");
- table.ReportErrors(&report);
- return ::testing::AssertionFailure() << ::rpc::PrettyFormat(report);
- }
- }
-};
-
-DBMS* SQLPTRepresentationTest::dbms = 0;
-SQLPTRepresentation* SQLPTRepresentationTest::reps = 0;
-const std::string SQLPTRepresentationTest::kDatabaseName = "policy.sqlite";
-std::auto_ptr<policy_handler_test::MockPolicySettings>
- SQLPTRepresentationTest::policy_settings_;
-
-class SQLPTRepresentationTest2 : public ::testing::Test {
- protected:
- SQLPTRepresentationTest2()
- : kAppStorageFolder("storage123")
- , kOpenAttemptTimeoutMs(700u)
- , kAttemptsToOpenPolicyDB(8u) {}
-
- void SetUp() OVERRIDE {
- file_system::CreateDirectory(kAppStorageFolder);
- chmod(kAppStorageFolder.c_str(), 00000);
- ON_CALL(policy_settings_, app_storage_folder())
- .WillByDefault(ReturnRef(kAppStorageFolder));
- ON_CALL(policy_settings_, open_attempt_timeout_ms())
- .WillByDefault(Return(kOpenAttemptTimeoutMs));
- ON_CALL(policy_settings_, attempts_to_open_policy_db())
- .WillByDefault(Return(kAttemptsToOpenPolicyDB));
- reps = new SQLPTRepresentation;
- }
-
- void TearDown() OVERRIDE {
- file_system::RemoveDirectory(kAppStorageFolder, true);
- delete reps;
- }
-
- SQLPTRepresentation* reps;
- NiceMock<policy_handler_test::MockPolicySettings> policy_settings_;
- const std::string kAppStorageFolder;
- const uint16_t kOpenAttemptTimeoutMs;
- const uint16_t kAttemptsToOpenPolicyDB;
-};
-
-// {AKozoriz} : Unknown behavior (must try 8 times, tried 2 and opened)
-TEST_F(SQLPTRepresentationTest2,
- DISABLED_OpenAttemptTimeOut_ExpectCorrectNumber) {
- EXPECT_EQ(::policy::FAIL, reps->Init(&policy_settings_));
- // Check Actual attempts number made to try to open DB
- EXPECT_EQ(kAttemptsToOpenPolicyDB, reps->open_counter());
- // Check timeot value correctly read from config file.
- EXPECT_EQ(700u, kOpenAttemptTimeoutMs);
-}
-
-TEST_F(SQLPTRepresentationTest,
- RefreshDB_DropExistedPTThenRefreshDB_ExpectTablesWithInitialData) {
- // Check
- const char* query_select =
- "SELECT COUNT(*) FROM sqlite_master WHERE `type` = 'table'";
- // In normally created PT there are more than 0 tables
- ASSERT_GT(dbms->FetchOneInt(query_select), 0);
- ASSERT_TRUE(reps->Drop());
- ASSERT_EQ(0, dbms->FetchOneInt(query_select));
- ASSERT_TRUE(reps->RefreshDB());
- // Check PT structure destroyed and tables number is 0
- ASSERT_EQ(25, dbms->FetchOneInt(query_select));
- const char* query_select_count_of_iap_buffer_full =
- "SELECT `count_of_iap_buffer_full` FROM `usage_and_error_count`";
- const char* query_select_count_sync_out_of_memory =
- "SELECT `count_sync_out_of_memory` FROM `usage_and_error_count`";
- const char* query_select_count_of_sync_reboots =
- "SELECT `count_of_sync_reboots` FROM `usage_and_error_count`";
- const char* query_select_pt_exchanged_at_odometer_x =
- "SELECT `pt_exchanged_at_odometer_x` FROM `module_meta`";
- const char* query_select_pt_exchanged_x_days_after_epoch =
- "SELECT `pt_exchanged_x_days_after_epoch` FROM `module_meta`";
- const char* query_select_flag_update_required =
- "SELECT `flag_update_required` FROM `module_meta`";
- const char* query_select_ignition_cycles_since_last_exchange =
- "SELECT `ignition_cycles_since_last_exchange` FROM `module_meta`";
- const char* query_select_preloaded_pt =
- "SELECT `preloaded_pt` FROM `module_config`";
- const char* query_select_is_first_run =
- "SELECT `is_first_run` FROM `module_config`";
- const char* query_select_exchange_after_x_ignition_cycles =
- "SELECT `exchange_after_x_ignition_cycles` FROM `module_config`";
- const char* query_select_exchange_after_x_kilometers =
- "SELECT `exchange_after_x_kilometers` FROM `module_config`";
- const char* query_select_exchange_after_x_days =
- "SELECT `exchange_after_x_days` FROM `module_config`";
- const char* query_select_timeout_after_x_seconds =
- "SELECT `timeout_after_x_seconds` FROM `module_config`";
- const char* query_select_priorities = "SELECT COUNT(`value`) FROM `priority`";
- const char* query_select_hmi_levels =
- "SELECT COUNT(`value`) FROM `hmi_level`";
- const char* query_select_version = "SELECT `number` FROM `version`";
-
- ASSERT_EQ(0, dbms->FetchOneInt(query_select_count_of_iap_buffer_full));
- ASSERT_EQ(0, dbms->FetchOneInt(query_select_count_sync_out_of_memory));
- ASSERT_EQ(0, dbms->FetchOneInt(query_select_count_of_sync_reboots));
- ASSERT_EQ(0, dbms->FetchOneInt(query_select_pt_exchanged_at_odometer_x));
- ASSERT_EQ(0, dbms->FetchOneInt(query_select_pt_exchanged_x_days_after_epoch));
- ASSERT_EQ(
- 0, dbms->FetchOneInt(query_select_ignition_cycles_since_last_exchange));
- ASSERT_EQ(0, dbms->FetchOneInt(query_select_flag_update_required));
- ASSERT_EQ(1, dbms->FetchOneInt(query_select_preloaded_pt));
- ASSERT_EQ(0, dbms->FetchOneInt(query_select_is_first_run));
- ASSERT_EQ(0,
- dbms->FetchOneInt(query_select_exchange_after_x_ignition_cycles));
- ASSERT_EQ(0, dbms->FetchOneInt(query_select_exchange_after_x_kilometers));
- ASSERT_EQ(0, dbms->FetchOneInt(query_select_exchange_after_x_days));
- ASSERT_EQ(0, dbms->FetchOneInt(query_select_timeout_after_x_seconds));
- ASSERT_EQ(6, dbms->FetchOneInt(query_select_priorities));
- ASSERT_EQ(4, dbms->FetchOneInt(query_select_hmi_levels));
- ASSERT_EQ(0, dbms->FetchOneInt(query_select_version));
-}
-
-TEST_F(
- SQLPTRepresentationTest,
- CheckPermissionsAllowed_SetValuesInAppGroupRpcFunctionalGroup_GetEqualParamsInCheckPermissionResult) {
- // Arrange
- const char* query =
- "INSERT OR REPLACE INTO `application` (`id`, `memory_kb`,"
- " `heart_beat_timeout_ms`) VALUES ('12345', 5, 10); "
- "INSERT OR REPLACE INTO functional_group (`id`, `name`)"
- " VALUES (1, 'Base-4'); "
- "INSERT OR REPLACE INTO `app_group` (`application_id`,"
- " `functional_group_id`) VALUES ('12345', 1); "
- "INSERT OR REPLACE INTO `rpc` (`name`, `parameter`, `hmi_level_value`,"
- " `functional_group_id`) VALUES ('Update', 'gps', 'FULL', 1); "
- "INSERT OR REPLACE INTO `rpc` (`name`, `parameter`, `hmi_level_value`,"
- " `functional_group_id`) VALUES ('Update', 'speed', 'FULL', 1);";
-
- // Assert
- ASSERT_TRUE(dbms->Exec(query));
-
- // Act
- CheckPermissionResult ret;
- reps->CheckPermissions("12345", "FULL", "Update", ret);
-
- // Assert
- EXPECT_TRUE(ret.hmi_level_permitted == ::policy::kRpcAllowed);
- ASSERT_EQ(2u, ret.list_of_allowed_params.size());
- EXPECT_EQ("gps", ret.list_of_allowed_params[0]);
- EXPECT_EQ("speed", ret.list_of_allowed_params[1]);
-}
-
-TEST_F(
- SQLPTRepresentationTest,
- CheckPermissionsAllowedWithoutParameters_SetLimitedPermissions_ExpectEmptyListOfAllowedParams) {
- // Arrange
- const char* query =
- "INSERT OR REPLACE INTO `application` (`id`, `memory_kb`,"
- " `heart_beat_timeout_ms`) VALUES ('12345', 5, 10); "
- "INSERT OR REPLACE INTO functional_group (`id`, `name`)"
- " VALUES (1, 'Base-4'); "
- "INSERT OR REPLACE INTO `app_group` (`application_id`,"
- " `functional_group_id`) VALUES ('12345', 1); "
- "DELETE FROM `rpc`; "
- "INSERT OR REPLACE INTO `rpc` (`name`, `hmi_level_value`,"
- " `functional_group_id`) VALUES ('Update', 'LIMITED', 1);";
-
- // Assert
- ASSERT_TRUE(dbms->Exec(query));
-
- // Act
- CheckPermissionResult ret;
- reps->CheckPermissions("12345", "LIMITED", "Update", ret);
-
- // Assert
- EXPECT_TRUE(ret.hmi_level_permitted == ::policy::kRpcAllowed);
- EXPECT_TRUE(ret.list_of_allowed_params.empty());
-}
-
-TEST_F(
- SQLPTRepresentationTest,
- CheckPermissionsDisallowedWithoutParameters_DeletedAppGroupAndSetFULLLevel_ExpectHmiLevelIsDissalowed) {
- // Arrange
- const char* query = "DELETE FROM `app_group`";
-
- // Assert
- ASSERT_TRUE(dbms->Exec(query));
-
- // Act
- CheckPermissionResult ret;
- reps->CheckPermissions("12345", "FULL", "Update", ret);
-
- // Assert
- EXPECT_EQ(::policy::kRpcDisallowed, ret.hmi_level_permitted);
- EXPECT_TRUE(ret.list_of_allowed_params.empty());
-}
-
-TEST_F(SQLPTRepresentationTest,
- PTPReloaded_UpdateModuleConfig_ReturnIsPTPreloadedTRUE) {
- // Arrange
- const char* query = "UPDATE `module_config` SET `preloaded_pt` = 1";
-
- // Assert
- ASSERT_TRUE(dbms->Exec(query));
- EXPECT_TRUE(reps->IsPTPreloaded());
-}
-
-TEST_F(SQLPTRepresentationTest,
- GetUpdateUrls_DeleteAndInsertEndpoints_ExpectUpdateUrls) {
- // Arrange
- const char* query_delete = "DELETE FROM `endpoint`; ";
-
- // Assert
- ASSERT_TRUE(dbms->Exec(query_delete));
-
- // Act
- EndpointUrls ret = reps->GetUpdateUrls(7);
-
- // Assert
- EXPECT_TRUE(ret.empty());
-
- // Act
- const char* query_insert =
- "INSERT INTO `endpoint` (`application_id`, `url`, `service`) "
- " VALUES ('12345', 'http://ford.com/cloud/1', 7);"
- "INSERT INTO `endpoint` (`application_id`, `url`, `service`) "
- " VALUES ('12345', 'http://ford.com/cloud/2', 7);";
-
- // Assert
- ASSERT_TRUE(dbms->Exec(query_insert));
- // Act
- ret = reps->GetUpdateUrls(7);
-
- // Assert
- ASSERT_EQ(2u, ret.size());
- EXPECT_EQ("http://ford.com/cloud/1", ret[0].url[0]);
- EXPECT_EQ("http://ford.com/cloud/2", ret[1].url[0]);
-
- // Act
- ret = reps->GetUpdateUrls(0);
-
- // Assert
- EXPECT_TRUE(ret.empty());
-}
-
-TEST_F(SQLPTRepresentationTest,
- IgnitionCyclesBeforeExchange_WithParametersOfQueryEqualZero) {
- // Arrange
- const char* query_zeros =
- "UPDATE `module_meta` SET "
- " `ignition_cycles_since_last_exchange` = 0; "
- " UPDATE `module_config` SET `exchange_after_x_ignition_cycles` = 0";
-
- // Assert
- ASSERT_TRUE(dbms->Exec(query_zeros));
- EXPECT_EQ(0, reps->IgnitionCyclesBeforeExchange());
-
- // Act
- reps->IncrementIgnitionCycles();
-
- // Assert
- EXPECT_EQ(0, reps->IgnitionCyclesBeforeExchange());
-}
-
-TEST_F(SQLPTRepresentationTest,
- IgnitionCyclesBeforeExchange_WithParametersOfQueryAreLessLimit) {
- // Arrange
- const char* query_less_limit =
- "UPDATE `module_meta` SET "
- " `ignition_cycles_since_last_exchange` = 5; "
- " UPDATE `module_config` SET `exchange_after_x_ignition_cycles` = 10";
-
- // Assert
- ASSERT_TRUE(dbms->Exec(query_less_limit));
- EXPECT_EQ(5, reps->IgnitionCyclesBeforeExchange());
-
- // Act
- reps->IncrementIgnitionCycles();
-
- // Assert
- EXPECT_EQ(4, reps->IgnitionCyclesBeforeExchange());
-}
-
-TEST_F(SQLPTRepresentationTest,
- IgnitionCyclesBeforeExchange_WithLimitCountOfParametersOfQuery) {
- // Arrange
- const char* query_limit =
- "UPDATE `module_meta` SET "
- " `ignition_cycles_since_last_exchange` = 9; "
- " UPDATE `module_config` SET `exchange_after_x_ignition_cycles` = 10";
-
- // Assert
- ASSERT_TRUE(dbms->Exec(query_limit));
- EXPECT_EQ(1, reps->IgnitionCyclesBeforeExchange());
- // Act
- reps->IncrementIgnitionCycles();
- // Assert
- EXPECT_EQ(0, reps->IgnitionCyclesBeforeExchange());
-}
-
-TEST_F(SQLPTRepresentationTest,
- IgnitionCyclesBeforeExchange_WithMoreLimitCountOfParametersOfQuery) {
- // Arrange
- const char* query_more_limit =
- "UPDATE `module_meta` SET "
- " `ignition_cycles_since_last_exchange` = 12; "
- " UPDATE `module_config` SET `exchange_after_x_ignition_cycles` = 10";
-
- // Assert
- ASSERT_TRUE(dbms->Exec(query_more_limit));
- // Chceck
- EXPECT_EQ(0, reps->IgnitionCyclesBeforeExchange());
-}
-
-TEST_F(SQLPTRepresentationTest,
- IgnitionCyclesBeforeExchange_WithNegativeLimitOfParametersOfQuery) {
- // Arrange
- const char* query_negative_limit =
- "UPDATE `module_meta` SET "
- " `ignition_cycles_since_last_exchange` = 3; "
- " UPDATE `module_config` SET `exchange_after_x_ignition_cycles` = -1";
-
- // Assert
- ASSERT_TRUE(dbms->Exec(query_negative_limit));
- // Check
- EXPECT_EQ(0, reps->IgnitionCyclesBeforeExchange());
-}
-
-TEST_F(
- SQLPTRepresentationTest,
- IgnitionCyclesBeforeExchange_WithNegativeLimitOfCurrentParameterOfQuery) {
- // Arrange
- const char* query_negative_current =
- "UPDATE `module_meta` SET "
- " `ignition_cycles_since_last_exchange` = -1; "
- " UPDATE `module_config` SET `exchange_after_x_ignition_cycles` = 2";
-
- // Assert
- ASSERT_TRUE(dbms->Exec(query_negative_current));
- // Check
- EXPECT_EQ(0, reps->IgnitionCyclesBeforeExchange());
-}
-
-TEST_F(SQLPTRepresentationTest,
- KilometersBeforeExchange_WithParametersOfQueryEqualZero) {
- // Arrange
- const char* query_zeros =
- "UPDATE `module_meta` SET "
- " `pt_exchanged_at_odometer_x` = 0; "
- " UPDATE `module_config` SET `exchange_after_x_kilometers` = 0";
-
- // Assert
- ASSERT_TRUE(dbms->Exec(query_zeros));
- // Checks
- EXPECT_EQ(0, reps->KilometersBeforeExchange(0));
- EXPECT_EQ(0, reps->KilometersBeforeExchange(-10));
- EXPECT_EQ(0, reps->KilometersBeforeExchange(10));
-}
-
-TEST_F(SQLPTRepresentationTest,
- KilometersBeforeExchange_QueryWithNegativeLimit) {
- // Arrange
- const char* query_negative_limit =
- "UPDATE `module_meta` SET "
- " `pt_exchanged_at_odometer_x` = 10; "
- " UPDATE `module_config` SET `exchange_after_x_kilometers` = -10";
-
- // Assert
- ASSERT_TRUE(dbms->Exec(query_negative_limit));
- // Checks
- EXPECT_EQ(0, reps->KilometersBeforeExchange(0));
- EXPECT_EQ(0, reps->KilometersBeforeExchange(10));
-}
-
-TEST_F(SQLPTRepresentationTest,
- KilometersBeforeExchange_QueryWithNegativeCurrentLimit) {
- // Arrange
- const char* query_negative_last =
- "UPDATE `module_meta` SET "
- " `pt_exchanged_at_odometer_x` = -10; "
- " UPDATE `module_config` SET `exchange_after_x_kilometers` = 20";
-
- // Assert
- ASSERT_TRUE(dbms->Exec(query_negative_last));
- // Checks
- EXPECT_EQ(0, reps->KilometersBeforeExchange(0));
- EXPECT_EQ(0, reps->KilometersBeforeExchange(10));
-}
-
-TEST_F(SQLPTRepresentationTest,
- KilometersBeforeExchange_QueryWithLimitParameters) {
- // Arrange
- const char* query_limit =
- "UPDATE `module_meta` SET "
- " `pt_exchanged_at_odometer_x` = 10; "
- " UPDATE `module_config` SET `exchange_after_x_kilometers` = 100";
-
- // Assert
- ASSERT_TRUE(dbms->Exec(query_limit));
- // Checks
- EXPECT_EQ(0, reps->KilometersBeforeExchange(120));
- EXPECT_EQ(60, reps->KilometersBeforeExchange(50));
- EXPECT_EQ(0, reps->KilometersBeforeExchange(5));
-}
-
-TEST_F(SQLPTRepresentationTest,
- DaysBeforeExchange_WithParametersOfQueryEqualZero) {
- // Arrange
- const char* query_zeros =
- "UPDATE `module_meta` SET "
- " `pt_exchanged_x_days_after_epoch` = 0; "
- " UPDATE `module_config` SET `exchange_after_x_days` = 0";
-
- // Assert
- ASSERT_TRUE(dbms->Exec(query_zeros));
- // Checks
- EXPECT_EQ(0, reps->DaysBeforeExchange(0));
- EXPECT_EQ(0, reps->DaysBeforeExchange(-10));
- EXPECT_EQ(0, reps->DaysBeforeExchange(10));
-}
-
-TEST_F(SQLPTRepresentationTest, DaysBeforeExchange_QueryWithNegativeLimit) {
- // Arrange
- const char* query_negative_limit =
- "UPDATE `module_meta` SET "
- " `pt_exchanged_x_days_after_epoch` = 10; "
- " UPDATE `module_config` SET `exchange_after_x_days` = -10";
-
- // Assert
- ASSERT_TRUE(dbms->Exec(query_negative_limit));
- // Checks
- EXPECT_EQ(0, reps->DaysBeforeExchange(0));
- EXPECT_EQ(0, reps->DaysBeforeExchange(10));
-}
-
-TEST_F(SQLPTRepresentationTest,
- DaysBeforeExchange_QueryWithNegativeCurrentLimit) {
- // Arrange
- const char* query_negative_last =
- "UPDATE `module_meta` SET "
- " `pt_exchanged_x_days_after_epoch` = -10; "
- " UPDATE `module_config` SET `exchange_after_x_days` = 20";
-
- // Assert
- ASSERT_TRUE(dbms->Exec(query_negative_last));
- // Checks
- EXPECT_EQ(0, reps->DaysBeforeExchange(0));
- EXPECT_EQ(0, reps->DaysBeforeExchange(10));
-}
-
-TEST_F(SQLPTRepresentationTest, DaysBeforeExchange_QueryWithLimitParameters) {
- // Arrange
- const char* query_limit =
- "UPDATE `module_meta` SET "
- " `pt_exchanged_x_days_after_epoch` = 10; "
- " UPDATE `module_config` SET `exchange_after_x_days` = 100";
-
- // Assert
- ASSERT_TRUE(dbms->Exec(query_limit));
- // Checks
- EXPECT_EQ(0, reps->DaysBeforeExchange(120));
- EXPECT_EQ(60, reps->DaysBeforeExchange(50));
- EXPECT_EQ(0, reps->DaysBeforeExchange(5));
-}
-
-TEST_F(
- SQLPTRepresentationTest,
- SecondsBetweenRetries_DeletedAndInsertedSecondsBetweenRetry_ExpectCountOfSecondsEqualInserted) {
- // Arrange
- std::vector<int> seconds;
- const char* query_delete = "DELETE FROM `seconds_between_retry`; ";
-
- // Assert
- ASSERT_TRUE(dbms->Exec(query_delete));
- ASSERT_TRUE(reps->SecondsBetweenRetries(&seconds));
- EXPECT_EQ(0u, seconds.size());
-
- // Arrange
- const char* query_insert =
- "INSERT INTO `seconds_between_retry` (`index`, `value`) "
- " VALUES (0, 10); "
- "INSERT INTO `seconds_between_retry` (`index`, `value`) "
- " VALUES (1, 20); ";
-
- // Assert
- ASSERT_TRUE(dbms->Exec(query_insert));
- ASSERT_TRUE(reps->SecondsBetweenRetries(&seconds));
- // Checks
- ASSERT_EQ(2u, seconds.size());
- EXPECT_EQ(10, seconds[0]);
- EXPECT_EQ(20, seconds[1]);
-}
-
-TEST_F(SQLPTRepresentationTest, TimeoutResponse_Set60Seconds_GetEqualTimeout) {
- // Arrange
- const char* query =
- "UPDATE `module_config` SET `timeout_after_x_seconds` = 60";
-
- // Assert
- ASSERT_TRUE(dbms->Exec(query));
- // Check
- EXPECT_EQ(60, reps->TimeoutResponse());
-}
-
-TEST_F(SQLPTRepresentationTest,
- IsPTPreloaded_SetPTPreloadedThenCheck_ExpectCorrectValue) {
- // Arrange
- const char* query_insert = "UPDATE `module_config` SET `preloaded_pt` = 1";
- ASSERT_TRUE(dbms->Exec(query_insert));
- // Check
- ASSERT_TRUE(reps->IsPTPreloaded());
-}
-
-TEST_F(
- SQLPTRepresentationTest,
- SetCountersPassedForSuccessfulUpdate_SetCounters_ExpectValueChangedInPT) {
- // Arrange
- const char* query_select_odometer =
- "SELECT `pt_exchanged_at_odometer_x` FROM`module_meta`";
- const char* query_select_days_after_epoch =
- "SELECT `pt_exchanged_x_days_after_epoch` FROM`module_meta`";
- ASSERT_EQ(0, dbms->FetchOneInt(query_select_odometer));
- ASSERT_EQ(0, dbms->FetchOneInt(query_select_days_after_epoch));
- // Act
- ASSERT_TRUE(reps->SetCountersPassedForSuccessfulUpdate(100, 10000));
- ASSERT_EQ(100, dbms->FetchOneInt(query_select_odometer));
- ASSERT_EQ(10000, dbms->FetchOneInt(query_select_days_after_epoch));
-}
-
-TEST_F(
- SQLPTRepresentationTest,
- IncrementIgnitionCycles_SetIgnitionCyclesValueThenIncrement_ExpectValueIncrementedInPT) {
- // Arrange
- const char* query_insert =
- "UPDATE `module_meta` SET `ignition_cycles_since_last_exchange` = 54";
- const char* query_select =
- "SELECT `ignition_cycles_since_last_exchange`FROM `module_meta`";
- ASSERT_TRUE(dbms->Exec(query_insert));
- // Act
- reps->IncrementIgnitionCycles();
- // Check
- ASSERT_EQ(55, dbms->FetchOneInt(query_select));
-}
-
-TEST_F(
- SQLPTRepresentationTest,
- ResetIgnitionCycles_SetIgnitionCyclesValueThenReset_ExpectZeroValueInPT) {
- // Arrange
- const char* query_insert =
- "UPDATE `module_meta` SET `ignition_cycles_since_last_exchange` = 55";
- const char* query_select =
- "SELECT `ignition_cycles_since_last_exchange` FROM `module_meta`";
- ASSERT_TRUE(dbms->Exec(query_insert));
- // Act
- reps->ResetIgnitionCycles();
- // Check
- ASSERT_EQ(0, dbms->FetchOneInt(query_select));
-}
-
-TEST_F(SQLPTRepresentationTest,
- GetUserFriendlyMsg_SetMsg_ExpectReceivedMsgSetInParams) {
- // Arrange
-
- const char* query_insert =
- "INSERT INTO `message` (`language_code`, `message_type_name`) VALUES "
- "('en-en', 'AppPermissions')";
-
- ASSERT_TRUE(dbms->Exec(query_insert));
- query_insert =
- "INSERT INTO `message_type` (`name`) VALUES ('AppPermissions')";
- ASSERT_TRUE(dbms->Exec(query_insert));
- std::vector<std::string> msg_code;
- msg_code.push_back("AppPermissions");
- // Act
- std::vector<UserFriendlyMessage> result =
- reps->GetUserFriendlyMsg(msg_code, std::string("en-en"));
- // Checks
- ASSERT_EQ(1u, result.size());
- EXPECT_EQ(result[0].message_code, "AppPermissions");
-}
-
-TEST_F(
- SQLPTRepresentationTest,
- GetNotificationNumber_SetNotificationsPriorities_ExpectReceivedValuesCorrect) {
- // Arrange
- const char* query_insert =
- "INSERT INTO `notifications_by_priority` (`priority_value`, `value`) "
- "VALUES ('NAVIGATION', 15) , "
- "('COMMUNICATION', 6), ('EMERGENCY', 60), ('NONE', 0), ('NORMAL', 4), "
- "('VOICECOMMUNICATION', 20)";
-
- ASSERT_TRUE(dbms->Exec(query_insert));
- EXPECT_EQ(6, reps->GetNotificationsNumber("COMMUNICATION"));
- EXPECT_EQ(60, reps->GetNotificationsNumber("EMERGENCY"));
- EXPECT_EQ(15, reps->GetNotificationsNumber("NAVIGATION"));
- EXPECT_EQ(0, reps->GetNotificationsNumber("NONE"));
- EXPECT_EQ(4, reps->GetNotificationsNumber("NORMAL"));
- EXPECT_EQ(20, reps->GetNotificationsNumber("VOICECOMMUNICATION"));
-}
-
-TEST_F(SQLPTRepresentationTest,
- GetPriority_SetAppsPrioritiesThenGet_ExpectReceivedValuesCorrect) {
- // Arrange
- const char* query_insert_app =
- "INSERT OR IGNORE INTO `application`(`id`, `keep_context`, "
- "`steal_focus`, "
- " `default_hmi`, `priority_value`, `is_revoked`, `is_default`, "
- "`is_predata`, `memory_kb`, "
- " `heart_beat_timeout_ms`) VALUES( 'default', 0, 0, 'NONE', 'NONE', 0, "
- "0, "
- "0, 64, 10) ";
- ASSERT_TRUE(dbms->Exec(query_insert_app));
-
- query_insert_app =
- "INSERT OR IGNORE INTO `application`(`id`, `keep_context`, "
- "`steal_focus`, "
- " `default_hmi`, `priority_value`, `is_revoked`, `is_default`, "
- "`is_predata`, `memory_kb`, "
- " `heart_beat_timeout_ms`) VALUES( 'pre_DataConsent', 0, 0, 'NONE', "
- "'NONE', 0, 0, "
- "0, 64, 10) ";
- ASSERT_TRUE(dbms->Exec(query_insert_app));
-
- query_insert_app =
- "INSERT OR IGNORE INTO `application`(`id`, `keep_context`, "
- "`steal_focus`, "
- " `default_hmi`, `priority_value`, `is_revoked`, `is_default`, "
- "`is_predata`, `memory_kb`, "
- " `heart_beat_timeout_ms`) VALUES( 'device', 0, 0, 'NONE', "
- "'COMMUNICATION', 0, 0, "
- "0, 64, 10) ";
- ASSERT_TRUE(dbms->Exec(query_insert_app));
-
- query_insert_app =
- "INSERT OR IGNORE INTO `application`(`id`, `keep_context`, "
- "`steal_focus`, "
- " `default_hmi`, `priority_value`, `is_revoked`, `is_default`, "
- "`is_predata`, `memory_kb`, "
- " `heart_beat_timeout_ms`) VALUES( '12345', 0, 0, 'NONE', 'EMERGENCY', "
- "0, 0, "
- "0, 64, 10) ";
- ASSERT_TRUE(dbms->Exec(query_insert_app));
-
- std::string priority;
- // Checks
- EXPECT_TRUE(reps->GetPriority("default", &priority));
- EXPECT_EQ("NONE", priority);
- EXPECT_TRUE(reps->GetPriority("pre_DataConsent", &priority));
- EXPECT_EQ("NONE", priority);
- EXPECT_TRUE(reps->GetPriority("device", &priority));
- EXPECT_EQ("COMMUNICATION", priority);
- EXPECT_TRUE(reps->GetPriority("12345", &priority));
- EXPECT_EQ("EMERGENCY", priority);
-}
-
-namespace {
-const std::string kAppStorageFolder = "storage";
-}
-
-TEST(SQLPTRepresentationTest3, Init_InitNewDataBase_ExpectResultSuccess) {
- // Arrange
- NiceMock<policy_handler_test::MockPolicySettings> policy_settings_;
- SQLPTRepresentation* reps;
- reps = new SQLPTRepresentation;
- // Checks
- ON_CALL(policy_settings_, app_storage_folder())
- .WillByDefault(ReturnRef(kAppStorageFolder));
- EXPECT_EQ(::policy::SUCCESS, reps->Init(&policy_settings_));
- EXPECT_EQ(::policy::EXISTS, reps->Init(&policy_settings_));
- reps->RemoveDB();
- delete reps;
-}
-
-TEST(SQLPTRepresentationTest3,
- Init_TryInitNotExistingDataBase_ExpectResultFail) {
- // Arrange
- NiceMock<policy_handler_test::MockPolicySettings> policy_settings_;
- ON_CALL(policy_settings_, app_storage_folder())
- .WillByDefault(ReturnRef(kAppStorageFolder));
- SQLPTRepresentation reps;
- (reps.db())->set_path("/home/");
- // Check
- EXPECT_EQ(::policy::FAIL, reps.Init(&policy_settings_));
-}
-
-TEST(SQLPTRepresentationTest3,
- Close_InitNewDataBaseThenClose_ExpectResultSuccess) {
- // Arrange
- NiceMock<policy_handler_test::MockPolicySettings> policy_settings_;
- ON_CALL(policy_settings_, app_storage_folder())
- .WillByDefault(ReturnRef(kAppStorageFolder));
- SQLPTRepresentation reps;
- EXPECT_EQ(::policy::SUCCESS, reps.Init(&policy_settings_));
- EXPECT_TRUE(reps.Close());
- utils::dbms::SQLError error(utils::dbms::Error::OK);
- // Checks
- EXPECT_EQ(error.number(), (reps.db()->LastError().number()));
- reps.RemoveDB();
-}
-
-TEST_F(SQLPTRepresentationTest,
- Clear_InitNewDataBaseThenClear_ExpectResultSuccess) {
- // Arrange
- const char* query_insert_app =
- "INSERT OR IGNORE INTO `application`(`id`, `keep_context`, "
- "`steal_focus`, "
- " `default_hmi`, `priority_value`, `is_revoked`, `is_default`, "
- "`is_predata`, `memory_kb`, "
- " `heart_beat_timeout_ms`) VALUES( 'default', 0, 0, 'NONE', 'NONE', 0, "
- "0, "
- "0, 64, 10) ";
- ASSERT_TRUE(dbms->Exec(query_insert_app));
-
- query_insert_app =
- "INSERT OR IGNORE INTO `application`(`id`, `keep_context`, "
- "`steal_focus`, "
- " `default_hmi`, `priority_value`, `is_revoked`, `is_default`, "
- "`is_predata`, `memory_kb`, "
- " `heart_beat_timeout_ms`) VALUES( 'pre_DataConsent', 0, 0, 'NONE', "
- "'NONE', 0, 0, "
- "0, 64, 10) ";
- ASSERT_TRUE(dbms->Exec(query_insert_app));
-
- query_insert_app =
- "INSERT OR IGNORE INTO `application`(`id`, `keep_context`, "
- "`steal_focus`, "
- " `default_hmi`, `priority_value`, `is_revoked`, `is_default`, "
- "`is_predata`, `memory_kb`, "
- " `heart_beat_timeout_ms`) VALUES( 'device', 0, 0, 'NONE', "
- "'COMMUNICATION', 0, 0, "
- "0, 64, 10) ";
- ASSERT_TRUE(dbms->Exec(query_insert_app));
-
- query_insert_app =
- "INSERT OR IGNORE INTO `application`(`id`, `keep_context`, "
- "`steal_focus`, "
- " `default_hmi`, `priority_value`, `is_revoked`, `is_default`, "
- "`is_predata`, `memory_kb`, "
- " `heart_beat_timeout_ms`) VALUES( '12345', 0, 0, 'NONE', 'EMERGENCY', "
- "0, 0, "
- "0, 64, 10) ";
- ASSERT_TRUE(dbms->Exec(query_insert_app));
-
- const char* query_insert =
- "INSERT INTO `notifications_by_priority` (`priority_value`, `value`) "
- "VALUES ('NAVIGATION', 15) , "
- "('COMMUNICATION', 6), ('EMERGENCY', 60), ('NONE', 0), ('NORMAL', 4), "
- "('VOICECOMMUNICATION', 20)";
-
- ASSERT_TRUE(dbms->Exec(query_insert));
- EXPECT_TRUE(reps->Clear());
- utils::dbms::SQLError error(utils::dbms::Error::OK);
- EXPECT_EQ(error.number(), (reps->db()->LastError().number()));
-}
-
-TEST_F(SQLPTRepresentationTest,
- GetInitialAppData_SetData_ExpectCorrectValuesReceived) {
- // Arrange
- const char* query_insert =
- "INSERT INTO `nickname` (`application_id`, `name`)"
- "VALUES ('1111', 'first_app') , "
- "('2222', 'second_app'), ('3333', 'third_app')";
- ASSERT_TRUE(dbms->Exec(query_insert));
-
- query_insert =
- "INSERT INTO `app_type` (`application_id`, `name`)"
- "VALUES ('1111', 'NAVIGATION') , "
- "('1111', 'MEDIA'), ('3333', 'COMMUNICATION')";
- ASSERT_TRUE(dbms->Exec(query_insert));
- ::policy::StringArray nicknames;
- ::policy::StringArray app_types;
- ASSERT_TRUE(reps->GetInitialAppData("1111", &nicknames, &app_types));
- EXPECT_EQ(1u, nicknames.size());
- EXPECT_TRUE(nicknames.end() !=
- std::find(nicknames.begin(), nicknames.end(), "first_app"));
- EXPECT_EQ(2u, app_types.size());
- EXPECT_TRUE(app_types.end() !=
- std::find(app_types.begin(), app_types.end(), "NAVIGATION"));
- EXPECT_TRUE(app_types.end() !=
- std::find(app_types.begin(), app_types.end(), "MEDIA"));
- nicknames.clear();
- app_types.clear();
- ASSERT_TRUE(reps->GetInitialAppData("2222", &nicknames, &app_types));
- EXPECT_EQ(1u, nicknames.size());
- EXPECT_TRUE(nicknames.end() !=
- std::find(nicknames.begin(), nicknames.end(), "second_app"));
- EXPECT_EQ(0u, app_types.size());
- nicknames.clear();
- app_types.clear();
- ASSERT_TRUE(reps->GetInitialAppData("3333", &nicknames, &app_types));
- EXPECT_EQ(1u, nicknames.size());
- EXPECT_TRUE(nicknames.end() !=
- std::find(nicknames.begin(), nicknames.end(), "third_app"));
- EXPECT_EQ(1u, app_types.size());
- EXPECT_TRUE(app_types.end() !=
- std::find(app_types.begin(), app_types.end(), "COMMUNICATION"));
-}
-
-TEST_F(
- SQLPTRepresentationTest,
- GetFunctionalGroupings_SetFunctionalGroupings_ExpectCorrectValuesReceived) {
- // Arrange
- const char* query_insert =
- "INSERT INTO `functional_group` (`id`, `user_consent_prompt`, `name`) "
- "VALUES (73072936, null, 'SendLocation'), (1533011474, null, "
- "'OnKeyboardInputOnlyGroup')";
- ASSERT_TRUE(dbms->Exec(query_insert));
-
- query_insert =
- "INSERT INTO `rpc` (`name`, `hmi_level_value`, `functional_group_id`) "
- "VALUES ('SendLocation', 'BACKGROUND', 73072936), ('SendLocation', "
- "'FULL', 73072936), ('SendLocation', 'LIMITED', 73072936)";
- ASSERT_TRUE(dbms->Exec(query_insert));
-
- query_insert =
- "INSERT INTO `rpc` (`name`, `hmi_level_value`, `functional_group_id`) "
- "VALUES ('OnKeyboardInput', 'FULL', 1533011474)";
- ASSERT_TRUE(dbms->Exec(query_insert));
-
- policy_table::FunctionalGroupings func_groups;
- ASSERT_TRUE(reps->GetFunctionalGroupings(func_groups));
- EXPECT_EQ(2u, func_groups.size());
- policy_table::FunctionalGroupings::iterator func_groups_it =
- func_groups.find("SendLocation");
- EXPECT_TRUE(func_groups.end() != func_groups_it);
- policy_table::Rpcs& rpcs = func_groups_it->second;
- EXPECT_EQ("", static_cast<std::string>(*rpcs.user_consent_prompt));
- policy_table::Rpc& rpc = rpcs.rpcs;
- EXPECT_EQ(1u, rpc.size());
- policy_table::Rpc::const_iterator rpc_it = rpc.find("SendLocation");
- EXPECT_TRUE(rpc.end() != rpc_it);
- const policy_table::HmiLevels& hmi_levels1 = rpc_it->second.hmi_levels;
- EXPECT_EQ(3u, hmi_levels1.size());
- EXPECT_TRUE(hmi_levels1.end() !=
- std::find(hmi_levels1.begin(),
- hmi_levels1.end(),
- policy_table::HmiLevel::HL_BACKGROUND));
- EXPECT_TRUE(hmi_levels1.end() !=
- std::find(hmi_levels1.begin(),
- hmi_levels1.end(),
- policy_table::HmiLevel::HL_LIMITED));
- EXPECT_TRUE(hmi_levels1.end() != std::find(hmi_levels1.begin(),
- hmi_levels1.end(),
- policy_table::HmiLevel::HL_FULL));
-
- func_groups_it = func_groups.find("OnKeyboardInputOnlyGroup");
- EXPECT_TRUE(func_groups.end() != func_groups_it);
- policy_table::Rpcs& rpcs2 = func_groups_it->second;
- EXPECT_EQ("", static_cast<std::string>(*rpcs2.user_consent_prompt));
- policy_table::Rpc& rpc2 = rpcs2.rpcs;
- EXPECT_EQ(1u, rpc2.size());
- rpc_it = rpc2.find("OnKeyboardInput");
- EXPECT_TRUE(rpc2.end() != rpc_it);
- const policy_table::HmiLevels& hmi_levels2 = rpc_it->second.hmi_levels;
- EXPECT_EQ(1u, hmi_levels2.size());
- EXPECT_TRUE(hmi_levels2.end() != std::find(hmi_levels2.begin(),
- hmi_levels2.end(),
- policy_table::HmiLevel::HL_FULL));
-}
-
-TEST_F(
- SQLPTRepresentationTest,
- UpdateRequired_SetUpdateNotRequiredFlagThenCheck_ExpectUpdateNotRequired) {
- // Arrange
- EXPECT_FALSE(reps->UpdateRequired());
-}
-
-TEST_F(SQLPTRepresentationTest,
- UpdateRequired_SetUpdateRequiredFlagThenCheck_ExpectUpdateRequired) {
- // Arrange
- const char* query_insert =
- "UPDATE `module_meta` SET `flag_update_required` = 1";
- // Assert
- ASSERT_TRUE(dbms->Exec(query_insert));
- // Check
- EXPECT_TRUE(reps->UpdateRequired());
-}
-
-TEST_F(SQLPTRepresentationTest,
- SaveUpdateRequired_SaveUpdateRequired_ExpectCorrectValues) {
- // Arrange
- reps->SaveUpdateRequired(true);
- // Check
- EXPECT_TRUE(reps->UpdateRequired());
- // Act
- reps->SaveUpdateRequired(false);
- // Check
- EXPECT_FALSE(reps->UpdateRequired());
-}
-
-TEST_F(SQLPTRepresentationTest,
- IsApplicationRepresented_Check_ExpectCorrectResult) {
- // Arrange
- const char* query_insert_app =
- "INSERT OR IGNORE INTO `application`(`id`, `keep_context`, "
- "`steal_focus`, "
- " `default_hmi`, `priority_value`, `is_revoked`, `is_default`, "
- "`is_predata`, `memory_kb`, "
- " `heart_beat_timeout_ms`) VALUES( 'default', 0, 0, 'NONE', 'NONE', 0, "
- "0, "
- "0, 64, 10) ";
- ASSERT_TRUE(dbms->Exec(query_insert_app));
-
- query_insert_app =
- "INSERT OR IGNORE INTO `application`(`id`, `keep_context`, "
- "`steal_focus`, "
- " `default_hmi`, `priority_value`, `is_revoked`, `is_default`, "
- "`is_predata`, `memory_kb`, "
- " `heart_beat_timeout_ms`) VALUES( 'device', 0, 0, 'NONE', "
- "'COMMUNICATION', 0, 0, 0, 64, 10) ";
- ASSERT_TRUE(dbms->Exec(query_insert_app));
-
- query_insert_app =
- "INSERT OR IGNORE INTO `application`(`id`, `keep_context`, "
- "`steal_focus`, "
- " `default_hmi`, `priority_value`, `is_revoked`, `is_default`, "
- "`is_predata`, `memory_kb`, "
- " `heart_beat_timeout_ms`) VALUES( '12345', 0, 0, 'NONE', 'EMERGENCY', "
- "0, 0, "
- "0, 64, 10) ";
- ASSERT_TRUE(dbms->Exec(query_insert_app));
- // Checks
- EXPECT_TRUE(reps->IsApplicationRepresented("default"));
- EXPECT_TRUE(reps->IsApplicationRepresented("device"));
- EXPECT_TRUE(reps->IsApplicationRepresented("12345"));
- EXPECT_FALSE(reps->IsApplicationRepresented("1234"));
-}
-
-TEST_F(SQLPTRepresentationTest,
- IsApplicationRevoked_CheckApps_ExpectCorrectResult) {
- // Arrange
- const char* query_insert_app =
- "INSERT OR IGNORE INTO `application`(`id`, `keep_context`, "
- "`steal_focus`, "
- " `default_hmi`, `priority_value`, `is_revoked`, `is_default`, "
- "`is_predata`, `memory_kb`, "
- " `heart_beat_timeout_ms`) VALUES( '7777', 0, 0, 'NONE', 'NONE', 1, "
- "0, "
- "0, 64, 10) ";
- ASSERT_TRUE(dbms->Exec(query_insert_app));
-
- query_insert_app =
- "INSERT OR IGNORE INTO `application`(`id`, `keep_context`, "
- "`steal_focus`, "
- " `default_hmi`, `priority_value`, `is_revoked`, `is_default`, "
- "`is_predata`, `memory_kb`, "
- " `heart_beat_timeout_ms`) VALUES( '12345', 0, 0, 'NONE', 'EMERGENCY', "
- "0, 0, "
- "0, 64, 10) ";
- ASSERT_TRUE(dbms->Exec(query_insert_app));
- // Checks
- EXPECT_TRUE(reps->IsApplicationRevoked("7777"));
- EXPECT_FALSE(reps->IsApplicationRevoked("12345"));
-}
-
-TEST_F(SQLPTRepresentationTest,
- CopyApplication_CopyApplication_ExpectAppCopiedSuccesfully) {
- // Arrange
- const char* query_insert_app =
- "INSERT OR IGNORE INTO `application`(`id`, `keep_context`, "
- "`steal_focus`, "
- " `default_hmi`, `priority_value`, `is_revoked`, `is_default`, "
- "`is_predata`, `memory_kb`, "
- " `heart_beat_timeout_ms`) VALUES( 'default', 0, 0, 'NONE', 'NONE', 0, "
- "1, "
- "0, 64, 10) ";
- ASSERT_TRUE(dbms->Exec(query_insert_app));
-
- query_insert_app =
- "INSERT OR IGNORE INTO `application`(`id`, `keep_context`, "
- "`steal_focus`, "
- " `default_hmi`, `priority_value`, `is_revoked`, `is_default`, "
- "`is_predata`, `memory_kb`, "
- " `heart_beat_timeout_ms`) VALUES( '123', 1, 0, 'FULL', "
- "'COMMUNICATION', 1, 1, 0, 64, 10) ";
- ASSERT_TRUE(dbms->Exec(query_insert_app));
- EXPECT_FALSE(reps->IsApplicationRepresented("7777"));
- EXPECT_FALSE(reps->IsApplicationRepresented("9999"));
- // Act
- EXPECT_TRUE(reps->CopyApplication("default", "7777"));
- EXPECT_TRUE(reps->CopyApplication("123", "9999"));
- // Checks
- EXPECT_TRUE(reps->IsApplicationRepresented("7777"));
- EXPECT_TRUE(reps->IsApplicationRepresented("9999"));
- EXPECT_FALSE(reps->IsApplicationRevoked("7777"));
- EXPECT_TRUE(reps->IsApplicationRevoked("9999"));
- EXPECT_TRUE(reps->IsDefaultPolicy("7777"));
- std::string priority1;
- std::string priority2;
- EXPECT_TRUE(reps->GetPriority("default", &priority1));
- EXPECT_TRUE(reps->GetPriority("7777", &priority2));
- EXPECT_EQ(priority1, priority2);
- EXPECT_TRUE(reps->GetPriority("123", &priority1));
- EXPECT_TRUE(reps->GetPriority("9999", &priority2));
- EXPECT_EQ(priority1, priority2);
-}
-
-TEST_F(SQLPTRepresentationTest,
- IsDefaultPolicy_SetAppPreDataThenCheck_ExpectNotDefaultPolicySet) {
- // Arrange
- const char* query_insert_app =
- "INSERT OR IGNORE INTO `application`(`id`, `keep_context`, "
- "`steal_focus`, "
- " `default_hmi`, `priority_value`, `is_revoked`, `is_default`, "
- "`is_predata`, `memory_kb`, "
- " `heart_beat_timeout_ms`) VALUES( '12345', 0, 0, 'NONE', 'NONE', 0, "
- "0, "
- "1, 64, 10) ";
- ASSERT_TRUE(dbms->Exec(query_insert_app));
- // Check
- EXPECT_FALSE(reps->IsDefaultPolicy("12345"));
-}
-
-TEST_F(SQLPTRepresentationTest,
- IsDefaultPolicy_SetAppDefaultThenCheck_ExpectNotDefaultPolicySet) {
- // Arrange
- const char* query_insert_app =
- "INSERT OR IGNORE INTO `application`(`id`, `keep_context`, "
- "`steal_focus`, `default_hmi`, `priority_value`, `is_revoked`, "
- "`is_default`, `is_predata`, `memory_kb`, `heart_beat_timeout_ms`) "
- "VALUES( '1234567', 0, 0, 'NONE', 'NONE', 0, 1, 0, 64, 10) ";
-
- ASSERT_TRUE(dbms->Exec(query_insert_app));
- // Check
- EXPECT_TRUE(reps->IsDefaultPolicy("1234567"));
-}
-
-TEST_F(SQLPTRepresentationTest, Drop_DropExistedPT_ExpectZeroTables) {
- // Check
- const char* query_select =
- "SELECT COUNT(*) FROM `sqlite_master` WHERE `type` = 'table'";
- // In normally created PT there are more than 0 tables
- ASSERT_TRUE(dbms->Exec(query_select));
- ASSERT_GT(dbms->FetchOneInt(query_select), 0);
- // Destroy schema
- ASSERT_TRUE(reps->Drop());
- // Check PT structure destroyed and tables number is 0
- ASSERT_EQ(0, dbms->FetchOneInt(query_select));
- // Restore schema
- ASSERT_TRUE(reps->RefreshDB());
-}
-
-TEST_F(SQLPTRepresentationTest,
- SetDefaultPolicy_SetDefaultPolicyThenCheck_ExpectDefaultPolicySet) {
- // Arrange
- const std::string kDefaultId = "default";
- const std::string kAppId = "app_1234567";
- const std::string kRequestType = "HTTP";
- const std::string kHmiType = "MEDIA";
-
- const std::string query_insert_default_app =
- "INSERT INTO `application`(`id`, `keep_context`, "
- "`steal_focus`, "
- " `default_hmi`, `priority_value`, `is_revoked`, `is_default`, "
- "`is_predata`, `memory_kb`, "
- " `heart_beat_timeout_ms`) "
- "VALUES( '" +
- kDefaultId + "', 0, 0, 'NONE', 'NONE', 0, 0, 0, 64, 10) ";
-
- ASSERT_TRUE(dbms->Exec(query_insert_default_app.c_str()));
-
- const std::string query_insert_default_app_request_types =
- "INSERT INTO `request_type` (`application_id`, `request_type`) "
- "VALUES ('" +
- kDefaultId + "', '" + kRequestType + "')";
-
- ASSERT_TRUE(dbms->Exec(query_insert_default_app_request_types.c_str()));
-
- const std::string query_insert_default_app_hmi_types =
- "INSERT INTO `app_type` (`application_id`, `name`) "
- "VALUES ('" +
- kDefaultId + "', '" + kHmiType + "')";
-
- ASSERT_TRUE(dbms->Exec(query_insert_default_app_hmi_types.c_str()));
-
- const std::string query_insert_new_app =
- "INSERT INTO `application`(`id`, `keep_context`, "
- "`steal_focus`, `default_hmi`, `priority_value`, `is_revoked`, "
- "`is_default`, `is_predata`, `memory_kb`, `heart_beat_timeout_ms`) "
- "VALUES('" +
- kAppId + "', 0, 0, 'NONE', 'NONE', 0, 0, 1, 64, 10)";
-
- ASSERT_TRUE(dbms->Exec(query_insert_new_app.c_str()));
-
- EXPECT_FALSE(reps->IsDefaultPolicy(kAppId));
- // Act
- ASSERT_TRUE(reps->SetDefaultPolicy(kAppId));
- // Check
- EXPECT_TRUE(reps->IsDefaultPolicy(kAppId));
-
- policy_table::RequestTypes request_types;
- GatherRequestType(kAppId, &request_types);
- ASSERT_TRUE(1 == request_types.size());
- EXPECT_EQ(policy_table::RT_HTTP, *request_types.begin());
-
- policy_table::AppHMITypes hmi_types;
- GatherAppType(kAppId, &hmi_types);
- ASSERT_TRUE(1 == hmi_types.size());
- EXPECT_EQ(policy_table::AHT_MEDIA, *hmi_types.begin());
-}
-
-TEST_F(SQLPTRepresentationTest,
- SetPreloaded_SetPreloaded_ExpectPTSetToPreloaded) {
- // Arrange
- const char* query_insert = "UPDATE `module_config` SET `preloaded_pt` = 0";
- ASSERT_TRUE(dbms->Exec(query_insert));
- // Check
- ASSERT_FALSE(reps->IsPTPreloaded());
- // Act
- reps->SetPreloaded(true);
- // Check
- ASSERT_TRUE(reps->IsPTPreloaded());
- // Act
- reps->SetPreloaded(false);
- // Check
- ASSERT_FALSE(reps->IsPTPreloaded());
-}
-
-TEST_F(SQLPTRepresentationTest,
- SetIsDefault_SetIsDefault_ExpectDefaultFlagSet) {
- // Arrange
- const char* query_insert_app =
- "INSERT OR IGNORE INTO `application`(`id`, `keep_context`, "
- "`steal_focus`, `default_hmi`, `priority_value`, `is_revoked`, "
- "`is_default`, `is_predata`, `memory_kb`, `heart_beat_timeout_ms`) "
- "VALUES( '1234567', 0, 0, 'NONE', 'NONE', 0, 0, 1, 64, 10) ";
- ASSERT_TRUE(dbms->Exec(query_insert_app));
- const char* query_select =
- "SELECT `is_default` FROM `application`WHERE`id`= '1234567' ";
- EXPECT_EQ(0, dbms->FetchOneInt(query_select));
- // Act
- EXPECT_TRUE(reps->SetIsDefault("1234567", true));
- // Check
- EXPECT_EQ(1, dbms->FetchOneInt(query_select));
- // Act
- EXPECT_TRUE(reps->SetIsDefault("1234567", false));
- // Check
- EXPECT_EQ(0, dbms->FetchOneInt(query_select));
-}
-
-TEST(SQLPTRepresentationTest3, RemoveDB_RemoveDB_ExpectFileDeleted) {
- // Arrange
- policy_handler_test::MockPolicySettings policy_settings_;
- SQLPTRepresentation* reps = new SQLPTRepresentation;
- EXPECT_EQ(::policy::SUCCESS, reps->Init(&policy_settings_));
- EXPECT_EQ(::policy::EXISTS, reps->Init(&policy_settings_));
- std::string path = (reps->db())->get_path();
- // Act
- reps->RemoveDB();
- // Check
- EXPECT_FALSE(file_system::FileExists(path));
- delete reps;
-}
-
-// TODO {AKozoriz} : Snapshot must have module meta section, but test
-// generates snapshot without it.
-TEST_F(SQLPTRepresentationTest,
- DISABLED_GenerateSnapshot_SetPolicyTable_SnapshotIsPresent) {
- // Arrange
- Json::Value table(Json::objectValue);
- PolicyTableUpdatePrepare(table);
-
- policy_table::Table update(&table);
- update.SetPolicyTableType(rpc::policy_table_interface_base::PT_UPDATE);
-
- // Assert
- // ASSERT_TRUE(IsValid(update));
- ASSERT_TRUE(reps->Save(update));
-
- // Act
- utils::SharedPtr<policy_table::Table> snapshot = reps->GenerateSnapshot();
- snapshot->SetPolicyTableType(rpc::policy_table_interface_base::PT_SNAPSHOT);
- // Remove fields which must be absent in snapshot
- table["policy_table"]["consumer_friendly_messages"].removeMember("messages");
- table["policy_table"]["app_policies"]["1234"].removeMember("default_hmi");
- table["policy_table"]["app_policies"]["1234"].removeMember("keep_context");
- table["policy_table"]["app_policies"]["1234"].removeMember("steal_focus");
- table["policy_table"]["app_policies"]["default"].removeMember("default_hmi");
- table["policy_table"]["app_policies"]["default"].removeMember("keep_context");
- table["policy_table"]["app_policies"]["default"].removeMember("steal_focus");
- table["policy_table"]["app_policies"]["pre_DataConsent"].removeMember(
- "default_hmi");
- table["policy_table"]["app_policies"]["pre_DataConsent"].removeMember(
- "keep_context");
- table["policy_table"]["app_policies"]["pre_DataConsent"].removeMember(
- "steal_focus");
- table["policy_table"]["app_policies"]["device"].removeMember("default_hmi");
- table["policy_table"]["app_policies"]["device"].removeMember("keep_context");
- table["policy_table"]["app_policies"]["device"].removeMember("steal_focus");
- table["policy_table"]["app_policies"]["device"].removeMember("groups");
- table["policy_table"]["device_data"] = Json::Value(Json::objectValue);
- table["policy_table"]["module_meta"] = Json::Value(Json::objectValue);
- policy_table::Table expected(&table);
- Json::StyledWriter writer;
- // Checks
- EXPECT_EQ(writer.write(expected.ToJsonValue()),
- writer.write(snapshot->ToJsonValue()));
- EXPECT_EQ(expected.ToJsonValue().toStyledString(),
- snapshot->ToJsonValue().toStyledString());
-}
-
-TEST_F(SQLPTRepresentationTest, Save_SetPolicyTableThenSave_ExpectSavedToPT) {
- // Arrange
- Json::Value table(Json::objectValue);
- PolicyTableUpdatePrepare(table);
-
- policy_table::Table update(&table);
- update.SetPolicyTableType(rpc::policy_table_interface_base::PT_UPDATE);
- // Checks PT before Save
- policy_table::FunctionalGroupings func_groups;
- ASSERT_TRUE(reps->GetFunctionalGroupings(func_groups));
- // Check functional groupings section
- EXPECT_EQ(0u, func_groups.size());
-
- policy_table::ApplicationPoliciesSection policies;
- GatherApplicationPoliciesSection(&policies);
- // Check ApplicationPoliciesSection
- EXPECT_EQ(0u, policies.apps.size());
- EXPECT_EQ(policy_table::Priority::P_EMERGENCY, policies.device.priority);
-
- policy_table::ModuleConfig config;
- GatherModuleConfig(&config);
- // Check Module config section
- EXPECT_TRUE(*config.preloaded_pt);
- EXPECT_EQ(0, config.exchange_after_x_ignition_cycles);
- EXPECT_EQ(0, config.exchange_after_x_kilometers);
- EXPECT_EQ(0, config.exchange_after_x_days);
- EXPECT_EQ(0, config.timeout_after_x_seconds);
- EXPECT_EQ("", static_cast<std::string>(*config.vehicle_make));
- EXPECT_EQ("", static_cast<std::string>(*config.vehicle_model));
- EXPECT_EQ("", static_cast<std::string>(*config.vehicle_year));
- EXPECT_EQ("", static_cast<std::string>(*config.preloaded_date));
- EXPECT_EQ("", static_cast<std::string>(*config.certificate));
- EXPECT_EQ(0u, config.seconds_between_retries.size());
- EXPECT_EQ(0u, config.endpoints.size());
- EXPECT_EQ(0u, config.notifications_per_minute_by_priority.size());
-
- policy_table::ConsumerFriendlyMessages messages;
- GatherConsumerFriendlyMessages(&messages);
- EXPECT_EQ("0", static_cast<std::string>(messages.version));
-
- policy_table::DeviceData devices;
- GatherDeviceData(&devices);
- EXPECT_EQ(0u, devices.size());
-
- policy_table::UsageAndErrorCounts counts;
- GatherUsageAndErrorCounts(&counts);
- EXPECT_TRUE(0u == counts.app_level->size());
-
- // ASSERT_TRUE(IsValid(update));
- // Act
- ASSERT_TRUE(reps->Save(update));
-
- // Check Functional Groupings
- ASSERT_TRUE(reps->GetFunctionalGroupings(func_groups));
- // Checks
- EXPECT_EQ(1u, func_groups.size());
- policy_table::FunctionalGroupings::iterator func_groups_iter =
- func_groups.find("default");
- ASSERT_TRUE(func_groups.end() != func_groups_iter);
- policy_table::Rpcs& rpcs = func_groups_iter->second;
- EXPECT_EQ("", static_cast<std::string>(*rpcs.user_consent_prompt));
- policy_table::Rpc& rpc = rpcs.rpcs;
- EXPECT_EQ(1u, rpc.size());
- policy_table::Rpc::const_iterator rpc_iter = rpc.find("Update");
- EXPECT_TRUE(rpc.end() != rpc_iter);
- const policy_table::HmiLevels& hmi_levels = rpc_iter->second.hmi_levels;
- EXPECT_EQ(1u, hmi_levels.size());
- EXPECT_TRUE(hmi_levels.end() != std::find(hmi_levels.begin(),
- hmi_levels.end(),
- policy_table::HmiLevel::HL_FULL));
-
- const ::policy_table::Parameters& parameters = *(rpc_iter->second.parameters);
- EXPECT_EQ(1u, parameters.size());
- EXPECT_TRUE(parameters.end() != std::find(parameters.begin(),
- parameters.end(),
- policy_table::Parameter::P_SPEED));
- // Check Application Policies Section
- GatherApplicationPoliciesSection(&policies);
- const uint32_t apps_size = 3u;
-
- rpc::String<1ul, 255ul> str("default");
- policy_table::Strings groups;
- groups.push_back(str);
- CheckAppPoliciesSection(policies,
- apps_size,
- policy_table::Priority::P_EMERGENCY,
- "1234",
- 150u,
- 200u,
- groups);
- CheckAppPoliciesSection(policies,
- apps_size,
- policy_table::Priority::P_EMERGENCY,
- "default",
- 50u,
- 100u,
- groups);
- CheckAppPoliciesSection(policies,
- apps_size,
- policy_table::Priority::P_EMERGENCY,
- "pre_DataConsent",
- 40u,
- 90u,
- groups);
- CheckAppPoliciesSection(policies,
- apps_size,
- policy_table::Priority::P_EMERGENCY,
- "device",
- 0u,
- 0u,
- groups);
-
- CheckAppGroups("1234", groups);
- CheckAppGroups("default", groups);
- CheckAppGroups("pre_DataConsent", groups);
-
- GatherModuleConfig(&config);
- // Check Module Config section
- ASSERT_FALSE(*config.preloaded_pt);
- ASSERT_EQ("encrypted_certificate_content",
- static_cast<std::string>(*config.certificate));
- ASSERT_EQ("", static_cast<std::string>(*config.preloaded_date));
- ASSERT_EQ("", static_cast<std::string>(*config.vehicle_year));
- ASSERT_EQ("", static_cast<std::string>(*config.vehicle_model));
- ASSERT_EQ("", static_cast<std::string>(*config.vehicle_make));
- ASSERT_EQ(10, config.exchange_after_x_ignition_cycles);
- ASSERT_EQ(100, config.exchange_after_x_kilometers);
- ASSERT_EQ(5, config.exchange_after_x_days);
- ASSERT_EQ(500, config.timeout_after_x_seconds);
- ASSERT_EQ(3u, config.seconds_between_retries.size());
- ASSERT_EQ(10, config.seconds_between_retries[0]);
- ASSERT_EQ(20, config.seconds_between_retries[1]);
- ASSERT_EQ(30, config.seconds_between_retries[2]);
- ASSERT_EQ(6u, config.notifications_per_minute_by_priority.size());
- ASSERT_EQ(1, config.notifications_per_minute_by_priority["emergency"]);
- ASSERT_EQ(2, config.notifications_per_minute_by_priority["navigation"]);
- ASSERT_EQ(3, config.notifications_per_minute_by_priority["VOICECOMM"]);
- ASSERT_EQ(4, config.notifications_per_minute_by_priority["communication"]);
- ASSERT_EQ(5, config.notifications_per_minute_by_priority["normal"]);
- ASSERT_EQ(6, config.notifications_per_minute_by_priority["none"]);
- EXPECT_EQ(1u, config.endpoints.size());
- policy_table::ServiceEndpoints& service_endpoints = config.endpoints;
- EXPECT_EQ("0x00", service_endpoints.begin()->first);
- policy_table::URLList& url_list = service_endpoints.begin()->second;
- EXPECT_EQ("default", url_list.begin()->first);
- policy_table::URL& url = url_list.begin()->second;
- EXPECT_EQ("http://ford.com/cloud/default", static_cast<std::string>(url[0]));
-
- GatherConsumerFriendlyMessages(&messages);
- EXPECT_EQ("some_msg_version", static_cast<std::string>(messages.version));
- EXPECT_TRUE(0u != messages.messages->size());
- EXPECT_TRUE(0u != (*messages.messages)["MSG_CODE"].languages.size());
-
- GatherUsageAndErrorCounts(&counts);
- EXPECT_FALSE(0u == counts.app_level->size());
- EXPECT_EQ(5u, (*counts.app_level)["some_app_id"].count_of_tls_errors);
-
- GatherDeviceData(&devices);
- EXPECT_EQ(3u, devices.size());
-}
-
-} // namespace policy
-} // namespace components
-} // namespace test