summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJackLivio <jack@livio.io>2018-12-05 10:28:07 -0500
committerJackLivio <jack@livio.io>2018-12-05 10:28:07 -0500
commit3a2b833dd56ccad4917d6d2d3f88dfe27feca6e9 (patch)
treec3631f43a1ecd3ad6a75adcbb156806972f5dd67
parent9d3b27f39bfd9ad15ca055ed825a26c3b1665578 (diff)
downloadsdl_core-3a2b833dd56ccad4917d6d2d3f88dfe27feca6e9.tar.gz
Update ConnectionStatusUpdated method + tests
-rw-r--r--src/components/application_manager/rpc_plugins/sdl_rpc_plugin/test/commands/hmi/sdl_activate_app_request_test.cc1
-rw-r--r--src/components/include/test/transport_manager/transport_adapter/mock_transport_adapter.h2
-rw-r--r--src/components/include/transport_manager/transport_adapter/transport_adapter.h2
-rw-r--r--src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_impl.h6
-rw-r--r--src/components/transport_manager/src/transport_adapter/transport_adapter_impl.cc16
-rw-r--r--src/components/transport_manager/test/include/transport_manager/transport_adapter/mock_transport_adapter_controller.h2
-rw-r--r--src/components/transport_manager/test/include/transport_manager/transport_adapter/mock_transport_adapter_impl.h6
-rw-r--r--src/components/transport_manager/test/transport_adapter_test.cc10
8 files changed, 22 insertions, 23 deletions
diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/test/commands/hmi/sdl_activate_app_request_test.cc b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/test/commands/hmi/sdl_activate_app_request_test.cc
index f040128097..8543a201bf 100644
--- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/test/commands/hmi/sdl_activate_app_request_test.cc
+++ b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/test/commands/hmi/sdl_activate_app_request_test.cc
@@ -44,6 +44,7 @@
#include "application_manager/event_engine/event.h"
#include "application_manager/mock_event_dispatcher.h"
#include "application_manager/mock_state_controller.h"
+#include "connection_handler/mock_connection_handler.h"
namespace test {
namespace components {
diff --git a/src/components/include/test/transport_manager/transport_adapter/mock_transport_adapter.h b/src/components/include/test/transport_manager/transport_adapter/mock_transport_adapter.h
index c993f245b9..3864c3f6f9 100644
--- a/src/components/include/test/transport_manager/transport_adapter/mock_transport_adapter.h
+++ b/src/components/include/test/transport_manager/transport_adapter/mock_transport_adapter.h
@@ -35,6 +35,7 @@
#include "gmock/gmock.h"
#include "transport_manager/transport_adapter/transport_adapter.h"
+#include "transport_manager/transport_adapter/device.h"
namespace test {
namespace components {
@@ -69,7 +70,6 @@ class MockTransportAdapter
MOCK_CONST_METHOD1(GetConnectionStatus,
::transport_manager::ConnectionStatus(
const ::transport_manager::DeviceUID& device_handle));
- MOCK_METHOD0(ConnectionStatusUpdated, void());
MOCK_METHOD2(RunAppOnDevice, void(const std::string&, const std::string&));
MOCK_CONST_METHOD0(IsClientOriginatedConnectSupported, bool());
MOCK_METHOD0(
diff --git a/src/components/include/transport_manager/transport_adapter/transport_adapter.h b/src/components/include/transport_manager/transport_adapter/transport_adapter.h
index f4ce19eb5f..2b3efd3624 100644
--- a/src/components/include/transport_manager/transport_adapter/transport_adapter.h
+++ b/src/components/include/transport_manager/transport_adapter/transport_adapter.h
@@ -206,8 +206,6 @@ class TransportAdapter {
virtual ConnectionStatus GetConnectionStatus(
const DeviceUID& device_handle) const = 0;
- virtual void ConnectionStatusUpdated() = 0;
-
/**
* @brief RunAppOnDevice allows to run specific application on the certain
*device.
diff --git a/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_impl.h b/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_impl.h
index 8d03bdb2c7..68d5ba3067 100644
--- a/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_impl.h
+++ b/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_impl.h
@@ -159,7 +159,11 @@ class TransportAdapterImpl : public TransportAdapter,
ConnectionStatus GetConnectionStatus(
const DeviceUID& device_handle) const OVERRIDE;
- void ConnectionStatusUpdated() OVERRIDE;
+ /**
+ * @brief Notifies the application manager that a cloud connection status has
+ * updated and should trigger an UpdateAppList RPC to the HMI
+ */
+ void ConnectionStatusUpdated(DeviceSptr device, ConnectionStatus status);
/**
* @brief Disconnect from specified session.
diff --git a/src/components/transport_manager/src/transport_adapter/transport_adapter_impl.cc b/src/components/transport_manager/src/transport_adapter/transport_adapter_impl.cc
index 8928ecb4d2..34d5a29abd 100644
--- a/src/components/transport_manager/src/transport_adapter/transport_adapter_impl.cc
+++ b/src/components/transport_manager/src/transport_adapter/transport_adapter_impl.cc
@@ -252,13 +252,11 @@ TransportAdapter::Error TransportAdapterImpl::ConnectDevice(
// Update retry count
if (device->retry_count() >=
get_settings().cloud_app_max_retry_attempts()) {
- device->set_connection_status(ConnectionStatus::PENDING);
device->reset_retry_count();
- ConnectionStatusUpdated();
+ ConnectionStatusUpdated(device, ConnectionStatus::PENDING);
return err;
} else if (device->connection_status() == ConnectionStatus::PENDING) {
- device->set_connection_status(ConnectionStatus::RETRY);
- ConnectionStatusUpdated();
+ ConnectionStatusUpdated(device, ConnectionStatus::RETRY);
}
device->next_retry();
@@ -273,8 +271,7 @@ TransportAdapter::Error TransportAdapterImpl::ConnectDevice(
retry_timer->Start(get_settings().cloud_app_retry_timeout(),
timer::kSingleShot);
} else if (OK == err) {
- device->set_connection_status(ConnectionStatus::CONNECTED);
- ConnectionStatusUpdated();
+ ConnectionStatusUpdated(device, ConnectionStatus::CONNECTED);
}
LOG4CXX_TRACE(logger_, "exit with error: " << err);
return err;
@@ -328,7 +325,9 @@ ConnectionStatus TransportAdapterImpl::GetConnectionStatus(
: device->connection_status();
}
-void TransportAdapterImpl::ConnectionStatusUpdated() {
+void TransportAdapterImpl::ConnectionStatusUpdated(DeviceSptr device,
+ ConnectionStatus status) {
+ device->set_connection_status(status);
for (TransportAdapterListenerList::iterator it = listeners_.begin();
it != listeners_.end();
++it) {
@@ -366,8 +365,7 @@ TransportAdapter::Error TransportAdapterImpl::DisconnectDevice(
Error error = OK;
DeviceSptr device = FindDevice(device_id);
- device->set_connection_status(ConnectionStatus::CLOSING);
- ConnectionStatusUpdated();
+ ConnectionStatusUpdated(device, ConnectionStatus::CLOSING);
std::vector<ConnectionInfo> to_disconnect;
connections_lock_.AcquireForReading();
diff --git a/src/components/transport_manager/test/include/transport_manager/transport_adapter/mock_transport_adapter_controller.h b/src/components/transport_manager/test/include/transport_manager/transport_adapter/mock_transport_adapter_controller.h
index 642c193d63..bd8c5d2ed3 100644
--- a/src/components/transport_manager/test/include/transport_manager/transport_adapter/mock_transport_adapter_controller.h
+++ b/src/components/transport_manager/test/include/transport_manager/transport_adapter/mock_transport_adapter_controller.h
@@ -44,7 +44,7 @@ using namespace ::transport_manager::transport_adapter;
class MockTransportAdapterController : public TransportAdapterController {
public:
- MOCK_METHOD1(AddDevice, DeviceSptr(DeviceSptr device));
+ MOCK_METHOD1(AddDevice, DeviceSptr(std::string device));
MOCK_METHOD1(SearchDeviceDone, void(DeviceVector device));
MOCK_METHOD1(ApplicationListUpdated,
ApplicationListUpdated(const DeviceUID& device_handle));
diff --git a/src/components/transport_manager/test/include/transport_manager/transport_adapter/mock_transport_adapter_impl.h b/src/components/transport_manager/test/include/transport_manager/transport_adapter/mock_transport_adapter_impl.h
index e18d1bc53b..3a1422cee1 100644
--- a/src/components/transport_manager/test/include/transport_manager/transport_adapter/mock_transport_adapter_impl.h
+++ b/src/components/transport_manager/test/include/transport_manager/transport_adapter/mock_transport_adapter_impl.h
@@ -36,6 +36,8 @@
#include "gmock/gmock.h"
#include "transport_manager/transport_manager_settings.h"
#include "transport_manager/transport_adapter/transport_adapter_impl.h"
+#include "transport_manager/transport_adapter/device.h"
+#include "transport_manager/common.h"
using ::transport_manager::transport_adapter::TransportAdapterImpl;
using ::transport_manager::transport_adapter::DeviceScanner;
@@ -75,7 +77,9 @@ class MockTransportAdapterImpl : public TransportAdapterImpl {
MOCK_CONST_METHOD1(FindDevice,
transport_manager::transport_adapter::DeviceSptr(
const DeviceUID& device_id));
- MOCK_METHOD0(ConnectionStatusUpdated, void());
+ MOCK_METHOD2(ConnectionStatusUpdated,
+ void(transport_manager::transport_adapter::DeviceSptr device,
+ ::transport_manager::ConnectionStatus status));
MOCK_CONST_METHOD0(GetDeviceType,
::transport_manager::transport_adapter::DeviceType());
MOCK_METHOD0(RetryConnection, void());
diff --git a/src/components/transport_manager/test/transport_adapter_test.cc b/src/components/transport_manager/test/transport_adapter_test.cc
index b917c60187..72cf0ba76e 100644
--- a/src/components/transport_manager/test/transport_adapter_test.cc
+++ b/src/components/transport_manager/test/transport_adapter_test.cc
@@ -359,7 +359,6 @@ TEST_F(TransportAdapterTest, ConnectDevice_DeviceAdded) {
EXPECT_CALL(*serverMock, CreateConnection(uniq_id, app_handle))
.WillOnce(Return(TransportAdapter::OK));
EXPECT_CALL(transport_adapter, FindDevice(uniq_id)).WillOnce(Return(mockdev));
- EXPECT_CALL(transport_adapter, ConnectionStatusUpdated());
TransportAdapter::Error res = transport_adapter.ConnectDevice(uniq_id);
EXPECT_EQ(TransportAdapter::OK, res);
EXPECT_EQ(ConnectionStatus::CONNECTED, mockdev->connection_status());
@@ -372,7 +371,6 @@ TEST_F(TransportAdapterTest, ConnectDevice_DeviceAdded_ConnectFailedRetry) {
MockTransportAdapterImpl transport_adapter(
NULL, server_mock, NULL, last_state_, transport_manager_settings);
SetDefaultExpectations(transport_adapter);
- // transport_adapter.SetDeviceType(DeviceType::CLOUD_WEBSOCKET);
EXPECT_CALL(*server_mock, Init()).WillOnce(Return(TransportAdapter::OK));
EXPECT_CALL(transport_adapter, Restore()).WillOnce(Return(true));
@@ -396,7 +394,6 @@ TEST_F(TransportAdapterTest, ConnectDevice_DeviceAdded_ConnectFailedRetry) {
EXPECT_CALL(transport_adapter, FindDevice(uniq_id)).WillOnce(Return(mockdev));
EXPECT_CALL(transport_adapter, GetDeviceType())
.WillOnce(Return(DeviceType::CLOUD_WEBSOCKET));
- EXPECT_CALL(transport_adapter, ConnectionStatusUpdated());
EXPECT_CALL(transport_manager_settings, cloud_app_max_retry_attempts())
.WillOnce(Return(0));
TransportAdapter::Error res = transport_adapter.ConnectDevice(uniq_id);
@@ -432,7 +429,6 @@ TEST_F(TransportAdapterTest, ConnectDevice_DeviceAddedTwice) {
EXPECT_CALL(*serverMock, CreateConnection(uniq_id, app_handle))
.WillOnce(Return(TransportAdapter::OK));
EXPECT_CALL(transport_adapter, FindDevice(uniq_id)).WillOnce(Return(mockdev));
- EXPECT_CALL(transport_adapter, ConnectionStatusUpdated());
TransportAdapter::Error res = transport_adapter.ConnectDevice(uniq_id);
EXPECT_EQ(TransportAdapter::OK, res);
EXPECT_EQ(ConnectionStatus::CONNECTED, mockdev->connection_status());
@@ -444,7 +440,6 @@ TEST_F(TransportAdapterTest, ConnectDevice_DeviceAddedTwice) {
EXPECT_CALL(*serverMock, IsInitialised()).WillOnce(Return(true));
EXPECT_CALL(*serverMock, CreateConnection(uniq_id, app_handle)).Times(0);
EXPECT_CALL(transport_adapter, FindDevice(uniq_id)).WillOnce(Return(mockdev));
- EXPECT_CALL(transport_adapter, ConnectionStatusUpdated());
TransportAdapter::Error newres = transport_adapter.ConnectDevice(uniq_id);
EXPECT_EQ(TransportAdapter::OK, newres);
EXPECT_EQ(ConnectionStatus::CONNECTED, mockdev->connection_status());
@@ -509,7 +504,7 @@ TEST_F(TransportAdapterTest, DisconnectDevice_DeviceAddedConnectionCreated) {
.WillOnce(Return(TransportAdapter::OK));
EXPECT_CALL(transport_adapter, FindDevice(uniq_id))
.WillRepeatedly(Return(mockdev));
- EXPECT_CALL(transport_adapter, ConnectionStatusUpdated());
+ // EXPECT_CALL(transport_adapter, ConnectionStatusUpdated(_, _));
TransportAdapter::Error res = transport_adapter.ConnectDevice(uniq_id);
EXPECT_EQ(TransportAdapter::OK, res);
EXPECT_EQ(ConnectionStatus::CONNECTED, mockdev->connection_status());
@@ -520,7 +515,7 @@ TEST_F(TransportAdapterTest, DisconnectDevice_DeviceAddedConnectionCreated) {
EXPECT_CALL(*mock_connection, Disconnect())
.WillOnce(Return(TransportAdapter::OK));
- EXPECT_CALL(transport_adapter, ConnectionStatusUpdated());
+ // EXPECT_CALL(transport_adapter, ConnectionStatusUpdated(_, _));
TransportAdapter::Error new_res = transport_adapter.DisconnectDevice(uniq_id);
EXPECT_EQ(TransportAdapter::OK, new_res);
EXPECT_EQ(ConnectionStatus::CLOSING, mockdev->connection_status());
@@ -556,7 +551,6 @@ TEST_F(TransportAdapterTest, DeviceDisconnected) {
EXPECT_CALL(*serverMock, IsInitialised()).WillOnce(Return(true));
EXPECT_CALL(*serverMock, CreateConnection(uniq_id, app_handle))
.WillOnce(Return(TransportAdapter::OK));
- EXPECT_CALL(transport_adapter, ConnectionStatusUpdated());
TransportAdapter::Error res = transport_adapter.ConnectDevice(uniq_id);
EXPECT_EQ(TransportAdapter::OK, res);
EXPECT_EQ(ConnectionStatus::CONNECTED, mockdev->connection_status());