summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Gapchuk (GitHub) <41586842+IGapchuk@users.noreply.github.com>2020-10-02 21:09:04 +0300
committerGitHub <noreply@github.com>2020-10-02 14:09:04 -0400
commitfd291d7654bdee02f329a62080e1831206f24edc (patch)
treea1c992b710106d028addea5c9c0fc3622a38cb89
parent2f823394d9a7faa93a5bd5f4a1f266bd8f546b43 (diff)
downloadsdl_core-fd291d7654bdee02f329a62080e1831206f24edc.tar.gz
Fix GetInteriorVehicle request wrong processes result codes from HMI (#3519)
GetInteriorVehicle request RPC should process the next result codes as success: WRONG_LANGUAGE, RETRY, SAVED.
-rw-r--r--src/components/application_manager/rpc_plugins/rc_rpc_plugin/src/commands/mobile/get_interior_vehicle_data_request.cc5
-rw-r--r--src/components/application_manager/rpc_plugins/rc_rpc_plugin/test/commands/get_interior_vehicle_data_request_test.cc69
2 files changed, 68 insertions, 6 deletions
diff --git a/src/components/application_manager/rpc_plugins/rc_rpc_plugin/src/commands/mobile/get_interior_vehicle_data_request.cc b/src/components/application_manager/rpc_plugins/rc_rpc_plugin/src/commands/mobile/get_interior_vehicle_data_request.cc
index 2b801f7406..8d3a3d796e 100644
--- a/src/components/application_manager/rpc_plugins/rc_rpc_plugin/src/commands/mobile/get_interior_vehicle_data_request.cc
+++ b/src/components/application_manager/rpc_plugins/rc_rpc_plugin/src/commands/mobile/get_interior_vehicle_data_request.cc
@@ -245,7 +245,10 @@ void GetInteriorVehicleDataRequest::on_event(
helpers::Compare<mobile_apis::Result::eType, helpers::EQ, helpers::ONE>(
result_code,
mobile_apis::Result::SUCCESS,
- mobile_apis::Result::WARNINGS);
+ mobile_apis::Result::WARNINGS,
+ mobile_apis::Result::WRONG_LANGUAGE,
+ mobile_apis::Result::RETRY,
+ mobile_apis::Result::SAVED);
if (mobile_apis::Result::READ_ONLY == result_code) {
result = false;
diff --git a/src/components/application_manager/rpc_plugins/rc_rpc_plugin/test/commands/get_interior_vehicle_data_request_test.cc b/src/components/application_manager/rpc_plugins/rc_rpc_plugin/test/commands/get_interior_vehicle_data_request_test.cc
index 956a53994d..20f9c27912 100644
--- a/src/components/application_manager/rpc_plugins/rc_rpc_plugin/test/commands/get_interior_vehicle_data_request_test.cc
+++ b/src/components/application_manager/rpc_plugins/rc_rpc_plugin/test/commands/get_interior_vehicle_data_request_test.cc
@@ -31,11 +31,17 @@
*/
#include "rc_rpc_plugin/commands/mobile/get_interior_vehicle_data_request.h"
+
+#include "gtest/gtest.h"
+
+#include <stdint.h>
+#include <chrono>
+#include <thread>
+
#include "application_manager/commands/command_request_test.h"
#include "application_manager/event_engine/event_dispatcher.h"
#include "application_manager/message_helper.h"
#include "application_manager/mock_application.h"
-#include "gtest/gtest.h"
#include "rc_rpc_plugin/mock/mock_interior_data_cache.h"
#include "rc_rpc_plugin/mock/mock_interior_data_manager.h"
#include "rc_rpc_plugin/mock/mock_rc_capabilities_manager.h"
@@ -46,10 +52,6 @@
#include "rc_rpc_plugin/rc_module_constants.h"
#include "rc_rpc_plugin/rc_rpc_plugin.h"
-#include <stdint.h>
-#include <chrono>
-#include <thread>
-
using application_manager::ApplicationSet;
using ::application_manager::ApplicationSharedPtr;
using ::application_manager::Message;
@@ -824,4 +826,61 @@ TEST_F(GetInteriorVehicleDataRequestTest,
EXPECT_TRUE(climate_enable_available);
}
+TEST_F(GetInteriorVehicleDataRequestTest, ProcessingSuccessResultCodes) {
+ using rc_rpc_plugin::commands::GetInteriorVehicleDataRequest;
+ namespace hmi_response = application_manager::hmi_response;
+ namespace strings = application_manager::strings;
+
+ std::set<hmi_apis::Common_Result::eType> success_result_codes{
+ hmi_apis::Common_Result::SUCCESS,
+ hmi_apis::Common_Result::WARNINGS,
+ hmi_apis::Common_Result::WRONG_LANGUAGE,
+ hmi_apis::Common_Result::RETRY,
+ hmi_apis::Common_Result::SAVED};
+
+ ON_CALL(mock_interior_data_cache_, Contains(_)).WillByDefault(Return(false));
+ ON_CALL(mock_interior_data_manager_, CheckRequestsToHMIFrequency(_))
+ .WillByDefault(Return(true));
+
+ MessageSharedPtr hmi_response_message = CreateBasicMessage();
+ auto& hmi_response_params =
+ (*hmi_response_message)[application_manager::strings::msg_params];
+ hmi_response_params[strings::connection_key] = kAppId;
+ auto climate_control_data =
+ smart_objects::SmartObject(smart_objects::SmartType_Boolean);
+ climate_control_data = true;
+
+ auto& msg_params = (*hmi_response_message)[strings::msg_params];
+ msg_params[message_params::kModuleData][message_params::kClimateControlData]
+ [message_params::kClimateEnableAvailable] = climate_control_data;
+ msg_params[message_params::kModuleData][message_params::kModuleId] =
+ "00bd6d93-e093-4bf0-9784-281febe41bed";
+
+ MessageSharedPtr mobile_message = CreateBasicMessage();
+ auto message_to_mob = CreateBasicMessage();
+
+ for (const auto& result_code : success_result_codes) {
+ hmi_response_params[hmi_response::code] = result_code;
+
+ EXPECT_CALL(mock_rpc_service_, ManageHMICommand(_, _))
+ .WillOnce(Return(true));
+ EXPECT_CALL(mock_rpc_service_, ManageMobileCommand(_, _))
+ .WillOnce(DoAll(SaveArg<0>(&message_to_mob), Return(true)));
+
+ auto command =
+ CreateRCCommand<GetInteriorVehicleDataRequest>(mobile_message);
+ ASSERT_TRUE(command->Init());
+ command->Run();
+
+ application_manager::event_engine::Event event(
+ hmi_apis::FunctionID::RC_GetInteriorVehicleData);
+ event.set_smart_object(*hmi_response_message);
+ command->on_event(event);
+
+ const bool success =
+ (*message_to_mob)[strings::msg_params][strings::success].asBool();
+ EXPECT_TRUE(success);
+ }
+}
+
} // namespace rc_rpc_plugin_test