summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrey Oleynik (GitHub) <aoleynik@luxoft.com>2017-09-25 16:32:45 +0300
committerAndriy Byzhynar <AByzhynar@luxoft.com>2018-01-18 11:28:38 +0200
commita6eb294c8f1805d2b3e39fc71f31f461f2cb4a65 (patch)
treedb446569713df45088ea53e0f5697a06ec6757ba
parent7d03482c7f9689a375cd87f3acabda1b9af7624f (diff)
downloadsdl_core-a6eb294c8f1805d2b3e39fc71f31f461f2cb4a65.tar.gz
Removes odd interface, updates TM unit tests
-rw-r--r--src/components/include/transport_manager/transport_adapter/transport_adapter_event.h1
-rw-r--r--src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_listener.h7
-rw-r--r--src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_listener_impl.h7
-rw-r--r--src/components/transport_manager/include/transport_manager/transport_manager_impl.h11
-rw-r--r--src/components/transport_manager/src/transport_adapter/transport_adapter_impl.cc2
-rw-r--r--src/components/transport_manager/src/transport_adapter/transport_adapter_listener_impl.cc14
-rw-r--r--src/components/transport_manager/src/transport_manager_impl.cc24
-rw-r--r--src/components/transport_manager/test/include/transport_manager/transport_adapter/mock_transport_adapter_listener.h1
-rw-r--r--src/components/transport_manager/test/transport_adapter_test.cc5
-rw-r--r--src/components/transport_manager/test/transport_manager_impl_test.cc190
10 files changed, 165 insertions, 97 deletions
diff --git a/src/components/include/transport_manager/transport_adapter/transport_adapter_event.h b/src/components/include/transport_manager/transport_adapter/transport_adapter_event.h
index 0c06c39723..c277faa339 100644
--- a/src/components/include/transport_manager/transport_adapter/transport_adapter_event.h
+++ b/src/components/include/transport_manager/transport_adapter/transport_adapter_event.h
@@ -46,7 +46,6 @@ enum class EventTypeEnum {
ON_SEARCH_DONE = 0,
ON_SEARCH_FAIL,
ON_DEVICE_LIST_UPDATED,
- ON_DEVICE_ADDED,
ON_FIND_NEW_APPLICATIONS_REQUEST,
ON_CONNECT_DONE,
ON_CONNECT_FAIL,
diff --git a/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_listener.h b/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_listener.h
index 8cc812fc4d..db8ab4fce5 100644
--- a/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_listener.h
+++ b/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_listener.h
@@ -85,13 +85,6 @@ class TransportAdapterListener {
const TransportAdapter* transport_adapter) = 0;
/**
- * @brief OnDeviceAdded is triggered by transport adapter on new device
- * coming
- * @param device_uid Device id of new device
- */
- virtual void OnDeviceAdded(DeviceUID device_uid) = 0;
-
- /**
* @brief Reaction to "Find new applications" request
* @param adapter Current transport adapter
*/
diff --git a/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_listener_impl.h b/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_listener_impl.h
index 4977547f97..f5a7934ed6 100644
--- a/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_listener_impl.h
+++ b/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_listener_impl.h
@@ -85,13 +85,6 @@ class TransportAdapterListenerImpl
*/
virtual void OnDeviceListUpdated(const TransportAdapter* adapter);
- /**
- * @brief OnDeviceAdded is triggered by transport adapter on new device
- * coming and sends ON_DEVICE_ADDED event to transport manager
- * @param device_uid Device id of new device
- */
- virtual void OnDeviceAdded(DeviceUID device_uid);
-
virtual void OnFindNewApplicationsRequest(const TransportAdapter* adapter);
/**
diff --git a/src/components/transport_manager/include/transport_manager/transport_manager_impl.h b/src/components/transport_manager/include/transport_manager/transport_manager_impl.h
index 4c8e36b745..5cf488f1b7 100644
--- a/src/components/transport_manager/include/transport_manager/transport_manager_impl.h
+++ b/src/components/transport_manager/include/transport_manager/transport_manager_impl.h
@@ -245,6 +245,8 @@ class TransportManagerImpl
int Visibility(const bool& on_off) const OVERRIDE;
/**
+ * DEPRECATED
+ * Must be moved under 'private' section
* @brief Updates total device list with info from specific transport adapter.
* @param ta Transport adapter
*/
@@ -475,12 +477,6 @@ class TransportManagerImpl
unsigned int frame_size,
unsigned char** frame);
- /**
- * @brief OnDeviceAdded processes new device detected by specific transport
- * adapter
- * @param ta Pointer to transport adapter
- */
- void OnDeviceAdded(TransportAdapter* ta);
void OnDeviceListUpdated(TransportAdapter* ta);
void DisconnectAllDevices();
void TerminateAllAdapters();
@@ -498,8 +494,9 @@ class TransportManagerImpl
* performs its update on adding/removal of devices. Also used by IAP2
* switching flow to substitute BT with USB transport
* @param ta Pointer to transport adapter
+ * @return True if mapping has been updated, otherwise - false
*/
- void UpdateDeviceMapping(TransportAdapter* ta);
+ bool UpdateDeviceMapping(TransportAdapter* ta);
}; // class TransportManagerImpl
} // namespace transport_manager
#endif // SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_MANAGER_IMPL_H_
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 4513597400..ba85ea8276 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
@@ -388,7 +388,7 @@ DeviceSptr TransportAdapterImpl::AddDevice(DeviceSptr device) {
for (TransportAdapterListenerList::iterator it = listeners_.begin();
it != listeners_.end();
++it) {
- (*it)->OnDeviceAdded(device->unique_device_id());
+ (*it)->OnDeviceListUpdated(this);
}
if (ToBeAutoConnected(device)) {
ConnectDevice(device);
diff --git a/src/components/transport_manager/src/transport_adapter/transport_adapter_listener_impl.cc b/src/components/transport_manager/src/transport_adapter/transport_adapter_listener_impl.cc
index 5c561ad6e3..a559174dd7 100644
--- a/src/components/transport_manager/src/transport_adapter/transport_adapter_listener_impl.cc
+++ b/src/components/transport_manager/src/transport_adapter/transport_adapter_listener_impl.cc
@@ -98,20 +98,6 @@ void TransportAdapterListenerImpl::OnDeviceListUpdated(
LOG4CXX_TRACE(logger_, "exit");
}
-void TransportAdapterListenerImpl::OnDeviceAdded(DeviceUID device_uid) {
- const TransportAdapterEvent event(EventTypeEnum::ON_DEVICE_ADDED,
- transport_adapter_,
- device_uid,
- 0,
- ::protocol_handler::RawMessagePtr(),
- BaseErrorPtr());
- if (transport_manager_ != NULL &&
- transport_manager::E_SUCCESS !=
- transport_manager_->ReceiveEventFromDevice(event)) {
- LOG4CXX_WARN(logger_, "Failed to receive event from device");
- }
-}
-
void TransportAdapterListenerImpl::OnFindNewApplicationsRequest(
const TransportAdapter* adapter) {
LOG4CXX_TRACE(logger_, "enter. adapter* " << adapter);
diff --git a/src/components/transport_manager/src/transport_manager_impl.cc b/src/components/transport_manager/src/transport_manager_impl.cc
index 8c5259f811..3896c5961b 100644
--- a/src/components/transport_manager/src/transport_manager_impl.cc
+++ b/src/components/transport_manager/src/transport_manager_impl.cc
@@ -748,12 +748,7 @@ bool TransportManagerImpl::TryDeviceSwitch(
return true;
}
-void TransportManagerImpl::OnDeviceAdded(TransportAdapter* ta) {
- LOG4CXX_AUTO_TRACE(logger_);
- OnDeviceListUpdated(ta);
-}
-
-void TransportManagerImpl::UpdateDeviceMapping(
+bool TransportManagerImpl::UpdateDeviceMapping(
transport_adapter::TransportAdapter* ta) {
const DeviceList device_list = ta->GetDeviceList();
LOG4CXX_DEBUG(logger_, "DEVICE_LIST_UPDATED " << device_list.size());
@@ -794,17 +789,27 @@ void TransportManagerImpl::UpdateDeviceMapping(
DeviceInfo info(
device_handle, *it, ta->DeviceName(*it), ta->GetConnectionType());
RaiseEvent(&TransportManagerListener::OnDeviceFound, info);
+ } else {
+ LOG4CXX_ERROR(
+ logger_,
+ "Same UUID " + *it + "detected, but transport switching failed.");
+ return false;
}
}
LOG4CXX_DEBUG(logger_,
"After update. Device map size is "
<< device_to_adapter_map_.size());
+
+ return true;
}
void TransportManagerImpl::OnDeviceListUpdated(TransportAdapter* ta) {
LOG4CXX_TRACE(logger_, "enter. TransportAdapter: " << ta);
- UpdateDeviceMapping(ta);
+ if (!UpdateDeviceMapping(ta)) {
+ LOG4CXX_ERROR(logger_, "Device list update failed.");
+ return;
+ }
UpdateDeviceList(ta);
std::vector<DeviceInfo> device_infos;
device_list_lock_.AcquireForReading();
@@ -838,11 +843,6 @@ void TransportManagerImpl::Handle(TransportAdapterEvent event) {
LOG4CXX_DEBUG(logger_, "event_type = ON_DEVICE_LIST_UPDATED");
break;
}
- case EventTypeEnum::ON_DEVICE_ADDED: {
- OnDeviceAdded(event.transport_adapter);
- LOG4CXX_DEBUG(logger_, "event_type = ON_ADDED");
- break;
- }
case EventTypeEnum::ON_FIND_NEW_APPLICATIONS_REQUEST: {
RaiseEvent(&TransportManagerListener::OnFindNewApplicationsRequest);
LOG4CXX_DEBUG(logger_, "event_type = ON_FIND_NEW_APPLICATIONS_REQUEST");
diff --git a/src/components/transport_manager/test/include/transport_manager/transport_adapter/mock_transport_adapter_listener.h b/src/components/transport_manager/test/include/transport_manager/transport_adapter/mock_transport_adapter_listener.h
index 5e873211b2..8302a63beb 100644
--- a/src/components/transport_manager/test/include/transport_manager/transport_adapter/mock_transport_adapter_listener.h
+++ b/src/components/transport_manager/test/include/transport_manager/transport_adapter/mock_transport_adapter_listener.h
@@ -61,7 +61,6 @@ class MockTransportAdapterListener : public TransportAdapterListener {
void(const TransportAdapter* adapter));
MOCK_METHOD1(OnDeviceListUpdated,
void(const TransportAdapter* transport_adapter));
- MOCK_METHOD1(OnDeviceAdded, void(DeviceUID device_uid));
MOCK_METHOD3(OnConnectDone,
void(const TransportAdapter* transport_adapter,
const DeviceUID& device_handle,
diff --git a/src/components/transport_manager/test/transport_adapter_test.cc b/src/components/transport_manager/test/transport_adapter_test.cc
index 9b01dfcdb5..6d709e0c17 100644
--- a/src/components/transport_manager/test/transport_adapter_test.cc
+++ b/src/components/transport_manager/test/transport_adapter_test.cc
@@ -192,7 +192,7 @@ TEST_F(TransportAdapterTest, AddDevice) {
utils::SharedPtr<MockDevice> mockdev =
utils::MakeShared<MockDevice>(dev_id, uniq_id);
- EXPECT_CALL(mock_listener, OnDeviceAdded(_));
+ EXPECT_CALL(mock_listener, OnDeviceListUpdated(&transport_adapter));
transport_adapter.AddDevice(mockdev);
}
@@ -469,7 +469,7 @@ TEST_F(TransportAdapterTest, DeviceDisconnected) {
utils::SharedPtr<MockDevice> mockdev =
utils::MakeShared<MockDevice>(dev_id, uniq_id);
- EXPECT_CALL(mock_listener, OnDeviceAdded(_));
+ EXPECT_CALL(mock_listener, OnDeviceListUpdated(&transport_adapter));
transport_adapter.AddDevice(mockdev);
std::vector<std::string> devList = transport_adapter.GetDeviceList();
@@ -489,6 +489,7 @@ TEST_F(TransportAdapterTest, DeviceDisconnected) {
utils::MakeShared<MockConnection>();
transport_adapter.ConnectionCreated(mock_connection, uniq_id, app_handle);
+ EXPECT_CALL(mock_listener, OnDeviceListUpdated(&transport_adapter));
EXPECT_CALL(*mockdev, GetApplicationList()).WillOnce(Return(intList));
EXPECT_CALL(
mock_listener,
diff --git a/src/components/transport_manager/test/transport_manager_impl_test.cc b/src/components/transport_manager/test/transport_manager_impl_test.cc
index 9bfa13cd9c..80b4ba5316 100644
--- a/src/components/transport_manager/test/transport_manager_impl_test.cc
+++ b/src/components/transport_manager/test/transport_manager_impl_test.cc
@@ -637,34 +637,50 @@ TEST_F(TransportManagerImplTest, Reinit_InitAdapterFailed) {
TEST_F(TransportManagerImplTest, UpdateDeviceList_AddNewDevice) {
device_list_.push_back(dev_info_.mac_address());
- EXPECT_CALL(*mock_adapter_, GetDeviceList()).WillOnce(Return(device_list_));
- EXPECT_CALL(*mock_adapter_, DeviceName(dev_info_.mac_address()))
- .WillOnce(Return(dev_info_.name()));
+ EXPECT_CALL(*mock_adapter_, GetDeviceList())
+ .WillRepeatedly(Return(device_list_));
EXPECT_CALL(*mock_adapter_, GetConnectionType())
.WillRepeatedly(Return(dev_info_.connection_type()));
- EXPECT_CALL(*tm_listener_, OnDeviceAdded(dev_info_));
+ EXPECT_CALL(*mock_adapter_, DeviceName(dev_info_.mac_address()))
+ .WillRepeatedly(Return(dev_info_.name()));
- tm_.UpdateDeviceList(mock_adapter_);
+ EXPECT_CALL(*tm_listener_, OnDeviceFound(dev_info_));
+ EXPECT_CALL(*tm_listener_, OnDeviceAdded(dev_info_));
+ EXPECT_CALL(*tm_listener_, OnDeviceListUpdated(_));
+ tm_.OnDeviceListUpdated(mock_adapter_);
device_list_.pop_back();
}
TEST_F(TransportManagerImplTest, UpdateDeviceList_RemoveDevice) {
device_list_.push_back(dev_info_.mac_address());
+ {
+ EXPECT_CALL(*mock_adapter_, GetDeviceList())
+ .WillRepeatedly(Return(device_list_));
+ EXPECT_CALL(*mock_adapter_, GetConnectionType())
+ .WillRepeatedly(Return(dev_info_.connection_type()));
+ EXPECT_CALL(*mock_adapter_, DeviceName(dev_info_.mac_address()))
+ .WillRepeatedly(Return(dev_info_.name()));
- ::testing::InSequence seq;
- EXPECT_CALL(*mock_adapter_, GetDeviceList()).WillOnce(Return(device_list_));
+ ::testing::InSequence s;
+ EXPECT_CALL(*tm_listener_, OnDeviceFound(dev_info_));
+ EXPECT_CALL(*tm_listener_, OnDeviceAdded(dev_info_));
+ EXPECT_CALL(*tm_listener_, OnDeviceListUpdated(_));
+ tm_.OnDeviceListUpdated(mock_adapter_);
+ }
+ device_list_.pop_back();
+
+ EXPECT_CALL(*mock_adapter_, GetDeviceList())
+ .WillRepeatedly(Return(device_list_));
EXPECT_CALL(*mock_adapter_, GetConnectionType())
.WillRepeatedly(Return(dev_info_.connection_type()));
EXPECT_CALL(*mock_adapter_, DeviceName(dev_info_.mac_address()))
- .WillOnce(Return(dev_info_.name()));
- EXPECT_CALL(*tm_listener_, OnDeviceAdded(dev_info_));
- tm_.UpdateDeviceList(mock_adapter_);
- device_list_.pop_back();
+ .WillRepeatedly(Return(dev_info_.name()));
// Device list is empty now
- EXPECT_CALL(*mock_adapter_, GetDeviceList()).WillOnce(Return(device_list_));
+ ::testing::InSequence s;
EXPECT_CALL(*tm_listener_, OnDeviceRemoved(dev_info_));
- tm_.UpdateDeviceList(mock_adapter_);
+ EXPECT_CALL(*tm_listener_, OnDeviceListUpdated(_));
+ tm_.OnDeviceListUpdated(mock_adapter_);
}
/*
@@ -1008,7 +1024,7 @@ TEST_F(TransportManagerImplTest, RunAppOnDevice_TransportAdapterFound_SUCCESS) {
}
TEST_F(TransportManagerImplTest,
- UpdateDeviceList_AddDevices_TwoTransportAdapters) {
+ UpdateDeviceList_AddDevices_TwoTransportAdapters_ExpectSuccess) {
// Arrange
MockTransportAdapter* second_mock_adapter = new MockTransportAdapter();
device_list_.push_back(dev_info_.mac_address());
@@ -1018,22 +1034,80 @@ TEST_F(TransportManagerImplTest,
EXPECT_EQ(E_SUCCESS, tm_.AddTransportAdapter(second_mock_adapter));
// Act and Assert
- EXPECT_CALL(*second_mock_adapter, GetDeviceList())
- .WillOnce(Return(device_list_));
- EXPECT_CALL(*second_mock_adapter, DeviceName(dev_info_.mac_address()))
- .WillOnce(Return(dev_info_.name()));
- EXPECT_CALL(*second_mock_adapter, GetConnectionType())
+ EXPECT_CALL(*mock_adapter_, GetDeviceList())
+ .WillRepeatedly(Return(device_list_));
+ EXPECT_CALL(*mock_adapter_, DeviceName(dev_info_.mac_address()))
+ .WillRepeatedly(Return(dev_info_.name()));
+ EXPECT_CALL(*mock_adapter_, GetConnectionType())
.WillRepeatedly(Return(dev_info_.connection_type()));
+ EXPECT_CALL(*tm_listener_, OnDeviceFound(dev_info_));
EXPECT_CALL(*tm_listener_, OnDeviceAdded(dev_info_));
- tm_.UpdateDeviceList(second_mock_adapter);
+ EXPECT_CALL(*tm_listener_, OnDeviceListUpdated(_));
+ tm_.OnDeviceListUpdated(mock_adapter_);
- EXPECT_CALL(*mock_adapter_, GetDeviceList()).WillOnce(Return(device_list_));
+ const std::string mac_address("NE:WA:DR:ES:SS");
+ const std::string connection_type("TCP");
+ const std::string device_name("TestName");
+ const transport_manager::DeviceHandle device_handle(
+ tm_.get_converter().UidToHandle(mac_address, connection_type));
+
+ DeviceInfo second_device(
+ device_handle, mac_address, device_name, connection_type);
+ DeviceList device_list_2;
+ device_list_2.push_back(second_device.mac_address());
+
+ EXPECT_CALL(*second_mock_adapter, GetDeviceList())
+ .WillRepeatedly(Return(device_list_2));
+ EXPECT_CALL(*second_mock_adapter, DeviceName(second_device.mac_address()))
+ .WillRepeatedly(Return(second_device.name()));
+ EXPECT_CALL(*second_mock_adapter, GetConnectionType())
+ .WillRepeatedly(Return(second_device.connection_type()));
+
+ EXPECT_CALL(*tm_listener_, OnDeviceAdded(second_device));
+ EXPECT_CALL(*tm_listener_, OnDeviceFound(second_device));
+ EXPECT_CALL(*tm_listener_, OnDeviceListUpdated(_));
+ tm_.OnDeviceListUpdated(second_mock_adapter);
+
+ device_list_.pop_back();
+}
+
+TEST_F(
+ TransportManagerImplTest,
+ UpdateDeviceList_AddSameUUIDNonSwitchableDevices_TwoTransportAdapters_ExpectSecondFailed) {
+ // Arrange
+ MockTransportAdapter* second_mock_adapter = new MockTransportAdapter();
+ device_list_.push_back(dev_info_.mac_address());
+ // Check before Act
+ EXPECT_CALL(*second_mock_adapter, AddListener(_));
+ EXPECT_CALL(*second_mock_adapter, IsInitialised()).WillOnce(Return(true));
+ EXPECT_EQ(E_SUCCESS, tm_.AddTransportAdapter(second_mock_adapter));
+
+ // Act and Assert
+ EXPECT_CALL(*mock_adapter_, GetDeviceList())
+ .WillRepeatedly(Return(device_list_));
EXPECT_CALL(*mock_adapter_, DeviceName(dev_info_.mac_address()))
- .WillOnce(Return(dev_info_.name()));
+ .WillRepeatedly(Return(dev_info_.name()));
EXPECT_CALL(*mock_adapter_, GetConnectionType())
.WillRepeatedly(Return(dev_info_.connection_type()));
+ EXPECT_CALL(*tm_listener_, OnDeviceFound(dev_info_));
EXPECT_CALL(*tm_listener_, OnDeviceAdded(dev_info_));
- tm_.UpdateDeviceList(mock_adapter_);
+ EXPECT_CALL(*tm_listener_, OnDeviceListUpdated(_));
+ tm_.OnDeviceListUpdated(mock_adapter_);
+
+ EXPECT_CALL(*second_mock_adapter, GetDeviceList())
+ .WillRepeatedly(Return(device_list_));
+ EXPECT_CALL(*second_mock_adapter, DeviceName(dev_info_.mac_address()))
+ .WillRepeatedly(Return(dev_info_.name()));
+ EXPECT_CALL(*second_mock_adapter, GetConnectionType())
+ .WillRepeatedly(Return(dev_info_.connection_type()));
+
+ EXPECT_CALL(*mock_adapter_, GetDeviceType())
+ .WillOnce(Return(transport_adapter::DeviceType::TCP));
+
+ EXPECT_CALL(*second_mock_adapter, StopDevice(_)).Times(0);
+ EXPECT_CALL(*second_mock_adapter, DeviceSwitched(_)).Times(0);
+ EXPECT_CALL(*tm_listener_, OnDeviceListUpdated(_)).Times(0);
+ tm_.OnDeviceListUpdated(second_mock_adapter);
device_list_.pop_back();
}
@@ -1050,7 +1124,11 @@ TEST_F(TransportManagerImplTest, OnlyOneDeviceShouldNotTriggerSwitch) {
EXPECT_CALL(*tm_listener_, OnDeviceAdded(dev_info_));
EXPECT_CALL(*tm_listener_, OnDeviceListUpdated(_));
- tm_.TestHandle(TransportAdapterEvent(EventTypeEnum::ON_DEVICE_ADDED,
+ EXPECT_CALL(*mock_adapter_, StopDevice(_)).Times(0);
+ EXPECT_CALL(*mock_adapter_, DeviceSwitched(_)).Times(0);
+ EXPECT_CALL(*tm_listener_, OnDeviceSwitchingStart(_)).Times(0);
+
+ tm_.TestHandle(TransportAdapterEvent(EventTypeEnum::ON_DEVICE_LIST_UPDATED,
mock_adapter_,
mac_address_,
application_id_,
@@ -1060,14 +1138,15 @@ TEST_F(TransportManagerImplTest, OnlyOneDeviceShouldNotTriggerSwitch) {
device_list_.pop_back();
}
-TEST_F(TransportManagerImplTest, TwoTransportAdapterAddSameDeviceTimeout) {
+TEST_F(TransportManagerImplTest,
+ TwoTransportAdapterAddSameSwitchableDevice_ExpectSuccess) {
device_list_.push_back(dev_info_.mac_address());
const uint32_t timeout = 0;
SetAddDeviceExpectations(mock_adapter_,
transport_adapter::DeviceType::IOS_BT);
- tm_.TestHandle(TransportAdapterEvent(EventTypeEnum::ON_DEVICE_ADDED,
+ tm_.TestHandle(TransportAdapterEvent(EventTypeEnum::ON_DEVICE_LIST_UPDATED,
mock_adapter_,
mac_address_,
application_id_,
@@ -1090,7 +1169,7 @@ TEST_F(TransportManagerImplTest, TwoTransportAdapterAddSameDeviceTimeout) {
EXPECT_CALL(*tm_listener_, OnDeviceSwitchingStart(mac_address_));
EXPECT_CALL(*tm_listener_, OnDeviceSwitchFinish(mac_address_));
- tm_.TestHandle(TransportAdapterEvent(EventTypeEnum::ON_DEVICE_ADDED,
+ tm_.TestHandle(TransportAdapterEvent(EventTypeEnum::ON_DEVICE_LIST_UPDATED,
second_mock_adapter.get(),
mac_address_,
application_id_,
@@ -1101,7 +1180,7 @@ TEST_F(TransportManagerImplTest, TwoTransportAdapterAddSameDeviceTimeout) {
}
TEST_F(TransportManagerImplTest,
- UpdateDeviceList_RemoveDevices_TwoTransportAdapters) {
+ UpdateDeviceList_RemoveDevices_TwoTransportAdapters_ExpectSuccess) {
// Arrange
MockTransportAdapter* second_mock_adapter = new MockTransportAdapter();
device_list_.push_back(dev_info_.mac_address());
@@ -1111,33 +1190,54 @@ TEST_F(TransportManagerImplTest,
EXPECT_EQ(E_SUCCESS, tm_.AddTransportAdapter(second_mock_adapter));
// Act and Assert
- EXPECT_CALL(*second_mock_adapter, GetDeviceList())
- .WillOnce(Return(device_list_));
- EXPECT_CALL(*second_mock_adapter, DeviceName(dev_info_.mac_address()))
- .WillOnce(Return(dev_info_.name()));
- EXPECT_CALL(*second_mock_adapter, GetConnectionType())
- .WillRepeatedly(Return(dev_info_.connection_type()));
- EXPECT_CALL(*tm_listener_, OnDeviceAdded(dev_info_));
- tm_.UpdateDeviceList(second_mock_adapter);
-
- EXPECT_CALL(*mock_adapter_, GetDeviceList()).WillOnce(Return(device_list_));
+ EXPECT_CALL(*mock_adapter_, GetDeviceList())
+ .WillRepeatedly(Return(device_list_));
EXPECT_CALL(*mock_adapter_, DeviceName(dev_info_.mac_address()))
- .WillOnce(Return(dev_info_.name()));
+ .WillRepeatedly(Return(dev_info_.name()));
EXPECT_CALL(*mock_adapter_, GetConnectionType())
.WillRepeatedly(Return(dev_info_.connection_type()));
+ EXPECT_CALL(*tm_listener_, OnDeviceFound(dev_info_));
EXPECT_CALL(*tm_listener_, OnDeviceAdded(dev_info_));
- tm_.UpdateDeviceList(mock_adapter_);
+ EXPECT_CALL(*tm_listener_, OnDeviceListUpdated(_));
+ tm_.OnDeviceListUpdated(mock_adapter_);
+
+ const std::string mac_address("NE:WA:DR:ES:SS");
+ const std::string connection_type("TCP");
+ const std::string device_name("TestName");
+ const transport_manager::DeviceHandle device_handle(
+ tm_.get_converter().UidToHandle(mac_address, connection_type));
+
+ DeviceInfo second_device(
+ device_handle, mac_address, device_name, connection_type);
+ DeviceList device_list_2;
+ device_list_2.push_back(second_device.mac_address());
+
+ EXPECT_CALL(*second_mock_adapter, GetDeviceList())
+ .WillRepeatedly(Return(device_list_2));
+ EXPECT_CALL(*second_mock_adapter, DeviceName(second_device.mac_address()))
+ .WillRepeatedly(Return(second_device.name()));
+ EXPECT_CALL(*second_mock_adapter, GetConnectionType())
+ .WillRepeatedly(Return(second_device.connection_type()));
+
+ EXPECT_CALL(*tm_listener_, OnDeviceAdded(second_device));
+ EXPECT_CALL(*tm_listener_, OnDeviceFound(second_device));
+ EXPECT_CALL(*tm_listener_, OnDeviceListUpdated(_));
+ tm_.OnDeviceListUpdated(second_mock_adapter);
device_list_.pop_back();
+ device_list_2.pop_back();
EXPECT_CALL(*second_mock_adapter, GetDeviceList())
- .WillOnce(Return(device_list_));
- EXPECT_CALL(*tm_listener_, OnDeviceRemoved(dev_info_));
- tm_.UpdateDeviceList(second_mock_adapter);
+ .WillRepeatedly(Return(device_list_2));
+ EXPECT_CALL(*tm_listener_, OnDeviceRemoved(second_device));
+ EXPECT_CALL(*tm_listener_, OnDeviceListUpdated(_));
+ tm_.OnDeviceListUpdated(second_mock_adapter);
- EXPECT_CALL(*mock_adapter_, GetDeviceList()).WillOnce(Return(device_list_));
+ EXPECT_CALL(*mock_adapter_, GetDeviceList())
+ .WillRepeatedly(Return(device_list_));
EXPECT_CALL(*tm_listener_, OnDeviceRemoved(dev_info_));
- tm_.UpdateDeviceList(mock_adapter_);
+ EXPECT_CALL(*tm_listener_, OnDeviceListUpdated(_));
+ tm_.OnDeviceListUpdated(mock_adapter_);
}
} // namespace transport_manager_test