From 9e86dafadf845bcfcbf8fabf2c928bc357d01431 Mon Sep 17 00:00:00 2001 From: "Oleksandr Lohvinenko (GitHub)" Date: Fri, 25 May 2018 19:29:45 +0300 Subject: Migrated unit tests. --- .../mobile/on_vehicle_data_notification_test.cc | 148 +++++++++++++++++++++ 1 file changed, 148 insertions(+) create mode 100644 src/components/application_manager/rpc_plugins/vehicle_info_plugin/test/commands/mobile/on_vehicle_data_notification_test.cc (limited to 'src/components/application_manager/rpc_plugins/vehicle_info_plugin/test/commands/mobile/on_vehicle_data_notification_test.cc') diff --git a/src/components/application_manager/rpc_plugins/vehicle_info_plugin/test/commands/mobile/on_vehicle_data_notification_test.cc b/src/components/application_manager/rpc_plugins/vehicle_info_plugin/test/commands/mobile/on_vehicle_data_notification_test.cc new file mode 100644 index 0000000000..af071ae716 --- /dev/null +++ b/src/components/application_manager/rpc_plugins/vehicle_info_plugin/test/commands/mobile/on_vehicle_data_notification_test.cc @@ -0,0 +1,148 @@ +/* + * Copyright (c) 2018, 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 +#include +#include + +#include "gtest/gtest.h" +#include "mobile/on_vehicle_data_notification.h" +#include "utils/shared_ptr.h" +#include "utils/custom_string.h" +#include "smart_objects/smart_object.h" +#include "application_manager/smart_object_keys.h" +#include "application_manager/commands/commands_test.h" +#include "application_manager/commands/command_impl.h" +#include "application_manager/message_helper.h" +#include "application_manager/mock_message_helper.h" +#include "utils/helpers.h" + +namespace test { +namespace components { +namespace commands_test { +namespace mobile_commands_test { +namespace on_vehicle_data_notification { + +namespace am = ::application_manager; + +using ::testing::_; +using ::testing::Return; +using ::testing::ReturnRef; + +using am::commands::MessageSharedPtr; +using vehicle_info_plugin::commands::OnVehicleDataNotification; + +typedef ::utils::SharedPtr NotificationPtr; + +namespace { +const uint32_t kAppId = 1u; +} // namespace + +class OnVehicleDataNotificationTest + : public CommandsTest { + public: + OnVehicleDataNotificationTest() + : command_msg_(CreateMessage(smart_objects::SmartType_Map)) + , command_(CreateCommand(command_msg_)) {} + + MessageSharedPtr command_msg_; + NotificationPtr command_; +}; + +MATCHER_P2(CheckMessageData, key, value, "") { + const bool kIsMobileProtocolTypeCorrect = + (*arg)[am::strings::params][am::strings::protocol_type].asInt() == + am::commands::CommandImpl::mobile_protocol_type_; + + const bool kIsProtocolVersionCorrect = + (*arg)[am::strings::params][am::strings::protocol_version].asInt() == + am::commands::CommandImpl::protocol_version_; + + const bool kIsNotificationCorrect = + (*arg)[am::strings::params][am::strings::message_type].asInt() == + am::MessageType::kNotification; + + const bool kIsConnectionKeyCorrect = + (*arg)[am::strings::params][am::strings::connection_key].asUInt() == + kAppId; + + const bool kAreMsgParamsCorrect = + (*arg)[am::strings::msg_params][key].asInt() == value; + + using namespace helpers; + return Compare(true, + kIsMobileProtocolTypeCorrect, + kIsProtocolVersionCorrect, + kIsNotificationCorrect, + kIsConnectionKeyCorrect, + kAreMsgParamsCorrect); +} + +TEST_F(OnVehicleDataNotificationTest, + Run_NotEmptyListOfAppsSubscribedForEvent_SUCCESS) { + am::VehicleData test_vehicle_data; + test_vehicle_data.insert(am::VehicleData::value_type( + am::strings::fuel_level, + mobile_apis::VehicleDataType::VEHICLEDATA_FUELLEVEL)); + + EXPECT_CALL(mock_message_helper_, vehicle_data()) + .WillOnce(ReturnRef(test_vehicle_data)); + + const int kFuelLevel = 100; + (*command_msg_)[am::strings::msg_params][am::strings::fuel_level] = + kFuelLevel; + + MockAppPtr mock_app(CreateMockApp()); + std::vector applications; + applications.push_back(mock_app); + + EXPECT_CALL( + app_mngr_, + IviInfoUpdated(mobile_apis::VehicleDataType::VEHICLEDATA_FUELLEVEL, + kFuelLevel)).WillOnce(Return(applications)); + + EXPECT_CALL(*mock_app, app_id()).WillRepeatedly(Return(kAppId)); + ::utils::custom_string::CustomString dummy_name("test_app"); + ON_CALL(*mock_app, name()).WillByDefault(ReturnRef(dummy_name)); + + EXPECT_CALL(mock_rpc_service_, + SendMessageToMobile( + CheckMessageData(am::strings::fuel_level, kFuelLevel), _)); + + command_->Run(); +} + +} // namespace on_vehicle_data_notification +} // namespace mobile_commands_test +} // namespace commands_test +} // namespace components +} // namespace test -- cgit v1.2.1 From 4752f7b32a961d8dc60019d0256424a6b93bc598 Mon Sep 17 00:00:00 2001 From: Alexander Date: Sun, 17 Jun 2018 21:13:28 +0300 Subject: Move IsSubsscrbedTo to plugin --- .../mobile/on_vehicle_data_notification_test.cc | 34 ---------------------- 1 file changed, 34 deletions(-) (limited to 'src/components/application_manager/rpc_plugins/vehicle_info_plugin/test/commands/mobile/on_vehicle_data_notification_test.cc') diff --git a/src/components/application_manager/rpc_plugins/vehicle_info_plugin/test/commands/mobile/on_vehicle_data_notification_test.cc b/src/components/application_manager/rpc_plugins/vehicle_info_plugin/test/commands/mobile/on_vehicle_data_notification_test.cc index af071ae716..3cc5af575e 100644 --- a/src/components/application_manager/rpc_plugins/vehicle_info_plugin/test/commands/mobile/on_vehicle_data_notification_test.cc +++ b/src/components/application_manager/rpc_plugins/vehicle_info_plugin/test/commands/mobile/on_vehicle_data_notification_test.cc @@ -107,40 +107,6 @@ MATCHER_P2(CheckMessageData, key, value, "") { kAreMsgParamsCorrect); } -TEST_F(OnVehicleDataNotificationTest, - Run_NotEmptyListOfAppsSubscribedForEvent_SUCCESS) { - am::VehicleData test_vehicle_data; - test_vehicle_data.insert(am::VehicleData::value_type( - am::strings::fuel_level, - mobile_apis::VehicleDataType::VEHICLEDATA_FUELLEVEL)); - - EXPECT_CALL(mock_message_helper_, vehicle_data()) - .WillOnce(ReturnRef(test_vehicle_data)); - - const int kFuelLevel = 100; - (*command_msg_)[am::strings::msg_params][am::strings::fuel_level] = - kFuelLevel; - - MockAppPtr mock_app(CreateMockApp()); - std::vector applications; - applications.push_back(mock_app); - - EXPECT_CALL( - app_mngr_, - IviInfoUpdated(mobile_apis::VehicleDataType::VEHICLEDATA_FUELLEVEL, - kFuelLevel)).WillOnce(Return(applications)); - - EXPECT_CALL(*mock_app, app_id()).WillRepeatedly(Return(kAppId)); - ::utils::custom_string::CustomString dummy_name("test_app"); - ON_CALL(*mock_app, name()).WillByDefault(ReturnRef(dummy_name)); - - EXPECT_CALL(mock_rpc_service_, - SendMessageToMobile( - CheckMessageData(am::strings::fuel_level, kFuelLevel), _)); - - command_->Run(); -} - } // namespace on_vehicle_data_notification } // namespace mobile_commands_test } // namespace commands_test -- cgit v1.2.1 From 5019af50b9a2236dd75e630aae5b82e440be9620 Mon Sep 17 00:00:00 2001 From: Conlain Kelly Date: Wed, 18 Jul 2018 11:13:50 -0400 Subject: Replace utils::SharedPtr with std::shared_ptr, remove non-standard usage --- .../test/commands/mobile/on_vehicle_data_notification_test.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/components/application_manager/rpc_plugins/vehicle_info_plugin/test/commands/mobile/on_vehicle_data_notification_test.cc') diff --git a/src/components/application_manager/rpc_plugins/vehicle_info_plugin/test/commands/mobile/on_vehicle_data_notification_test.cc b/src/components/application_manager/rpc_plugins/vehicle_info_plugin/test/commands/mobile/on_vehicle_data_notification_test.cc index 3cc5af575e..1e8a289637 100644 --- a/src/components/application_manager/rpc_plugins/vehicle_info_plugin/test/commands/mobile/on_vehicle_data_notification_test.cc +++ b/src/components/application_manager/rpc_plugins/vehicle_info_plugin/test/commands/mobile/on_vehicle_data_notification_test.cc @@ -36,7 +36,7 @@ #include "gtest/gtest.h" #include "mobile/on_vehicle_data_notification.h" -#include "utils/shared_ptr.h" + #include "utils/custom_string.h" #include "smart_objects/smart_object.h" #include "application_manager/smart_object_keys.h" @@ -61,7 +61,7 @@ using ::testing::ReturnRef; using am::commands::MessageSharedPtr; using vehicle_info_plugin::commands::OnVehicleDataNotification; -typedef ::utils::SharedPtr NotificationPtr; +typedef std::shared_ptr NotificationPtr; namespace { const uint32_t kAppId = 1u; -- cgit v1.2.1