summaryrefslogtreecommitdiff
path: root/src/components/policy/test/policy/src/test_sql_pt_representation.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/policy/test/policy/src/test_sql_pt_representation.cc')
-rw-r--r--src/components/policy/test/policy/src/test_sql_pt_representation.cc334
1 files changed, 195 insertions, 139 deletions
diff --git a/src/components/policy/test/policy/src/test_sql_pt_representation.cc b/src/components/policy/test/policy/src/test_sql_pt_representation.cc
index 869b111f5..caa72bea4 100644
--- a/src/components/policy/test/policy/src/test_sql_pt_representation.cc
+++ b/src/components/policy/test/policy/src/test_sql_pt_representation.cc
@@ -30,7 +30,11 @@
*/
#include <gtest/gtest.h>
-#include <sqlite3.h>
+#ifdef __QNX__
+# include <qdb/qdb.h>
+#else // __QNX__
+# include <sqlite3.h>
+#endif // __QNX__
#include <vector>
#include "json/value.h"
#include "policy/sql_pt_representation.h"
@@ -46,100 +50,147 @@ namespace test {
namespace components {
namespace policy {
+#ifdef __QNX__
+class DBMS {
+ public:
+ bool Open() {
+ conn_ = qdb_connect(kDatabaseName_.c_str(), 0);
+ return conn_ != NULL;
+ }
+ void Close() {
+ qdb_disconnect(conn_);
+ }
+ bool Exec(const char* query) {
+ return -1 != qdb_statement(conn_, query);
+ }
+ private:
+ static qdb_hdl_t* conn_;
+ static const std::string kDatabaseName_;
+};
+qdb_hdl_t* DBMS::conn_ = 0;
+const std::string DBMS::kDatabaseName_ = "policy";
+#else // __QNX__
+class DBMS {
+ public:
+ bool Open() {
+ return SQLITE_OK == sqlite3_open(kFileName_.c_str(), &conn_);
+ }
+ void Close() {
+ sqlite3_close(conn_);
+ remove(kFileName_.c_str());
+ }
+ bool Exec(const char* query) {
+ return SQLITE_OK == sqlite3_exec(conn_, query, NULL, NULL, NULL);
+ }
+ private:
+ static sqlite3* conn_;
+ static const std::string kFileName_;
+};
+sqlite3* DBMS::conn_ = 0;
+const std::string DBMS::kFileName_ = "policy.sqlite";
+#endif // __QNX__
+
class SQLPTRepresentationTest : public ::testing::Test {
- protected:
- static sqlite3* conn;
- static SQLPTRepresentation* reps;
- static const std::string kFileName;
-
- static void SetUpTestCase() {
- sqlite3_open(kFileName.c_str(), &conn);
- reps = new SQLPTRepresentation;
- EXPECT_TRUE(reps->Init());
- sqlite3_open(kFileName.c_str(), &conn);
- }
-
- static void TearDownTestCase() {
- EXPECT_TRUE(reps->Clear());
- EXPECT_TRUE(reps->Close());
- delete reps;
- sqlite3_close(conn);
- remove(kFileName.c_str());
- }
+ protected:
+ static DBMS* dbms;
+ static SQLPTRepresentation* reps;
+
+ static void SetUpTestCase() {
+ reps = new SQLPTRepresentation;
+ dbms = new DBMS;
+ EXPECT_EQ(::policy::SUCCESS, reps->Init());
+ EXPECT_TRUE(dbms->Open());
+ }
+
+ static void TearDownTestCase() {
+ EXPECT_TRUE(reps->Clear());
+ EXPECT_TRUE(reps->Close());
+ delete reps;
+ dbms->Close();
+ }
};
-sqlite3* SQLPTRepresentationTest::conn = 0;
+DBMS* SQLPTRepresentationTest::dbms = 0;
SQLPTRepresentation* SQLPTRepresentationTest::reps = 0;
-const std::string SQLPTRepresentationTest::kFileName = "policy.sqlite";
+
+::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);
+ }
+}
TEST_F(SQLPTRepresentationTest, CheckPermissionsAllowed) {
- const char* query =
- "INSERT OR REPLACE INTO `application` (`id`) VALUES ('12345'); "
- "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_EQ(SQLITE_OK, sqlite3_exec(conn, query, NULL, NULL, NULL));
-
- CheckPermissionResult ret(false);
+ const char* query = "INSERT OR REPLACE INTO `application` (`id`, `memory_kb`,"
+ " `watchdog_timer_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_TRUE(dbms->Exec(query));
+
+ CheckPermissionResult ret;
ret = reps->CheckPermissions("12345", "FULL", "Update");
- ASSERT_TRUE(ret.hmi_level_permitted);
+ EXPECT_TRUE(ret.hmi_level_permitted == ::policy::kRpcAllowed);
ASSERT_EQ(2, 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) {
- const char* query =
- "INSERT OR REPLACE INTO `application` (`id`) VALUES ('12345'); "
- "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_EQ(SQLITE_OK, sqlite3_exec(conn, query, NULL, NULL, NULL));
-
- CheckPermissionResult ret(false);
+ const char* query = "INSERT OR REPLACE INTO `application` (`id`, `memory_kb`,"
+ " `watchdog_timer_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_TRUE(dbms->Exec(query));
+
+ CheckPermissionResult ret;
ret = reps->CheckPermissions("12345", "LIMITED", "Update");
- EXPECT_TRUE(ret.hmi_level_permitted);
+ EXPECT_TRUE(ret.hmi_level_permitted == ::policy::kRpcAllowed);
EXPECT_TRUE(!ret.list_of_allowed_params);
}
TEST_F(SQLPTRepresentationTest, CheckPermissionsDisallowed) {
const char* query = "DELETE FROM `app_group`";
- ASSERT_EQ(SQLITE_OK, sqlite3_exec(conn, query, NULL, NULL, NULL));
+ ASSERT_TRUE(dbms->Exec(query));
CheckPermissionResult ret;
ret = reps->CheckPermissions("12345", "FULL", "Update");
- EXPECT_FALSE(ret.hmi_level_permitted);
+ EXPECT_EQ(::policy::kRpcDisallowed, ret.hmi_level_permitted);
EXPECT_TRUE(!ret.list_of_allowed_params);
}
TEST_F(SQLPTRepresentationTest, IsPTPReloaded) {
const char* query = "UPDATE `module_config` SET `preloaded_pt` = 1";
- ASSERT_EQ(SQLITE_OK, sqlite3_exec(conn, query, NULL, NULL, NULL));
+ ASSERT_TRUE(dbms->Exec(query));
EXPECT_TRUE(reps->IsPTPreloaded());
}
TEST_F(SQLPTRepresentationTest, GetUpdateUrls) {
const char* query_delete = "DELETE FROM `endpoint`; ";
- ASSERT_EQ(SQLITE_OK, sqlite3_exec(conn, query_delete, NULL, NULL, NULL));
+ ASSERT_TRUE(dbms->Exec(query_delete));
EndpointUrls ret = reps->GetUpdateUrls(7);
EXPECT_TRUE(ret.empty());
const char* query_insert =
- "INSERT INTO `endpoint` (`application_id`, `url`, `service`) "
- " VALUES ('12345', 'http://ford.com/cloud/1', '0x07');"
- "INSERT INTO `endpoint` (`application_id`, `url`, `service`) "
- " VALUES ('12345', 'http://ford.com/cloud/2', '0x07');";
+ "INSERT INTO `endpoint` (`application_id`, `url`, `service`) "
+ " VALUES ('12345', 'http://ford.com/cloud/1', '0x07');"
+ "INSERT INTO `endpoint` (`application_id`, `url`, `service`) "
+ " VALUES ('12345', 'http://ford.com/cloud/2', '0x07');";
- ASSERT_EQ(SQLITE_OK, sqlite3_exec(conn, query_insert, NULL, NULL, NULL));
+ ASSERT_TRUE(dbms->Exec(query_insert));
ret = reps->GetUpdateUrls(7);
ASSERT_EQ(2, ret.size());
EXPECT_EQ("http://ford.com/cloud/1", ret[0].url);
@@ -151,79 +202,75 @@ TEST_F(SQLPTRepresentationTest, GetUpdateUrls) {
TEST_F(SQLPTRepresentationTest, IgnitionCyclesBeforeExchangeAndIncrement) {
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_EQ(SQLITE_OK, sqlite3_exec(conn, query_zeros, NULL, NULL, NULL));
+ " `ignition_cycles_since_last_exchange` = 0; "
+ " UPDATE `module_config` SET `exchange_after_x_ignition_cycles` = 0";
+ ASSERT_TRUE(dbms->Exec(query_zeros));
EXPECT_EQ(0, reps->IgnitionCyclesBeforeExchange());
reps->IncrementIgnitionCycles();
EXPECT_EQ(0, reps->IgnitionCyclesBeforeExchange());
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_EQ(SQLITE_OK, sqlite3_exec(conn, query_less_limit, NULL, NULL, NULL));
+ " `ignition_cycles_since_last_exchange` = 5; "
+ " UPDATE `module_config` SET `exchange_after_x_ignition_cycles` = 10";
+ ASSERT_TRUE(dbms->Exec(query_less_limit));
EXPECT_EQ(5, reps->IgnitionCyclesBeforeExchange());
reps->IncrementIgnitionCycles();
EXPECT_EQ(4, reps->IgnitionCyclesBeforeExchange());
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_EQ(SQLITE_OK, sqlite3_exec(conn, query_limit, NULL, NULL, NULL));
+ " `ignition_cycles_since_last_exchange` = 9; "
+ " UPDATE `module_config` SET `exchange_after_x_ignition_cycles` = 10";
+ ASSERT_TRUE(dbms->Exec(query_limit));
EXPECT_EQ(1, reps->IgnitionCyclesBeforeExchange());
reps->IncrementIgnitionCycles();
EXPECT_EQ(0, reps->IgnitionCyclesBeforeExchange());
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_EQ(SQLITE_OK, sqlite3_exec(conn, query_more_limit, NULL, NULL, NULL));
+ " `ignition_cycles_since_last_exchange` = 12; "
+ " UPDATE `module_config` SET `exchange_after_x_ignition_cycles` = 10";
+ ASSERT_TRUE(dbms->Exec(query_more_limit));
EXPECT_EQ(0, reps->IgnitionCyclesBeforeExchange());
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_EQ(SQLITE_OK,
- sqlite3_exec(conn, query_negative_limit, NULL, NULL, NULL));
+ " `ignition_cycles_since_last_exchange` = 3; "
+ " UPDATE `module_config` SET `exchange_after_x_ignition_cycles` = -1";
+ ASSERT_TRUE(dbms->Exec(query_negative_limit));
EXPECT_EQ(0, reps->IgnitionCyclesBeforeExchange());
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_EQ(SQLITE_OK,
- sqlite3_exec(conn, query_negative_current, NULL, NULL, NULL));
+ " `ignition_cycles_since_last_exchange` = -1; "
+ " UPDATE `module_config` SET `exchange_after_x_ignition_cycles` = 2";
+ ASSERT_TRUE(dbms->Exec(query_negative_current));
EXPECT_EQ(0, reps->IgnitionCyclesBeforeExchange());
}
TEST_F(SQLPTRepresentationTest, KilometersBeforeExchange) {
const char* query_zeros = "UPDATE `module_meta` SET "
- " `pt_exchanged_at_odometer_x` = 0; "
- " UPDATE `module_config` SET `exchange_after_x_kilometers` = 0";
- ASSERT_EQ(SQLITE_OK, sqlite3_exec(conn, query_zeros, NULL, NULL, NULL));
+ " `pt_exchanged_at_odometer_x` = 0; "
+ " UPDATE `module_config` SET `exchange_after_x_kilometers` = 0";
+ ASSERT_TRUE(dbms->Exec(query_zeros));
EXPECT_EQ(0, reps->KilometersBeforeExchange(0));
EXPECT_EQ(0, reps->KilometersBeforeExchange(-10));
EXPECT_EQ(0, reps->KilometersBeforeExchange(10));
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_EQ(SQLITE_OK,
- sqlite3_exec(conn, query_negative_limit, NULL, NULL, NULL));
+ " `pt_exchanged_at_odometer_x` = 10; "
+ " UPDATE `module_config` SET `exchange_after_x_kilometers` = -10";
+ ASSERT_TRUE(dbms->Exec(query_negative_limit));
EXPECT_EQ(0, reps->KilometersBeforeExchange(0));
EXPECT_EQ(0, reps->KilometersBeforeExchange(10));
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_EQ(SQLITE_OK,
- sqlite3_exec(conn, query_negative_last, NULL, NULL, NULL));
+ " `pt_exchanged_at_odometer_x` = -10; "
+ " UPDATE `module_config` SET `exchange_after_x_kilometers` = 20";
+ ASSERT_TRUE(dbms->Exec(query_negative_last));
EXPECT_EQ(0, reps->KilometersBeforeExchange(0));
EXPECT_EQ(0, reps->KilometersBeforeExchange(10));
const char* query_limit = "UPDATE `module_meta` SET "
- " `pt_exchanged_at_odometer_x` = 10; "
- " UPDATE `module_config` SET `exchange_after_x_kilometers` = 100";
- ASSERT_EQ(SQLITE_OK, sqlite3_exec(conn, query_limit, NULL, NULL, NULL));
+ " `pt_exchanged_at_odometer_x` = 10; "
+ " UPDATE `module_config` SET `exchange_after_x_kilometers` = 100";
+ ASSERT_TRUE(dbms->Exec(query_limit));
EXPECT_EQ(0, reps->KilometersBeforeExchange(120));
EXPECT_EQ(60, reps->KilometersBeforeExchange(50));
EXPECT_EQ(0, reps->KilometersBeforeExchange(5));
@@ -231,33 +278,31 @@ TEST_F(SQLPTRepresentationTest, KilometersBeforeExchange) {
TEST_F(SQLPTRepresentationTest, DaysBeforeExchange) {
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_EQ(SQLITE_OK, sqlite3_exec(conn, query_zeros, NULL, NULL, NULL));
+ " `pt_exchanged_x_days_after_epoch` = 0; "
+ " UPDATE `module_config` SET `exchange_after_x_days` = 0";
+ ASSERT_TRUE(dbms->Exec(query_zeros));
EXPECT_EQ(0, reps->DaysBeforeExchange(0));
EXPECT_EQ(0, reps->DaysBeforeExchange(-10));
EXPECT_EQ(0, reps->DaysBeforeExchange(10));
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_EQ(SQLITE_OK,
- sqlite3_exec(conn, query_negative_limit, NULL, NULL, NULL));
+ " `pt_exchanged_x_days_after_epoch` = 10; "
+ " UPDATE `module_config` SET `exchange_after_x_days` = -10";
+ ASSERT_TRUE(dbms->Exec(query_negative_limit));
EXPECT_EQ(0, reps->DaysBeforeExchange(0));
EXPECT_EQ(0, reps->DaysBeforeExchange(10));
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_EQ(SQLITE_OK,
- sqlite3_exec(conn, query_negative_last, NULL, NULL, NULL));
+ " `pt_exchanged_x_days_after_epoch` = -10; "
+ " UPDATE `module_config` SET `exchange_after_x_days` = 20";
+ ASSERT_TRUE(dbms->Exec(query_negative_last));
EXPECT_EQ(0, reps->DaysBeforeExchange(0));
EXPECT_EQ(0, reps->DaysBeforeExchange(10));
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_EQ(SQLITE_OK, sqlite3_exec(conn, query_limit, NULL, NULL, NULL));
+ " `pt_exchanged_x_days_after_epoch` = 10; "
+ " UPDATE `module_config` SET `exchange_after_x_days` = 100";
+ ASSERT_TRUE(dbms->Exec(query_limit));
EXPECT_EQ(0, reps->DaysBeforeExchange(120));
EXPECT_EQ(60, reps->DaysBeforeExchange(50));
EXPECT_EQ(0, reps->DaysBeforeExchange(5));
@@ -267,16 +312,16 @@ TEST_F(SQLPTRepresentationTest, SecondsBetweenRetries) {
std::vector<int> seconds;
const char* query_delete = "DELETE FROM `seconds_between_retry`; ";
- ASSERT_EQ(SQLITE_OK, sqlite3_exec(conn, query_delete, NULL, NULL, NULL));
+ ASSERT_TRUE(dbms->Exec(query_delete));
ASSERT_TRUE(reps->SecondsBetweenRetries(&seconds));
EXPECT_EQ(0, seconds.size());
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_EQ(SQLITE_OK, sqlite3_exec(conn, query_insert, NULL, NULL, NULL));
+ "INSERT INTO `seconds_between_retry` (`index`, `value`) "
+ " VALUES (0, 10); "
+ "INSERT INTO `seconds_between_retry` (`index`, `value`) "
+ " VALUES (1, 20); ";
+ ASSERT_TRUE(dbms->Exec(query_insert));
ASSERT_TRUE(reps->SecondsBetweenRetries(&seconds));
ASSERT_EQ(2, seconds.size());
EXPECT_EQ(10, seconds[0]);
@@ -285,11 +330,12 @@ TEST_F(SQLPTRepresentationTest, SecondsBetweenRetries) {
TEST_F(SQLPTRepresentationTest, TimeoutResponse) {
const char* query =
- "UPDATE `module_config` SET `timeout_after_x_seconds` = 60";
- ASSERT_EQ(SQLITE_OK, sqlite3_exec(conn, query, NULL, NULL, NULL));
+ "UPDATE `module_config` SET `timeout_after_x_seconds` = 60";
+ ASSERT_TRUE(dbms->Exec(query));
EXPECT_EQ(60, reps->TimeoutResponse());
}
+#ifndef EXTENDED_POLICY
TEST_F(SQLPTRepresentationTest, SaveGenerateSnapshot) {
Json::Value expect(Json::objectValue);
expect["policy_table"] = Json::Value(Json::objectValue);
@@ -301,6 +347,7 @@ TEST_F(SQLPTRepresentationTest, SaveGenerateSnapshot) {
policy_table["device_data"] = 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);
Json::Value& module_config = policy_table["module_config"];
module_config["preloaded_pt"] = Json::Value(true);
@@ -313,31 +360,30 @@ TEST_F(SQLPTRepresentationTest, SaveGenerateSnapshot) {
module_config["seconds_between_retries"][1] = Json::Value(20);
module_config["seconds_between_retries"][2] = Json::Value(30);
module_config["endpoints"] = Json::Value(Json::objectValue);
- module_config["endpoints"]["default"] = Json::Value(Json::objectValue);
- module_config["endpoints"]["default"]["default"] = Json::Value(Json::arrayValue);
- module_config["endpoints"]["default"]["default"][0] = Json::Value(
- "http://ford.com/cloud/default");
+ module_config["endpoints"]["0x00"] = Json::Value(Json::objectValue);
+ module_config["endpoints"]["0x00"]["default"] = Json::Value(Json::arrayValue);
+ module_config["endpoints"]["0x00"]["default"][0] = Json::Value(
+ "http://ford.com/cloud/default");
module_config["notifications_per_minute_by_priority"] = Json::Value(
- Json::objectValue);
+ Json::objectValue);
module_config["notifications_per_minute_by_priority"]["emergency"] =
- Json::Value(1);
+ Json::Value(1);
module_config["notifications_per_minute_by_priority"]["navigation"] =
- Json::Value(2);
+ Json::Value(2);
module_config["notifications_per_minute_by_priority"]["voiceCommunication"] =
- Json::Value(3);
+ Json::Value(3);
module_config["notifications_per_minute_by_priority"]["communication"] =
- Json::Value(4);
+ Json::Value(4);
module_config["notifications_per_minute_by_priority"]["normal"] = Json::Value(
- 5);
+ 5);
module_config["notifications_per_minute_by_priority"]["none"] = Json::Value(
- 6);
+ 6);
module_config["vehicle_make"] = Json::Value("MakeT");
module_config["vehicle_model"] = Json::Value("ModelT");
- module_config["vehicle_year"] = Json::Value(14);
+ module_config["vehicle_year"] = Json::Value(2014);
Json::Value& usage_and_error_counts = policy_table["usage_and_error_counts"];
usage_and_error_counts["app_level"] = Json::Value(Json::objectValue);
- // this map is not mandatory but is_valid returns false if map is empty
usage_and_error_counts["app_level"]["12345"] = Json::Value(Json::objectValue);
Json::Value& device_data = policy_table["device_data"];
@@ -345,16 +391,18 @@ TEST_F(SQLPTRepresentationTest, SaveGenerateSnapshot) {
Json::Value& functional_groupings = policy_table["functional_groupings"];
functional_groupings["default"] = Json::Value(Json::objectValue);
-
- Json::Value& consumer_friendly_messages = policy_table["consumer_friendly_messages"];
+ 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("1.2");
- Json::Value& default_policies = policy_table["app_policies"]["default"];
- default_policies["default_hmi"] = "BACKGROUND";
- default_policies["keep_context"] = false;
- default_policies["priority"] = "EMERGENCY";
- default_policies["steal_focus"] = false;
-
Json::Value& app12345counters = usage_and_error_counts["app_level"]["12345"];
app12345counters["app_registration_language_gui"] = "";
app12345counters["app_registration_language_vui"] = "";
@@ -372,15 +420,23 @@ TEST_F(SQLPTRepresentationTest, SaveGenerateSnapshot) {
app12345counters["minutes_in_hmi_limited"] = 0;
app12345counters["minutes_in_hmi_none"] = 0;
+ Json::Value& app_policies = policy_table["app_policies"];
+ app_policies["default"] = Json::Value(Json::objectValue);
+ app_policies["default"]["memory_kb"] = Json::Value(50);
+ app_policies["default"]["watchdog_timer_ms"] = Json::Value(100);
+ app_policies["default"]["groups"] = Json::Value(Json::arrayValue);
+ app_policies["default"]["groups"][0] = Json::Value("default");
+
policy_table::Table table(&expect);
- //TODO(KKolodiy): temporarily validation is turned off
- // EXPECT_TRUE(table.is_valid());
+ ASSERT_TRUE(IsValid(table));
ASSERT_TRUE(reps->Save(table));
utils::SharedPtr<policy_table::Table> snapshot = reps->GenerateSnapshot();
- // EXPECT_TRUE(snapshot->is_valid());
- EXPECT_EQ(expect.toStyledString(), snapshot->ToJsonValue().toStyledString());
+ EXPECT_TRUE(IsValid(*snapshot));
+ EXPECT_EQ(table.ToJsonValue().toStyledString(),
+ snapshot->ToJsonValue().toStyledString());
}
+#endif // EXTENDED_POLICY
} // namespace policy
} // namespace components