summaryrefslogtreecommitdiff
path: root/src/components/application_manager/test/commands/command_request_impl_test.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/application_manager/test/commands/command_request_impl_test.cc')
-rw-r--r--src/components/application_manager/test/commands/command_request_impl_test.cc217
1 files changed, 137 insertions, 80 deletions
diff --git a/src/components/application_manager/test/commands/command_request_impl_test.cc b/src/components/application_manager/test/commands/command_request_impl_test.cc
index 973438cb55..4493c54d3c 100644
--- a/src/components/application_manager/test/commands/command_request_impl_test.cc
+++ b/src/components/application_manager/test/commands/command_request_impl_test.cc
@@ -54,6 +54,7 @@
namespace test {
namespace components {
namespace commands_test {
+namespace command_request_impl {
namespace am = application_manager;
namespace strings = am::strings;
@@ -120,14 +121,11 @@ class CommandRequestImplTest
CommandParametersPermissions& removed_parameters_permissions() {
return removed_parameters_permissions_;
}
- };
- CommandRequestImplTest() {
- mock_message_helper_ = am::MockMessageHelper::message_helper_mock();
- }
- ~CommandRequestImplTest() {
- mock_message_helper_ = NULL;
- }
+ void SetHashUpdateMode(HashUpdateMode mode) {
+ hash_update_mode_ = mode;
+ }
+ };
MockAppPtr InitAppSetDataAccessor(SharedPtr<ApplicationSet>& app_set) {
app_set = (!app_set ? ::utils::MakeShared<ApplicationSet>() : app_set);
@@ -140,7 +138,6 @@ class CommandRequestImplTest
}
sync_primitives::Lock app_set_lock_;
- am::MockMessageHelper* mock_message_helper_;
};
typedef CommandRequestImplTest::UnwrappedCommandRequestImpl UCommandRequestImpl;
@@ -172,7 +169,7 @@ TEST_F(CommandRequestImplTest, OnTimeOut_StateAwaitingHMIResponse_SUCCESS) {
CommandPtr command = CreateCommand<UCommandRequestImpl>(msg);
MessageSharedPtr dummy_msg(CreateMessage());
- EXPECT_CALL(*mock_message_helper_, CreateNegativeResponse(_, _, _, _))
+ EXPECT_CALL(mock_message_helper_, CreateNegativeResponse(_, _, _, _))
.WillOnce(Return(dummy_msg));
EXPECT_CALL(
app_mngr_,
@@ -268,12 +265,11 @@ TEST_F(CommandRequestImplTest, SendHMIRequest_NoUseEvent_SUCCESS) {
EXPECT_CALL(app_mngr_, GetNextHMICorrelationID())
.WillOnce(Return(kCorrelationId));
- MockHmiInterfaces hmi_interfaces;
- EXPECT_CALL(app_mngr_, hmi_interfaces()).WillOnce(ReturnRef(hmi_interfaces));
- EXPECT_CALL(hmi_interfaces, GetInterfaceFromFunction(_))
- .WillOnce(Return(am::HmiInterfaces::HMI_INTERFACE_BasicCommunication));
- EXPECT_CALL(hmi_interfaces, GetInterfaceState(_))
- .WillOnce(Return(am::HmiInterfaces::STATE_AVAILABLE));
+ EXPECT_CALL(mock_hmi_interfaces_, GetInterfaceFromFunction(_))
+ .WillRepeatedly(
+ Return(am::HmiInterfaces::HMI_INTERFACE_BasicCommunication));
+ EXPECT_CALL(mock_hmi_interfaces_, GetInterfaceState(_))
+ .WillRepeatedly(Return(am::HmiInterfaces::STATE_AVAILABLE));
// Return `true` prevents call of `SendResponse` method;
EXPECT_CALL(app_mngr_, ManageHMICommand(_)).WillOnce(Return(true));
@@ -286,12 +282,11 @@ TEST_F(CommandRequestImplTest, SendHMIRequest_UseEvent_SUCCESS) {
EXPECT_CALL(app_mngr_, GetNextHMICorrelationID())
.WillOnce(Return(kCorrelationId));
- MockHmiInterfaces hmi_interfaces;
- EXPECT_CALL(app_mngr_, hmi_interfaces()).WillOnce(ReturnRef(hmi_interfaces));
- EXPECT_CALL(hmi_interfaces, GetInterfaceFromFunction(_))
- .WillOnce(Return(am::HmiInterfaces::HMI_INTERFACE_BasicCommunication));
- EXPECT_CALL(hmi_interfaces, GetInterfaceState(_))
- .WillOnce(Return(am::HmiInterfaces::STATE_AVAILABLE));
+ EXPECT_CALL(mock_hmi_interfaces_, GetInterfaceFromFunction(_))
+ .WillRepeatedly(
+ Return(am::HmiInterfaces::HMI_INTERFACE_BasicCommunication));
+ EXPECT_CALL(mock_hmi_interfaces_, GetInterfaceState(_))
+ .WillRepeatedly(Return(am::HmiInterfaces::STATE_AVAILABLE));
// Return `true` prevents call of `SendResponse` method;
EXPECT_CALL(app_mngr_, ManageHMICommand(_)).WillOnce(Return(true));
@@ -303,10 +298,10 @@ TEST_F(CommandRequestImplTest, SendHMIRequest_UseEvent_SUCCESS) {
TEST_F(CommandRequestImplTest, RemoveDisallowedParameters_SUCCESS) {
am::VehicleData vehicle_data;
- vehicle_data.insert(
- am::VehicleData::value_type(kMissedParam, am::VehicleDataType::MYKEY));
+ vehicle_data.insert(am::VehicleData::value_type(
+ kMissedParam, mobile_apis::VehicleDataType::VEHICLEDATA_MYKEY));
- EXPECT_CALL(*mock_message_helper_, vehicle_data())
+ EXPECT_CALL(mock_message_helper_, vehicle_data())
.WillOnce(ReturnRef(vehicle_data));
MessageSharedPtr msg = CreateMessage();
@@ -319,10 +314,10 @@ TEST_F(CommandRequestImplTest, RemoveDisallowedParameters_SUCCESS) {
CommandPtr command = CreateCommand<UCommandRequestImpl>(msg);
CommandParametersPermissions& permission = command->parameters_permissions();
- permission.disallowed_params.push_back(kDisallowedParam1);
- permission.disallowed_params.push_back(kDisallowedParam2);
- permission.allowed_params.push_back(kAllowedParam);
- permission.undefined_params.push_back(kUndefinedParam);
+ permission.disallowed_params.insert(kDisallowedParam1);
+ permission.disallowed_params.insert(kDisallowedParam2);
+ permission.allowed_params.insert(kAllowedParam);
+ permission.undefined_params.insert(kUndefinedParam);
command->RemoveDisallowedParameters();
@@ -347,33 +342,24 @@ TEST_F(CommandRequestImplTest,
}
TEST_F(CommandRequestImplTest,
- CheckAllowedParameters_NoAppWithSameConnectionKey_SUCCESS) {
- MessageSharedPtr msg = CreateMessage();
- (*msg)[strings::params][strings::connection_key] = kConnectionKey;
-
- CommandPtr command = CreateCommand<UCommandRequestImpl>(msg);
-
- SharedPtr<ApplicationSet> app_set;
- MockAppPtr app(InitAppSetDataAccessor(app_set));
- EXPECT_CALL(*app, app_id()).WillOnce(Return(6u));
- EXPECT_TRUE(command->CheckPermissions());
+ CheckAllowedParameters_NoAppWithSameConnectionKey_UNSUCCESS) {
+ MessageSharedPtr message = CreateMessage();
+ CommandPtr command = CreateCommand<UCommandRequestImpl>(message);
+ EXPECT_CALL(app_mngr_, application(_)).WillOnce(Return(MockAppPtr()));
+ EXPECT_FALSE(command->CheckPermissions());
}
TEST_F(CommandRequestImplTest, CheckAllowedParameters_NoMsgParamsMap_SUCCESS) {
- MessageSharedPtr msg = CreateMessage();
- (*msg)[strings::params][strings::connection_key] = kConnectionKey;
- (*msg)[strings::msg_params] = 0u;
+ MockAppPtr mock_app = CreateMockApp();
+ ON_CALL(app_mngr_, application(_)).WillByDefault(Return(mock_app));
- CommandPtr command = CreateCommand<UCommandRequestImpl>(msg);
+ MessageSharedPtr message = CreateMessage();
+ (*message)[strings::msg_params] =
+ smart_objects::SmartObject(smart_objects::SmartType_Map);
- SharedPtr<ApplicationSet> app_set;
- MockAppPtr app(InitAppSetDataAccessor(app_set));
- EXPECT_CALL(*app, app_id()).WillOnce(Return(kConnectionKey));
- EXPECT_CALL(*app, policy_app_id()).WillOnce(Return(kPolicyAppId));
- EXPECT_CALL(*app, hmi_level())
- .WillOnce(Return(mobile_apis::HMILevel::HMI_NONE));
+ CommandPtr command = CreateCommand<UCommandRequestImpl>(message);
- EXPECT_CALL(app_mngr_, CheckPolicyPermissions(_, _, _, _, _))
+ EXPECT_CALL(app_mngr_, CheckPolicyPermissions(_, _, _, _))
.WillOnce(Return(kMobResultSuccess));
EXPECT_TRUE(command->CheckPermissions());
@@ -381,32 +367,31 @@ TEST_F(CommandRequestImplTest, CheckAllowedParameters_NoMsgParamsMap_SUCCESS) {
TEST_F(CommandRequestImplTest,
CheckAllowedParameters_WrongPolicyPermissions_UNSUCCESS) {
- MessageSharedPtr msg = CreateMessage();
- (*msg)[strings::params][strings::connection_key] = kConnectionKey;
- (*msg)[strings::msg_params] = 0u;
+ MockAppPtr mock_app = CreateMockApp();
+ ON_CALL(app_mngr_, application(_)).WillByDefault(Return(mock_app));
- CommandPtr command = CreateCommand<UCommandRequestImpl>(msg);
+ MessageSharedPtr message = CreateMessage();
+ (*message)[strings::msg_params] =
+ smart_objects::SmartObject(smart_objects::SmartType_Map);
+
+ CommandPtr command = CreateCommand<UCommandRequestImpl>(message);
- SharedPtr<ApplicationSet> app_set;
- MockAppPtr app(InitAppSetDataAccessor(app_set));
- EXPECT_CALL(*app, app_id()).Times(2).WillRepeatedly(Return(kConnectionKey));
- EXPECT_CALL(*app, policy_app_id()).WillOnce(Return(kPolicyAppId));
- EXPECT_CALL(*app, hmi_level())
- .WillOnce(Return(mobile_apis::HMILevel::HMI_NONE));
+ EXPECT_CALL(*mock_app, app_id())
+ .Times(1)
+ .WillRepeatedly(Return(kConnectionKey));
- EXPECT_CALL(app_mngr_, CheckPolicyPermissions(_, _, _, _, _))
+ EXPECT_CALL(app_mngr_, CheckPolicyPermissions(_, _, _, _))
.WillOnce(Return(mobile_apis::Result::INVALID_ENUM));
- MessageSharedPtr dummy_msg;
- EXPECT_CALL(*mock_message_helper_,
- CreateBlockedByPoliciesResponse(_, _, _, _))
- .WillOnce(Return(dummy_msg));
+ EXPECT_CALL(mock_message_helper_, CreateBlockedByPoliciesResponse(_, _, _, _))
+ .WillOnce(Return(smart_objects::SmartObjectSPtr()));
+
EXPECT_CALL(app_mngr_, SendMessageToMobile(_, _));
EXPECT_FALSE(command->CheckPermissions());
}
ACTION_P(GetArg3, output) {
- *output = arg3;
+ *output = arg2;
}
TEST_F(CommandRequestImplTest, CheckAllowedParameters_MsgParamsMap_SUCCESS) {
@@ -416,15 +401,11 @@ TEST_F(CommandRequestImplTest, CheckAllowedParameters_MsgParamsMap_SUCCESS) {
CommandPtr command = CreateCommand<UCommandRequestImpl>(msg);
- SharedPtr<ApplicationSet> app_set;
- MockAppPtr app(InitAppSetDataAccessor(app_set));
- EXPECT_CALL(*app, app_id()).WillOnce(Return(kConnectionKey));
- EXPECT_CALL(*app, policy_app_id()).WillOnce(Return(kPolicyAppId));
- EXPECT_CALL(*app, hmi_level())
- .WillOnce(Return(mobile_apis::HMILevel::HMI_NONE));
+ MockAppPtr app = CreateMockApp();
+ ON_CALL(app_mngr_, application(_)).WillByDefault(Return(app));
RPCParams params;
- EXPECT_CALL(app_mngr_, CheckPolicyPermissions(_, _, _, _, _))
+ EXPECT_CALL(app_mngr_, CheckPolicyPermissions(_, _, _, _))
.WillOnce(DoAll(GetArg3(&params), Return(kMobResultSuccess)));
EXPECT_TRUE(command->CheckPermissions());
@@ -434,17 +415,17 @@ TEST_F(CommandRequestImplTest, CheckAllowedParameters_MsgParamsMap_SUCCESS) {
TEST_F(CommandRequestImplTest, AddDisallowedParameters_SUCCESS) {
am::VehicleData vehicle_data;
- vehicle_data.insert(am::VehicleData::value_type(kDisallowedParam1,
- am::VehicleDataType::MYKEY));
+ vehicle_data.insert(am::VehicleData::value_type(
+ kDisallowedParam1, mobile_apis::VehicleDataType::VEHICLEDATA_MYKEY));
- EXPECT_CALL(*mock_message_helper_, vehicle_data())
+ EXPECT_CALL(mock_message_helper_, vehicle_data())
.WillOnce(ReturnRef(vehicle_data));
MessageSharedPtr msg;
CommandPtr command = CreateCommand<UCommandRequestImpl>(msg);
- command->removed_parameters_permissions().disallowed_params.push_back(
+ command->removed_parameters_permissions().disallowed_params.insert(
kDisallowedParam1);
command->AddDisallowedParameters(*msg);
@@ -486,10 +467,10 @@ TEST_F(CommandRequestImplTest, SendResponse_SUCCESS) {
TEST_F(CommandRequestImplTest,
SendResponse_AddDisallowedParametersToInfo_SUCCESS) {
am::VehicleData vehicle_data;
- vehicle_data.insert(am::VehicleData::value_type(kDisallowedParam1,
- am::VehicleDataType::MYKEY));
+ vehicle_data.insert(am::VehicleData::value_type(
+ kDisallowedParam1, mobile_apis::VehicleDataType::VEHICLEDATA_MYKEY));
- EXPECT_CALL(*mock_message_helper_, vehicle_data())
+ EXPECT_CALL(mock_message_helper_, vehicle_data())
.WillOnce(ReturnRef(vehicle_data));
MessageSharedPtr msg = CreateMessage();
@@ -498,7 +479,7 @@ TEST_F(CommandRequestImplTest,
CommandPtr command = CreateCommand<UCommandRequestImpl>(msg);
- command->removed_parameters_permissions().disallowed_params.push_back(
+ command->removed_parameters_permissions().disallowed_params.insert(
kDisallowedParam1);
MessageSharedPtr result;
@@ -514,6 +495,82 @@ TEST_F(CommandRequestImplTest,
(*result)[strings::msg_params][strings::info].asString().empty());
}
+TEST_F(CommandRequestImplTest, HashUpdateAllowed_UpdateExpected) {
+ MessageSharedPtr msg;
+ CommandPtr command = CreateCommand<UCommandRequestImpl>(msg);
+ command->SetHashUpdateMode(CommandRequestImpl::HashUpdateMode::kDoHashUpdate);
+
+ MessageSharedPtr result;
+ EXPECT_CALL(app_mngr_, ManageMobileCommand(_, _))
+ .WillOnce(DoAll(SaveArg<0>(&result), Return(true)));
+
+ const bool is_succedeed = true;
+ command->SendResponse(is_succedeed, kMobResultSuccess, NULL, NULL);
+
+ MockAppPtr mock_app = CreateMockApp();
+ EXPECT_CALL(app_mngr_, application(_)).WillOnce(Return(mock_app));
+ EXPECT_CALL(*mock_app, UpdateHash());
+
+ command.reset();
+}
+
+TEST_F(CommandRequestImplTest, HashUpdateDisallowed_HashUpdateNotExpected) {
+ MessageSharedPtr msg;
+ CommandPtr command = CreateCommand<UCommandRequestImpl>(msg);
+ command->SetHashUpdateMode(
+ CommandRequestImpl::HashUpdateMode::kSkipHashUpdate);
+
+ MessageSharedPtr result;
+ EXPECT_CALL(app_mngr_, ManageMobileCommand(_, _))
+ .WillOnce(DoAll(SaveArg<0>(&result), Return(true)));
+
+ const bool is_succedeed = true;
+ command->SendResponse(is_succedeed, kMobResultSuccess, NULL, NULL);
+
+ MockAppPtr mock_app = CreateMockApp();
+ EXPECT_CALL(*mock_app, UpdateHash()).Times(0);
+
+ command.reset();
+}
+
+TEST_F(CommandRequestImplTest, RequestFailed_HashUpdateNotExpected) {
+ MessageSharedPtr msg;
+ CommandPtr command = CreateCommand<UCommandRequestImpl>(msg);
+ command->SetHashUpdateMode(CommandRequestImpl::HashUpdateMode::kDoHashUpdate);
+
+ MessageSharedPtr result;
+ EXPECT_CALL(app_mngr_, ManageMobileCommand(_, _))
+ .WillOnce(DoAll(SaveArg<0>(&result), Return(true)));
+
+ const bool is_succedeed = false;
+ command->SendResponse(is_succedeed, kMobResultSuccess, NULL, NULL);
+
+ MockAppPtr mock_app = CreateMockApp();
+ EXPECT_CALL(*mock_app, UpdateHash()).Times(0);
+
+ command.reset();
+}
+
+TEST_F(CommandRequestImplTest, AppNotFound_HashUpdateNotExpected) {
+ MessageSharedPtr msg;
+ CommandPtr command = CreateCommand<UCommandRequestImpl>(msg);
+ command->SetHashUpdateMode(CommandRequestImpl::HashUpdateMode::kDoHashUpdate);
+
+ MessageSharedPtr result;
+ EXPECT_CALL(app_mngr_, ManageMobileCommand(_, _))
+ .WillOnce(DoAll(SaveArg<0>(&result), Return(true)));
+
+ const bool is_succedeed = true;
+ command->SendResponse(is_succedeed, kMobResultSuccess, NULL, NULL);
+
+ MockAppPtr mock_app = CreateMockApp();
+ EXPECT_CALL(app_mngr_, application(_)).WillOnce(Return(MockAppPtr()));
+ EXPECT_CALL(*mock_app, UpdateHash()).Times(0);
+
+ command.reset();
+}
+
+} // namespace command_request_impl
} // namespace commands_test
} // namespace components
} // namespace test