diff options
author | Jacob Keeler <jacob.keeler@livioradio.com> | 2016-09-20 11:44:51 -0400 |
---|---|---|
committer | Jacob Keeler <jacob.keeler@livioradio.com> | 2016-09-20 14:37:25 -0400 |
commit | 039581419749dbdd32590804e8b14a77fcaf9636 (patch) | |
tree | ced927fc4bef4686f7373a5f45dd692bd9fc9de0 /src/components/transport_manager/test | |
parent | 1b96b7c02d2e338b846a7314c6fa0bdaa31f7c5e (diff) | |
parent | aff7f09a4ec07becfb64dc78992580061d3342ff (diff) | |
download | sdl_core-039581419749dbdd32590804e8b14a77fcaf9636.tar.gz |
Merge branch 'master'
Diffstat (limited to 'src/components/transport_manager/test')
44 files changed, 1657 insertions, 2621 deletions
diff --git a/src/components/transport_manager/test/CMakeLists.txt b/src/components/transport_manager/test/CMakeLists.txt index c38804e86c..da20f1d43c 100644 --- a/src/components/transport_manager/test/CMakeLists.txt +++ b/src/components/transport_manager/test/CMakeLists.txt @@ -32,15 +32,14 @@ if(BUILD_TESTS) set(TM_TEST_DIR ${COMPONENTS_DIR}/transport_manager/test) include_directories( + include ${LOG4CXX_INCLUDE_DIRECTORY} ${GMOCK_INCLUDE_DIRECTORY} ${COMPONENTS_DIR}/smart_objects/include ${COMPONENTS_DIR}/transport_manager/include ${COMPONENTS_DIR}/utils/include - ${COMPONENTS_DIR}/include ${COMPONENTS_DIR}/connection_handler/include ${JSONCPP_INCLUDE_DIRECTORY} - ${CMAKE_BINARY_DIR} ) set(LIBRARIES @@ -62,21 +61,17 @@ if (BUILD_BT_SUPPORT) list(APPEND LIBRARIES bluetooth) endif() -if (BUILD_AVAHI_SUPPORT) - list(APPEND LIBRARIES avahi-client avahi-common) -endif() - set(SOURCES - ${TM_TEST_DIR}/transport_manager_default_test.cc - #${TM_TEST_DIR}/transport_manager_impl_test.cc - #${TM_TEST_DIR}/dnssd_service_browser_test.cc + ${TM_TEST_DIR}/transport_manager_impl_test.cc ${TM_TEST_DIR}/transport_adapter_test.cc - #${TM_TEST_DIR}/transport_adapter_listener_test.cc + ${TM_TEST_DIR}/transport_adapter_listener_test.cc ${TM_TEST_DIR}/tcp_transport_adapter_test.cc ${TM_TEST_DIR}/tcp_device_test.cc - #${TM_TEST_DIR}/tcp_client_listener_test.cc + ${TM_TEST_DIR}/tcp_client_listener_test.cc + ${TM_TEST_DIR}/transport_manager_default_test.cc ) create_test("transport_manager_test" "${SOURCES}" "${LIBRARIES}") file(COPY smartDeviceLink_test.ini DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) +file(COPY app_info_storage2 DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) endif() diff --git a/src/components/transport_manager/test/app_info_storage2 b/src/components/transport_manager/test/app_info_storage2 new file mode 100644 index 0000000000..794c8b90bc --- /dev/null +++ b/src/components/transport_manager/test/app_info_storage2 @@ -0,0 +1,99 @@ +{ + "TransportManager" : { + "BluetoothAdapter" : null, + "TcpAdapter" : { + "devices" : [ + { + "address" : "57.48.0.1", + "applications" : [ + { + "port" : "12345" + } + ], + "name" : "unique_device_name0" + }, + { + "address" : "57.48.0.2", + "applications" : [ + { + "port" : "12345" + } + ], + "name" : "unique_device_name1" + }, + { + "address" : "57.48.0.3", + "applications" : [ + { + "port" : "12345" + } + ], + "name" : "unique_device_name2" + }, + { + "address" : "57.48.0.4", + "applications" : [ + { + "port" : "12345" + } + ], + "name" : "unique_device_name3" + }, + { + "address" : "57.48.0.5", + "applications" : [ + { + "port" : "12345" + } + ], + "name" : "unique_device_name4" + }, + { + "address" : "57.48.0.6", + "applications" : [ + { + "port" : "12345" + } + ], + "name" : "unique_device_name5" + }, + { + "address" : "57.48.0.7", + "applications" : [ + { + "port" : "12345" + } + ], + "name" : "unique_device_name6" + }, + { + "address" : "57.48.0.8", + "applications" : [ + { + "port" : "12345" + } + ], + "name" : "unique_device_name7" + }, + { + "address" : "57.48.0.9", + "applications" : [ + { + "port" : "12345" + } + ], + "name" : "unique_device_name8" + }, + { + "address" : "57.48.0.10", + "applications" : [ + { + "port" : "12345" + } + ], + "name" : "unique_device_name9" + } + ] + } + } +} diff --git a/src/components/transport_manager/test/dnssd_service_browser_test.cc b/src/components/transport_manager/test/dnssd_service_browser_test.cc deleted file mode 100644 index 6eb2ad45f6..0000000000 --- a/src/components/transport_manager/test/dnssd_service_browser_test.cc +++ /dev/null @@ -1,147 +0,0 @@ -/* - * Copyright (c) 2015, 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 "gmock/gmock.h" - -#include "transport_manager/transport_adapter/transport_adapter_controller.h" -#include "transport_manager/tcp/dnssd_service_browser.h" - -namespace transport_manager { -namespace transport_adapter { - -class MockTransportAdapterController : public TransportAdapterController { - public: - MOCK_METHOD1(AddDevice, DeviceSptr(DeviceSptr device)); - MOCK_METHOD1(SearchDeviceDone, void(const DeviceVector& devices)); - MOCK_METHOD1(SearchDeviceFailed, void(const SearchDeviceError& error)); - MOCK_CONST_METHOD1(FindDevice, DeviceSptr(const DeviceUID& device_handle)); - MOCK_METHOD3(ConnectionCreated, - void(ConnectionSPtr connection, const DeviceUID& device_handle, - const ApplicationHandle& app_handle)); - MOCK_METHOD2(ConnectDone, void(const DeviceUID& device_handle, - const ApplicationHandle& app_handle)); - MOCK_METHOD3(ConnectFailed, void(const DeviceUID& device_handle, - const ApplicationHandle& app_handle, - const ConnectError& error)); - MOCK_METHOD2(ConnectionFinished, void(const DeviceUID& device_handle, - const ApplicationHandle& app_handle)); - MOCK_METHOD3(ConnectionAborted, void(const DeviceUID& device_handle, - const ApplicationHandle& app_handle, - const CommunicationError& error)); - MOCK_METHOD2(DisconnectDone, void(const DeviceUID& device_handle, - const ApplicationHandle& app_handle)); - MOCK_METHOD3(DataReceiveDone, - void(const DeviceUID& device_handle, - const ApplicationHandle& app_handle, - const ::protocol_handler::RawMessagePtr message)); - MOCK_METHOD3(DataReceiveFailed, void(const DeviceUID& device_handle, - const ApplicationHandle& app_handle, - const DataReceiveError& error)); - MOCK_METHOD3(DataSendDone, - void(const DeviceUID& device_handle, - const ApplicationHandle& app_handle, - const ::protocol_handler::RawMessagePtr message)); - MOCK_METHOD4(DataSendFailed, - void(const DeviceUID& device_handle, - const ApplicationHandle& app_handle, - const ::protocol_handler::RawMessagePtr message, - const DataSendError& error)); - MOCK_METHOD0(FindNewApplicationsRequest, void()); - MOCK_METHOD0(AckDevices, void()); - MOCK_METHOD1(ApplicationListUpdated, void(const DeviceUID& device_handle)); - MOCK_METHOD2(DeviceDisconnected, void(const DeviceUID& device_handle, - const DisconnectDeviceError& error)); -}; - -TEST(DnssdServiceBrowser, DISABLED_Init) { - // Arrange - MockTransportAdapterController controller; - DnssdServiceBrowser dnssd_service_browser(&controller); - // Check values after creation. Nothing is initialized - EXPECT_TRUE(NULL == dnssd_service_browser.avahi_service_browser()); - EXPECT_TRUE(NULL == dnssd_service_browser.avahi_threaded_poll()); - EXPECT_TRUE(NULL == dnssd_service_browser.avahi_client()); - // Act - const TransportAdapter::Error error = dnssd_service_browser.Init(); - ASSERT_EQ(TransportAdapter::OK, error); - - while (!dnssd_service_browser.IsInitialised()) { - sleep(0); - } - ASSERT_TRUE(dnssd_service_browser.IsInitialised()); - // Check values are initialized and threaded poll started - EXPECT_FALSE(NULL == dnssd_service_browser.avahi_service_browser()); - EXPECT_FALSE(NULL == dnssd_service_browser.avahi_threaded_poll()); - EXPECT_FALSE(NULL == dnssd_service_browser.avahi_client()); -} - -TEST(DnssdServiceBrowser, DISABLED_IsInitialized_ExpectFalse) { - // Arrange - MockTransportAdapterController controller; - DnssdServiceBrowser dnssd_service_browser(&controller); - // Check - EXPECT_FALSE(dnssd_service_browser.IsInitialised()); -} - -TEST(DnssdServiceBrowser, DISABLED_Terminate_ExpectTerminated) { - // Arrange - MockTransportAdapterController controller; - DnssdServiceBrowser dnssd_service_browser(&controller); - // Init service browser and client - const TransportAdapter::Error error = dnssd_service_browser.Init(); - ASSERT_EQ(TransportAdapter::OK, error); - - while (!dnssd_service_browser.IsInitialised()) { - sleep(0); - } - ASSERT_TRUE(dnssd_service_browser.IsInitialised()); - // Client & browser are initialized and successfully started - EXPECT_FALSE(NULL == dnssd_service_browser.avahi_service_browser()); - EXPECT_FALSE(NULL == dnssd_service_browser.avahi_threaded_poll()); - EXPECT_FALSE(NULL == dnssd_service_browser.avahi_client()); - dnssd_service_browser.Terminate(); - // Checks everything successfully terminated - EXPECT_TRUE(NULL == dnssd_service_browser.avahi_service_browser()); - EXPECT_TRUE(NULL == dnssd_service_browser.avahi_threaded_poll()); - EXPECT_TRUE(NULL == dnssd_service_browser.avahi_client()); -} - -TEST(DnssdServiceBrowser, DISABLED_Scan_ExpectNotSupported) { - // Arrange - MockTransportAdapterController controller; - DnssdServiceBrowser dnssd_service_browser(&controller); - // At this moment Scan() can only return NOT SUPPORTED value - EXPECT_EQ(TransportAdapter::NOT_SUPPORTED, dnssd_service_browser.Scan()); -} - -} // namespace transport_adapter -} // namespace transport_manager diff --git a/src/components/transport_manager/test/include/mock_application.h b/src/components/transport_manager/test/include/mock_application.h deleted file mode 100644 index 7ec71ebb1e..0000000000 --- a/src/components/transport_manager/test/include/mock_application.h +++ /dev/null @@ -1,80 +0,0 @@ -/* - * mock_application.h - * - * Copyright (c) 2013, 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. - */ - -#ifndef MOCK_APPLICATION_H_ -#define MOCK_APPLICATION_H_ - -#include <pthread.h> - -#include <sstream> -#include <string> - -#include <transport_manager/common.h> -#include <transport_manager/transport_manager.h> -#include <transport_manager/transport_adapter/transport_adapter_impl.h> -#include <transport_manager/transport_manager_impl.h> -#include "mock_device_scanner.h" - -namespace test { -namespace components { -namespace transport_manager { - -class MockDevice; -using ::transport_manager::ApplicationHandle; - -class MockApplication { - public: - const MockDevice *device; - ApplicationHandle handle; - pthread_t workerThread; - pthread_cond_t ready_cond; - pthread_mutex_t ready_mutex; - int sockfd; - bool active; - private: - std::string socket_name_; - public: - MockApplication(const MockDevice* device, ApplicationHandle id); - void Start(); - void Stop(); - const std::string &socket_name() const { - return socket_name_; - } -}; - -} // namespace transport_manager -} // namespace components -} // namespace test - -#endif /* MOCK_APPLICATION_H_ */ diff --git a/src/components/transport_manager/test/include/mock_connection.h b/src/components/transport_manager/test/include/mock_connection.h deleted file mode 100644 index 8f67107065..0000000000 --- a/src/components/transport_manager/test/include/mock_connection.h +++ /dev/null @@ -1,69 +0,0 @@ -/* - * \file mock_connection.h - * \brief - * - * Copyright (c) 2013, 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. - */ - -#ifndef APPLINK_TEST_COMPONENTS_TRANSPORTMANAGER_INCLUDE_MOCKCONNECTION_H_ -#define APPLINK_TEST_COMPONENTS_TRANSPORTMANAGER_INCLUDE_MOCKCONNECTION_H_ - -#include "transport_manager/common.h" -#include "transport_manager/error.h" -#include "transport_manager/transport_adapter/transport_adapter_impl.h" -#include "transport_manager/transport_adapter/threaded_socket_connection.h" - -using ::transport_manager::ApplicationHandle; -using ::transport_manager::DeviceHandle; -using ::transport_manager::transport_adapter::Connection; -using ::transport_manager::transport_adapter::TransportAdapterController; -using ::transport_manager::ConnectError; -using ::transport_manager::transport_adapter::ThreadedSocketConnection; -using ::transport_manager::transport_adapter::TransportAdapter; -namespace test { -namespace components { -namespace transport_manager { - -class MockTransportAdapter; - -class MockConnection : public ThreadedSocketConnection{ - public: - MockConnection(const ::transport_manager::DeviceUID& device_handle, - const ApplicationHandle& app_handle, - TransportAdapterController* adapter); - bool Establish(ConnectError **error); -}; - -} // namespace transport_manager -} // namespace components -} // namespace test - -#endif /* APPLINK_TEST_COMPONENTS_TRANSPORTMANAGER_INCLUDE_MOCKCONNECTION_H_ */ diff --git a/src/components/transport_manager/test/include/mock_connection_factory.h b/src/components/transport_manager/test/include/mock_connection_factory.h deleted file mode 100644 index afead19cb6..0000000000 --- a/src/components/transport_manager/test/include/mock_connection_factory.h +++ /dev/null @@ -1,69 +0,0 @@ -/* - * \file mock_connection_factory.h - * \brief - * - * Copyright (c) 2013, 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. - */ - -#ifndef APPLINK_TEST_COMPONENTS_TRANSPORTMANAGER_INCLUDE_MOCKCONNECTIONFACTORY_H_ -#define APPLINK_TEST_COMPONENTS_TRANSPORTMANAGER_INCLUDE_MOCKCONNECTIONFACTORY_H_ - -#include "transport_manager/transport_adapter/server_connection_factory.h" - -using ::transport_manager::ApplicationHandle; -using ::transport_manager::DeviceHandle; -using ::transport_manager::transport_adapter::TransportAdapter; -using ::transport_manager::transport_adapter::ServerConnectionFactory; - -namespace test { -namespace components { -namespace transport_manager { - -class MockTransportAdapter; - -class MockConnectionFactory : public ServerConnectionFactory { - public: - MockConnectionFactory(MockTransportAdapter *adapter); - TransportAdapter::Error Init() { return TransportAdapter::OK; } - TransportAdapter::Error CreateConnection(const ::transport_manager::DeviceUID& device_handle, - const ApplicationHandle& app_handle); - void Terminate() {} - bool IsInitialised() const { return true; } - - private: - MockTransportAdapter *controller_; -}; - -} // namespace transport_manager -} // namespace components -} // namespace test - -#endif /* APPLINK_TEST_COMPONENTS_TRANSPORTMANAGER_INCLUDE_MOCKCONNECTIONFACTORY_H_ */ diff --git a/src/components/transport_manager/test/include/mock_device.h b/src/components/transport_manager/test/include/mock_device.h deleted file mode 100644 index 1225f851d7..0000000000 --- a/src/components/transport_manager/test/include/mock_device.h +++ /dev/null @@ -1,82 +0,0 @@ -/* - * \file mock_device.h - * \brief - * - * Copyright (c) 2013, 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. - */ - -#ifndef APPLINK_TEST_COMPONENTS_TRANSPORTMANAGER_INCLUDE_MOCKDEVICE_H_ -#define APPLINK_TEST_COMPONENTS_TRANSPORTMANAGER_INCLUDE_MOCKDEVICE_H_ - -#include "transport_manager/common.h" -#include "transport_manager/transport_adapter/transport_adapter_impl.h" - -#include "gtest/gtest.h" -#include "gmock/gmock.h" -#include <transport_manager/transport_adapter/transport_adapter_impl.h> -#include <transport_manager/transport_manager_impl.h> -#include "mock_device_scanner.h" -#include "mock_application.h" - -using ::transport_manager::ApplicationList; -using ::transport_manager::transport_adapter::Device; -using ::transport_manager::transport_adapter::TransportAdapterController; - -namespace test { -namespace components { -namespace transport_manager { - -class MockDevice : public ::transport_manager::transport_adapter::Device { - - pthread_mutex_t device_started_mutex; - std::vector<MockApplication> applications_; - int applications_cnt_; - TransportAdapterController *controller_; - public: - MockDevice(const std::string& name, const std::string& id, - TransportAdapterController * controller) - : Device(name, id), - applications_cnt_(0), - controller_(controller) { - } - const ApplicationHandle addApplication(); - void Start(); - void Stop(); - bool IsSameAs(const Device* other) const; - ApplicationList GetApplicationList() const; - bool operator == (const MockDevice &other); -}; - -} // namespace transport_manager -} // namespace components -} // namespace test - -#endif /* APPLINK_TEST_COMPONENTS_TRANSPORTMANAGER_INCLUDE_MOCKDEVICE_H_ */ diff --git a/src/components/transport_manager/test/include/mock_device_scanner.h b/src/components/transport_manager/test/include/mock_device_scanner.h deleted file mode 100644 index 6ebae39a7c..0000000000 --- a/src/components/transport_manager/test/include/mock_device_scanner.h +++ /dev/null @@ -1,76 +0,0 @@ -/* - * \file mock_device_scanner.h - * \brief - * - * Copyright (c) 2013, 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. - */ - -#ifndef APPLINK_TEST_COMPONENTS_TRANSPORTMANAGER_INCLUDE_MOCKDEVICESCANNER_H_ -#define APPLINK_TEST_COMPONENTS_TRANSPORTMANAGER_INCLUDE_MOCKDEVICESCANNER_H_ - -#include "transport_manager/transport_adapter/device_scanner.h" - -using ::transport_manager::transport_adapter::TransportAdapter; -using ::transport_manager::transport_adapter::DeviceScanner; -using ::transport_manager::transport_adapter::DeviceVector; - -namespace test { -namespace components { -namespace transport_manager { - -class MockTransportAdapter; - -class MockDeviceScanner : public DeviceScanner { - public: - MockDeviceScanner(MockTransportAdapter *adapter); - void reset(); - void AddDevice(const std::string& name, const std::string& unique_id, bool start = true); - void RemoveDevice(const std::string& name); - void fail_further_search() { is_search_failed_ = true; } - - protected: - TransportAdapter::Error Init(); - TransportAdapter::Error Scan(); - void Terminate(); - bool IsInitialised() const; - - private: - MockTransportAdapter *controller_; - DeviceVector devices_; - bool is_initialized_; - bool is_search_failed_; -}; - -} // namespace transport_manager -} // namespace components -} // namespace test - -#endif /* APPLINK_TEST_COMPONENTS_TRANSPORTMANAGER_INCLUDE_MOCKDEVICESCANNER_H_ */ diff --git a/src/components/transport_manager/test/include/mock_transport_adapter.h b/src/components/transport_manager/test/include/mock_transport_adapter.h deleted file mode 100644 index 85f0da76dc..0000000000 --- a/src/components/transport_manager/test/include/mock_transport_adapter.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - * \file mock_transport_adapter.h - * \brief - * - * Copyright (c) 2013, 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. - */ - -#ifndef APPLINK_TEST_COMPONENTS_TRANSPORTMANAGER_INCLUDE_MOCKDEVICEADAPTER_H_ -#define APPLINK_TEST_COMPONENTS_TRANSPORTMANAGER_INCLUDE_MOCKDEVICEADAPTER_H_ - -#include "transport_manager/transport_adapter/transport_adapter_impl.h" - -using ::transport_manager::transport_adapter::TransportAdapterImpl; -using ::transport_manager::transport_adapter::DeviceType; - -namespace test { -namespace components { -namespace transport_manager { - -class MockDeviceScanner; - -class MockTransportAdapter : public TransportAdapterImpl { - public: - MockTransportAdapter(); - MockDeviceScanner* get_device_scanner() const; - DeviceType GetDeviceType() const { return DeviceType::UNKNOWN; } - void reset(); -}; - -} // namespace transport_manager -} // namespace components -} // namespace test - -#endif /* APPLINK_TEST_COMPONENTS_TRANSPORTMANAGER_INCLUDE_MOCKDEVICEADAPTER_H_ */ diff --git a/src/components/transport_manager/test/include/mock_transport_adapter_listener.h b/src/components/transport_manager/test/include/mock_transport_adapter_listener.h deleted file mode 100644 index 5b68cadaa3..0000000000 --- a/src/components/transport_manager/test/include/mock_transport_adapter_listener.h +++ /dev/null @@ -1,94 +0,0 @@ -/* - * \file mock_transport_adapter_listener.h - * \brief - * - * Copyright (c) 2013, 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. - */ - -#ifndef MOCK_transport_adapter_LISTENER_H_ -#define MOCK_transport_adapter_LISTENER_H_ - -#include <gmock/gmock.h> - -#include "transport_manager/transport_adapter/transport_adapter_listener.h" - -using namespace transport_manager; -using transport_manager::transport_adapter::TransportAdapter; -using transport_manager::transport_adapter::TransportAdapterListener; - -namespace test { -namespace components { -namespace transport_manager { -using namespace ::protocol_handler; - -class MockTransportAdapterListener : public TransportAdapterListener { - public: - MOCK_METHOD1(OnSearchDeviceDone, - void(const TransportAdapter* transport_adapter)); - MOCK_METHOD0(AckDevices,void()); - MOCK_METHOD2(OnSearchDeviceFailed, - void(const TransportAdapter* transport_adapter, const SearchDeviceError& error)); - MOCK_METHOD1(OnFindNewApplicationsRequest, - void(const TransportAdapter* adapter)); - MOCK_METHOD1(OnDeviceListUpdated, - void(const TransportAdapter* transport_adapter)); - MOCK_METHOD3(OnConnectDone, - void(const TransportAdapter* transport_adapter, const DeviceUID& device_handle, const ApplicationHandle& app_handle)); - MOCK_METHOD4(OnConnectFailed, - void(const TransportAdapter* transport_adapter, const DeviceUID& device_handle, const ApplicationHandle& app_handle, const ConnectError& error)); - MOCK_METHOD4(OnUnexpectedDisconnect, - void(const TransportAdapter* transport_adapter, const DeviceUID& device_handle, const ApplicationHandle& app_handle, const CommunicationError& error)); - MOCK_METHOD3(OnDisconnectDone, - void(const TransportAdapter* transport_adapter, const DeviceUID& device_handle, const ApplicationHandle& app_handle)); - MOCK_METHOD4(OnDisconnectFailed, - void(const TransportAdapter* transport_adapter, const DeviceUID& device_handle, const ApplicationHandle& app_handle, const DisconnectError& error)); - MOCK_METHOD2(OnDisconnectDeviceDone, - void(const TransportAdapter* transport_adapter, const DeviceUID& device_handle)); - MOCK_METHOD3(OnDisconnectDeviceFailed, - void(const TransportAdapter* transport_adapter, const DeviceUID& device_handle, const DisconnectDeviceError& error)); - MOCK_METHOD4(OnDataSendDone, - void(const TransportAdapter* transport_adapter, const DeviceUID& device_handle, const ApplicationHandle& app_handle, const RawMessagePtr data_container)); - MOCK_METHOD5(OnDataSendFailed, - void(const TransportAdapter* transport_adapter, const DeviceUID& device_handle, const ApplicationHandle& app_handle, const RawMessagePtr data_container, const DataSendError& error)); - MOCK_METHOD4(OnDataReceiveDone, - void(const TransportAdapter* transport_adapter, const DeviceUID& device_handle, const ApplicationHandle& app_handle, const RawMessagePtr data_container)); - MOCK_METHOD4(OnDataReceiveFailed, - void(const TransportAdapter* transport_adapter, const DeviceUID& device_handle, const ApplicationHandle& app_handle, const DataReceiveError& error)); - MOCK_METHOD3(OnCommunicationError, - void(const TransportAdapter* transport_adapter, const DeviceUID& device_handle, const ApplicationHandle& app_handle)); - MOCK_METHOD3(OnConnectRequested, void(const TransportAdapter*, const DeviceUID&, const ApplicationHandle&)); -}; - -} -} -} - -#endif /* MOCK_transport_adapter_LISTENER_H_ */ diff --git a/src/components/transport_manager/test/include/mock_transport_manager_listener.h b/src/components/transport_manager/test/include/mock_transport_manager_listener.h deleted file mode 100644 index 9518e1a92a..0000000000 --- a/src/components/transport_manager/test/include/mock_transport_manager_listener.h +++ /dev/null @@ -1,103 +0,0 @@ -/* - * \file mock_transport_adapter_listener.h - * \brief - * - * Copyright (c) 2013, 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. - */ - -#ifndef MOCK_TRANSPORT_MANAGER_LISTENER_H -#define MOCK_TRANSPORT_MANAGER_LISTENER_H - -#include <gmock/gmock.h> - -#include "transport_manager/common.h" -#include "transport_manager/info.h" -#include "transport_manager/transport_adapter/transport_adapter.h" -#include "transport_manager/transport_manager_listener.h" - -using ::transport_manager::ApplicationList; -using ::transport_manager::ApplicationHandle; -using ::transport_manager::transport_adapter::TransportAdapter; -using ::transport_manager::SearchDeviceError; -using ::transport_manager::ConnectionUID; -using ::transport_manager::ConnectError; -using ::transport_manager::DisconnectError; -using ::transport_manager::DisconnectDeviceError; -using ::transport_manager::DataSendError; -using ::transport_manager::DataReceiveError; -using ::transport_manager::CommunicationError; -using ::transport_manager::DeviceInfo; -using ::transport_manager::DeviceHandle; - -namespace test { -namespace components { -namespace transport_manager { - -class MockTransportManagerListener : - public ::transport_manager::TransportManagerListener { - public: - MOCK_METHOD1(OnDeviceListUpdated, void(const std::vector<DeviceInfo>&)); - MOCK_METHOD0(OnFindNewApplicationsRequest, void()); - MOCK_METHOD1(OnDeviceFound, void(const DeviceInfo &device_info)); - MOCK_METHOD1(OnDeviceAdded, void(const DeviceInfo &device_info)); - MOCK_METHOD1(OnDeviceRemoved, void(const DeviceInfo &device_info)); - MOCK_METHOD0(OnNoDeviceFound, void()); - MOCK_METHOD0(OnScanDevicesFinished, void()); - MOCK_METHOD1(OnScanDevicesFailed, void(const SearchDeviceError& error)); - - MOCK_METHOD2(OnConnectionEstablished, void(const DeviceInfo& device_info, - const ConnectionUID &connection_id)); - MOCK_METHOD2(OnConnectionFailed, void(const DeviceInfo& device_info, - const ConnectError& error)); - - MOCK_METHOD1(OnConnectionClosed, void(ConnectionUID connection_id)); - MOCK_METHOD2(OnConnectionClosedFailure, void (ConnectionUID connection_id, - const DisconnectError& error)); - MOCK_METHOD2(OnUnexpectedDisconnect, void (ConnectionUID connection_id, - const CommunicationError& error)); - MOCK_METHOD2(OnDeviceConnectionLost, void (const DeviceHandle& device, - const DisconnectDeviceError& error)); - MOCK_METHOD2(OnDisconnectFailed, void (const DeviceHandle& device, - const DisconnectDeviceError& error)); - - MOCK_METHOD1(OnTMMessageReceived, void(const RawMessagePtr data_container)); - MOCK_METHOD2(OnTMMessageReceiveFailed, void(ConnectionUID connection_id, - const DataReceiveError& error)); - MOCK_METHOD1(OnTMMessageSend, void(const RawMessagePtr message)); - MOCK_METHOD2(OnTMMessageSendFailed, void(const DataSendError& error, - const RawMessagePtr message)); -}; - -} // namespace transport_manager -} // namespace components -} // namespace test - -#endif /* MOCK_TRANSPORT_MANAGER_LISTENER_H */ diff --git a/src/components/transport_manager/test/include/time_metric_observer_mock.h b/src/components/transport_manager/test/include/time_metric_observer_mock.h deleted file mode 100644 index 5936f8c655..0000000000 --- a/src/components/transport_manager/test/include/time_metric_observer_mock.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (c) 2015, 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. - */ - -#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_TEST_INCLUDE_TIME_METRIC_OBSERVER_MOCK_H_ -#define SRC_COMPONENTS_TRANSPORT_MANAGER_TEST_INCLUDE_TIME_METRIC_OBSERVER_MOCK_H_ - -#include <string> -#include "gmock/gmock.h" -#include "transport_manager/time_metric_observer.h" -#include "protocol/raw_message.h" - -namespace test { -namespace components { -namespace transport_manager_test { - -class TMMetricObserverMock: public ::transport_manager::TMMetricObserver { - public: - MOCK_METHOD1(StartRawMsg, - void(const protocol_handler::RawMessage* ptr)); - MOCK_METHOD1(StopRawMsg, - void(const protocol_handler::RawMessage* ptr)); -}; -} // namespace transport_manager_test -} // namespace components -} // namespace test -#endif // SRC_COMPONENTS_TRANSPORT_MANAGER_TEST_INCLUDE_TIME_METRIC_OBSERVER_MOCK_H_ diff --git a/src/components/transport_manager/test/include/client_connection_listener_mock.h b/src/components/transport_manager/test/include/transport_manager/client_connection_listener_mock.h index 009814f531..6378e69932 100644 --- a/src/components/transport_manager/test/include/client_connection_listener_mock.h +++ b/src/components/transport_manager/test/include/transport_manager/client_connection_listener_mock.h @@ -40,7 +40,7 @@ namespace test { namespace components { namespace transport_manager_test { -class ClientConnectionListenerMock +class MockClientConnectionListener : public ::transport_manager::transport_adapter::ClientConnectionListener { public: MOCK_METHOD0( diff --git a/src/components/transport_manager/test/include/connection_mock.h b/src/components/transport_manager/test/include/transport_manager/connection_mock.h index 9e35e9a008..fbcfcb2271 100644 --- a/src/components/transport_manager/test/include/connection_mock.h +++ b/src/components/transport_manager/test/include/transport_manager/connection_mock.h @@ -42,10 +42,11 @@ namespace transport_manager_test { using namespace ::transport_manager::transport_adapter; -class ConnectionMock : public Connection { +class MockConnection : public Connection { public: - MOCK_METHOD1(SendData, TransportAdapter::Error( - ::protocol_handler::RawMessagePtr message)); + MOCK_METHOD1( + SendData, + TransportAdapter::Error(::protocol_handler::RawMessagePtr message)); MOCK_METHOD0(Disconnect, TransportAdapter::Error()); }; diff --git a/src/components/transport_manager/test/include/device_mock.h b/src/components/transport_manager/test/include/transport_manager/device_mock.h index 53a0ca53fc..aac28fac11 100644 --- a/src/components/transport_manager/test/include/device_mock.h +++ b/src/components/transport_manager/test/include/transport_manager/device_mock.h @@ -42,18 +42,18 @@ namespace test { namespace components { namespace transport_manager_test { -class DeviceMock : public ::transport_manager::transport_adapter::Device { +class MockDevice : public ::transport_manager::transport_adapter::Device { public: - DeviceMock(const std::string& name, const std::string& unique_device_id) + MockDevice(const std::string& name, const std::string& unique_device_id) : Device(name, unique_device_id) {} MOCK_CONST_METHOD1(IsSameAs, bool(const Device* other_device)); MOCK_CONST_METHOD0(GetApplicationList, std::vector<int>()); MOCK_METHOD0(Stop, void()); }; -class TCPDeviceMock : public ::transport_manager::transport_adapter::TcpDevice { +class MockTCPDevice : public ::transport_manager::transport_adapter::TcpDevice { public: - TCPDeviceMock(const uint32_t& in_addr_t, const std::string& name) + MockTCPDevice(const uint32_t& in_addr_t, const std::string& name) : TcpDevice(in_addr_t, name) {} MOCK_CONST_METHOD1(IsSameAs, bool(const Device* other_device)); MOCK_CONST_METHOD0(GetApplicationList, std::vector<int>()); diff --git a/src/components/transport_manager/test/include/device_scanner_mock.h b/src/components/transport_manager/test/include/transport_manager/device_scanner_mock.h index ea98af7f23..d751994e9a 100644 --- a/src/components/transport_manager/test/include/device_scanner_mock.h +++ b/src/components/transport_manager/test/include/transport_manager/device_scanner_mock.h @@ -40,7 +40,7 @@ namespace test { namespace components { namespace transport_manager_test { -class DeviceScannerMock +class MockDeviceScanner : public ::transport_manager::transport_adapter::DeviceScanner { public: MOCK_METHOD0( diff --git a/src/components/transport_manager/test/mock_transport_adapter.cc b/src/components/transport_manager/test/include/transport_manager/mock_telemetry_observer.h index 8612ca363b..9d4e86728b 100644 --- a/src/components/transport_manager/test/mock_transport_adapter.cc +++ b/src/components/transport_manager/test/include/transport_manager/mock_telemetry_observer.h @@ -30,28 +30,24 @@ * POSSIBILITY OF SUCH DAMAGE. */ -#include "include/mock_connection.h" -#include "include/mock_device.h" -#include "include/mock_transport_adapter.h" -#include "include/mock_device_scanner.h" -#include "include/mock_connection_factory.h" +#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TEST_MOCK_TELEMETRY_OBSERVER_H_ +#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TEST_MOCK_TELEMETRY_OBSERVER_H_ + +#include "gmock/gmock.h" +#include "transport_manager/telemetry_observer.h" namespace test { namespace components { -namespace transport_manager { - -MockTransportAdapter::MockTransportAdapter() - : TransportAdapterImpl(new MockDeviceScanner(this), - new MockConnectionFactory(this), NULL) {} - -void MockTransportAdapter::reset() { - get_device_scanner()->reset(); -} +namespace transport_manager_test { -MockDeviceScanner* MockTransportAdapter::get_device_scanner() const { - return static_cast<MockDeviceScanner*>(device_scanner_); -} +class MockTMTelemetryObserver + : public ::transport_manager::TMTelemetryObserver { + public: + MOCK_METHOD1(StartRawMsg, void(const protocol_handler::RawMessage* ptr)); + MOCK_METHOD1(StopRawMsg, void(const protocol_handler::RawMessage* ptr)); +}; -} // namespace transport_manager -} // namespace components -} // namespace test +} // transport_manager_test +} // components +} // test +#endif // SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TEST_MOCK_TELEMETRY_OBSERVER_H_ diff --git a/src/components/transport_manager/test/include/transport_manager/mock_transport_adapter_listener.h b/src/components/transport_manager/test/include/transport_manager/mock_transport_adapter_listener.h new file mode 100644 index 0000000000..c6862c19d6 --- /dev/null +++ b/src/components/transport_manager/test/include/transport_manager/mock_transport_adapter_listener.h @@ -0,0 +1,128 @@ +/* + * \file mock_transport_adapter_listener.h + * \brief + * + * Copyright (c) 2013, 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. + */ + +#ifndef MOCK_transport_adapter_LISTENER_H_ +#define MOCK_transport_adapter_LISTENER_H_ + +#include <gmock/gmock.h> + +#include "transport_manager/transport_adapter/transport_adapter_listener.h" + +using namespace transport_manager; +using transport_manager::transport_adapter::TransportAdapter; +using transport_manager::transport_adapter::TransportAdapterListener; + +namespace test { +namespace components { +namespace transport_manager_test { +using namespace ::protocol_handler; + +class MockTransportAdapterListener : public TransportAdapterListener { + public: + MOCK_METHOD1(OnSearchDeviceDone, + void(const TransportAdapter* transport_adapter)); + MOCK_METHOD0(AckDevices, void()); + MOCK_METHOD2(OnSearchDeviceFailed, + void(const TransportAdapter* transport_adapter, + const SearchDeviceError& error)); + MOCK_METHOD1(OnFindNewApplicationsRequest, + void(const TransportAdapter* adapter)); + MOCK_METHOD1(OnDeviceListUpdated, + void(const TransportAdapter* transport_adapter)); + MOCK_METHOD3(OnConnectDone, + void(const TransportAdapter* transport_adapter, + const DeviceUID& device_handle, + const ApplicationHandle& app_handle)); + MOCK_METHOD4(OnConnectFailed, + void(const TransportAdapter* transport_adapter, + const DeviceUID& device_handle, + const ApplicationHandle& app_handle, + const ConnectError& error)); + MOCK_METHOD4(OnUnexpectedDisconnect, + void(const TransportAdapter* transport_adapter, + const DeviceUID& device_handle, + const ApplicationHandle& app_handle, + const CommunicationError& error)); + MOCK_METHOD3(OnDisconnectDone, + void(const TransportAdapter* transport_adapter, + const DeviceUID& device_handle, + const ApplicationHandle& app_handle)); + MOCK_METHOD4(OnDisconnectFailed, + void(const TransportAdapter* transport_adapter, + const DeviceUID& device_handle, + const ApplicationHandle& app_handle, + const DisconnectError& error)); + MOCK_METHOD2(OnDisconnectDeviceDone, + void(const TransportAdapter* transport_adapter, + const DeviceUID& device_handle)); + MOCK_METHOD3(OnDisconnectDeviceFailed, + void(const TransportAdapter* transport_adapter, + const DeviceUID& device_handle, + const DisconnectDeviceError& error)); + MOCK_METHOD4(OnDataSendDone, + void(const TransportAdapter* transport_adapter, + const DeviceUID& device_handle, + const ApplicationHandle& app_handle, + const RawMessagePtr data_container)); + MOCK_METHOD5(OnDataSendFailed, + void(const TransportAdapter* transport_adapter, + const DeviceUID& device_handle, + const ApplicationHandle& app_handle, + const RawMessagePtr data_container, + const DataSendError& error)); + MOCK_METHOD4(OnDataReceiveDone, + void(const TransportAdapter* transport_adapter, + const DeviceUID& device_handle, + const ApplicationHandle& app_handle, + const RawMessagePtr data_container)); + MOCK_METHOD4(OnDataReceiveFailed, + void(const TransportAdapter* transport_adapter, + const DeviceUID& device_handle, + const ApplicationHandle& app_handle, + const DataReceiveError& error)); + MOCK_METHOD3(OnCommunicationError, + void(const TransportAdapter* transport_adapter, + const DeviceUID& device_handle, + const ApplicationHandle& app_handle)); + MOCK_METHOD3(OnConnectRequested, + void(const TransportAdapter*, + const DeviceUID&, + const ApplicationHandle&)); +}; +} +} +} + +#endif /* MOCK_transport_adapter_LISTENER_H_ */ diff --git a/src/components/transport_manager/test/include/transport_manager/mock_transport_manager_impl.h b/src/components/transport_manager/test/include/transport_manager/mock_transport_manager_impl.h new file mode 100644 index 0000000000..e94586a856 --- /dev/null +++ b/src/components/transport_manager/test/include/transport_manager/mock_transport_manager_impl.h @@ -0,0 +1,71 @@ +/* + * Copyright (c) 2016, 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. + */ + +#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_TEST_INCLUDE_TRANSPORT_MANAGER_MOCK_TRANSPORT_MANAGER_IMPL_H_ +#define SRC_COMPONENTS_TRANSPORT_MANAGER_TEST_INCLUDE_TRANSPORT_MANAGER_MOCK_TRANSPORT_MANAGER_IMPL_H_ + +#include "gmock/gmock.h" +#include "config_profile/profile.h" +#include "transport_manager/transport_manager_impl.h" +#include "transport_manager/mock_transport_manager_settings.h" +#include "transport_manager/transport_manager_settings.h" + +namespace test { +namespace components { +namespace transport_manager_test { + +class MockTransportManagerImpl + : public ::transport_manager::TransportManagerImpl { + public: + explicit MockTransportManagerImpl(MockTransportManagerSettings& settings) + : ::transport_manager::TransportManagerImpl(settings) {} + + int TestReceiveEventFromDevice( + const ::transport_manager::TransportAdapterEvent& event) { + return ::transport_manager::TransportManagerImpl::ReceiveEventFromDevice( + event); + } + + void TestHandle(::transport_manager::TransportAdapterEvent test_event) { + Handle(test_event); + } + + void TestHandle(::protocol_handler::RawMessagePtr msg) { + Handle(msg); + } +}; + +} // namespace transport_manager_test +} // namespace components +} // namespace test + +#endif // SRC_COMPONENTS_TRANSPORT_MANAGER_TEST_INCLUDE_TRANSPORT_MANAGER_MOCK_TRANSPORT_MANAGER_IMPL_H_ diff --git a/src/components/transport_manager/test/include/raw_message_matcher.h b/src/components/transport_manager/test/include/transport_manager/raw_message_matcher.h index 89f1cdd182..8f20afff60 100644 --- a/src/components/transport_manager/test/include/raw_message_matcher.h +++ b/src/components/transport_manager/test/include/transport_manager/raw_message_matcher.h @@ -56,7 +56,7 @@ class RawMessageMatcher : public MatcherInterface<RawMessagePtr> { explicit RawMessageMatcher(RawMessagePtr ptr); virtual bool MatchAndExplain(const RawMessagePtr ptr, - MatchResultListener* listener) const; + MatchResultListener* listener) const; virtual void DescribeTo(::std::ostream* os) const; virtual void DescribeNegationTo(::std::ostream* os) const; @@ -72,4 +72,5 @@ inline const Matcher<RawMessagePtr> RawMessageEq(RawMessagePtr msg) { } // namespace components } // namespace test -#endif /* APPLINK_TEST_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_RAW_MESSAGE_MATCHER_H_ */ +#endif /* APPLINK_TEST_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_RAW_MESSAGE_MATCHER_H_ \ + */ diff --git a/src/components/transport_manager/test/include/server_connection_factory_mock.h b/src/components/transport_manager/test/include/transport_manager/server_connection_factory_mock.h index cbf922e464..795d9492fc 100644 --- a/src/components/transport_manager/test/include/server_connection_factory_mock.h +++ b/src/components/transport_manager/test/include/transport_manager/server_connection_factory_mock.h @@ -40,14 +40,16 @@ namespace test { namespace components { namespace transport_manager_test { -class ServerConnectionFactoryMock : public ::transport_manager::transport_adapter::ServerConnectionFactory { +class MockServerConnectionFactory + : public ::transport_manager::transport_adapter::ServerConnectionFactory { public: - MOCK_METHOD0(Init, ::transport_manager::transport_adapter::TransportAdapter::Error()); + MOCK_METHOD0( + Init, ::transport_manager::transport_adapter::TransportAdapter::Error()); MOCK_METHOD0(Terminate, void()); MOCK_CONST_METHOD0(IsInitialised, bool()); MOCK_METHOD2(CreateConnection, - ::transport_manager::transport_adapter::TransportAdapter::Error(const std::string&, - const int& app_handle)); + ::transport_manager::transport_adapter::TransportAdapter::Error( + const std::string&, const int& app_handle)); }; } // namespace transport_manager_test diff --git a/src/components/transport_manager/test/include/transport_manager/tcp/mock_tcp_transport_adapter.h b/src/components/transport_manager/test/include/transport_manager/tcp/mock_tcp_transport_adapter.h new file mode 100644 index 0000000000..432e4f3fa0 --- /dev/null +++ b/src/components/transport_manager/test/include/transport_manager/tcp/mock_tcp_transport_adapter.h @@ -0,0 +1,73 @@ +/* + * Copyright (c) 2015, 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. + */ + +#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_TEST_INCLUDE_TRANSPORT_MANAGER_TCP_MOCK_TCP_TRANSPORT_ADAPTER_H_ +#define SRC_COMPONENTS_TRANSPORT_MANAGER_TEST_INCLUDE_TRANSPORT_MANAGER_TCP_MOCK_TCP_TRANSPORT_ADAPTER_H_ + +#include "gmock/gmock.h" +#include "transport_manager/tcp/tcp_transport_adapter.h" +#include "transport_manager/transport_manager_settings.h" + +namespace test { +namespace components { +namespace transport_manager_test { + +using namespace ::transport_manager::transport_adapter; + +class MockTCPTransportAdapter : public TcpTransportAdapter { + public: + MockTCPTransportAdapter( + uint16_t port, + resumption::LastState& last_state, + const transport_manager::TransportManagerSettings& settings) + : TcpTransportAdapter(port, last_state, settings) {} + MOCK_CONST_METHOD2(FindEstablishedConnection, + ConnectionSPtr(const DeviceUID& device_handle, + const ApplicationHandle& app_handle)); + + MOCK_CONST_METHOD1(FindDevice, DeviceSptr(const DeviceUID& device_handle)); + MOCK_METHOD2(Connect, + TransportAdapter::Error(const DeviceUID& device_handle, + const ApplicationHandle& app_handle)); + void CallStore() { + Store(); + } + bool CallRestore() { + return Restore(); + } +}; + +} // namespace transport_manager_test +} // namespace components +} // namespace test + +#endif // SRC_COMPONENTS_TRANSPORT_MANAGER_TEST_INCLUDE_TRANSPORT_MANAGER_TCP_MOCK_TCP_TRANSPORT_ADAPTER_H_ 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 new file mode 100644 index 0000000000..c576c3de6c --- /dev/null +++ b/src/components/transport_manager/test/include/transport_manager/transport_adapter/mock_transport_adapter_impl.h @@ -0,0 +1,85 @@ +/* + * Copyright (c) 2015, 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. + */ + +#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_TEST_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_ADAPTER_MOCK_TRANSPORT_ADAPTER_IMPL_H_ +#define SRC_COMPONENTS_TRANSPORT_MANAGER_TEST_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_ADAPTER_MOCK_TRANSPORT_ADAPTER_IMPL_H_ + +#include "gmock/gmock.h" +#include "transport_manager/transport_adapter/transport_adapter_impl.h" +#include "transport_manager/transport_manager_settings.h" + +using ::transport_manager::transport_adapter::TransportAdapterImpl; +using ::transport_manager::transport_adapter::DeviceScanner; +using ::transport_manager::transport_adapter::ServerConnectionFactory; +using ::transport_manager::transport_adapter::ClientConnectionListener; +using ::transport_manager::transport_adapter::DeviceType; +using ::transport_manager::transport_adapter::ConnectionSPtr; +using ::transport_manager::DeviceUID; +using ::transport_manager::ApplicationHandle; + +namespace test { +namespace components { +namespace transport_manager_test { + +class MockTransportAdapterImpl : public TransportAdapterImpl { + public: + MockTransportAdapterImpl( + DeviceScanner* device_scanner, + ServerConnectionFactory* server_connection_factory, + ClientConnectionListener* client_connection_listener, + resumption::LastState& last_state, + const transport_manager::TransportManagerSettings& settings) + : TransportAdapterImpl(device_scanner, + server_connection_factory, + client_connection_listener, + last_state, + settings) {} + + ConnectionSPtr FindStatedConnection(const DeviceUID& device_handle, + const ApplicationHandle& app_handle) { + return this->FindEstablishedConnection(device_handle, app_handle); + } + virtual ~MockTransportAdapterImpl(){}; + + virtual DeviceType GetDeviceType() const { + return UNKNOWN; + } + + MOCK_CONST_METHOD0(Store, void()); + MOCK_METHOD0(Restore, bool()); +}; + +} // namespace transport_manager_test +} // namespace components +} // namespace test + +#endif // SRC_COMPONENTS_TRANSPORT_MANAGER_TEST_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_ADAPTER_MOCK_TRANSPORT_ADAPTER_IMPL_H_ diff --git a/src/components/transport_manager/test/include/transport_adapter_controller_mock.h b/src/components/transport_manager/test/include/transport_manager/transport_adapter_controller_mock.h index c0c7155e43..1dc6839ac9 100644 --- a/src/components/transport_manager/test/include/transport_adapter_controller_mock.h +++ b/src/components/transport_manager/test/include/transport_manager/transport_adapter_controller_mock.h @@ -51,33 +51,42 @@ class TransportAdapterControllerMock : public TransportAdapterController { MOCK_METHOD0(FindNewApplicationsRequest, void()); MOCK_METHOD1(SearchDeviceFailed, void(const SearchDeviceError& error)); MOCK_CONST_METHOD1(FindDevice, DeviceSptr(const DeviceUID& device_handle)); - MOCK_CONST_METHOD3(FindDevice, void(ConnectionSPtr connection, - const DeviceUID& device_handle, - const ApplicationHandle& app_handle)); - MOCK_METHOD2(ConnectDone, void(const DeviceUID& device_handle, - const ApplicationHandle& app_handle)); - MOCK_METHOD3(ConnectFailed, void(const DeviceUID& device_handle, - const ApplicationHandle& app_handle, - const ConnectError& error)); - MOCK_METHOD2(ConnectionFinished, void(const DeviceUID& device_handle, - const ApplicationHandle& app_handle)); - MOCK_METHOD3(ConnectionAborted, void(const DeviceUID& device_handle, - const ApplicationHandle& app_handle, - const CommunicationError& error)); - MOCK_METHOD2(DeviceDisconnected, void(const DeviceUID& device_handle, - const DisconnectDeviceError& error)); - MOCK_METHOD2(DisconnectDone, void(const DeviceUID& device_handle, - const ApplicationHandle& app_handle)); + MOCK_CONST_METHOD3(FindDevice, + void(ConnectionSPtr connection, + const DeviceUID& device_handle, + const ApplicationHandle& app_handle)); + MOCK_METHOD2(ConnectDone, + void(const DeviceUID& device_handle, + const ApplicationHandle& app_handle)); + MOCK_METHOD3(ConnectFailed, + void(const DeviceUID& device_handle, + const ApplicationHandle& app_handle, + const ConnectError& error)); + MOCK_METHOD2(ConnectionFinished, + void(const DeviceUID& device_handle, + const ApplicationHandle& app_handle)); + MOCK_METHOD3(ConnectionAborted, + void(const DeviceUID& device_handle, + const ApplicationHandle& app_handle, + const CommunicationError& error)); + MOCK_METHOD2(DeviceDisconnected, + void(const DeviceUID& device_handle, + const DisconnectDeviceError& error)); + MOCK_METHOD2(DisconnectDone, + void(const DeviceUID& device_handle, + const ApplicationHandle& app_handle)); MOCK_METHOD3(DataReceiveDone, void(const DeviceUID& device_handle, const ApplicationHandle& app_handle, ::protocol_handler::RawMessagePtr message)); - MOCK_METHOD3(DataReceiveFailed, void(const DeviceUID& device_handle, - const ApplicationHandle& app_handle, - const DataReceiveError& error)); - MOCK_METHOD3(DataSendDone, void(const DeviceUID& device_handle, - const ApplicationHandle& app_handle, - ::protocol_handler::RawMessagePtr message)); + MOCK_METHOD3(DataReceiveFailed, + void(const DeviceUID& device_handle, + const ApplicationHandle& app_handle, + const DataReceiveError& error)); + MOCK_METHOD3(DataSendDone, + void(const DeviceUID& device_handle, + const ApplicationHandle& app_handle, + ::protocol_handler::RawMessagePtr message)); MOCK_METHOD3(DataReceiveFailed, void(const DeviceUID& device_handle, const ApplicationHandle& app_handle, diff --git a/src/components/transport_manager/test/include/transport_adapter_listener_mock.h b/src/components/transport_manager/test/include/transport_manager/transport_adapter_listener_mock.h index 88b5cf4b66..a2577ad9ee 100644 --- a/src/components/transport_manager/test/include/transport_adapter_listener_mock.h +++ b/src/components/transport_manager/test/include/transport_manager/transport_adapter_listener_mock.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, Ford Motor Company + * Copyright (c) 2016, Ford Motor Company * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -40,11 +40,21 @@ namespace test { namespace components { namespace transport_manager_test { -using namespace transport_manager; -using transport_adapter::TransportAdapter; -using transport_adapter::TransportAdapterListener; +namespace tm = transport_manager; +namespace ta = tm::transport_adapter; +using ta::TransportAdapter; +using ta::TransportAdapterListener; +using tm::SearchDeviceError; +using tm::DeviceUID; +using tm::ApplicationHandle; +using tm::ConnectError; +using tm::CommunicationError; +using tm::DisconnectError; +using tm::DisconnectDeviceError; +using tm::DataSendError; +using tm::DataReceiveError; -class TransportAdapterListenerMock : public TransportAdapterListener { +class MockTransportAdapterListener : public TransportAdapterListener { public: MOCK_METHOD1(OnSearchDeviceDone, void(const TransportAdapter* transport_adapter)); diff --git a/src/components/transport_manager/test/include/transport_adapter_mock.h b/src/components/transport_manager/test/include/transport_manager/transport_adapter_mock.h index 86e044d13b..d12741f49a 100644 --- a/src/components/transport_manager/test/include/transport_adapter_mock.h +++ b/src/components/transport_manager/test/include/transport_manager/transport_adapter_mock.h @@ -40,7 +40,7 @@ namespace test { namespace components { namespace transport_manager_test { -class TransportAdapterMock +class MockTransportAdapter : public ::transport_manager::transport_adapter::TransportAdapter { public: MOCK_CONST_METHOD0(GetDeviceType, @@ -73,6 +73,9 @@ class TransportAdapterMock MOCK_METHOD0( StopClientListening, ::transport_manager::transport_adapter::TransportAdapter::Error()); + MOCK_METHOD2(RemoveFinalizedConnection, + void(const ::transport_manager::DeviceUID& device_handle, + const ::transport_manager::ApplicationHandle& app_handle)); MOCK_METHOD2(Disconnect, ::transport_manager::transport_adapter::TransportAdapter::Error( const ::transport_manager::DeviceUID& device_handle, @@ -92,9 +95,10 @@ class TransportAdapterMock DeviceName, std::string(const ::transport_manager::DeviceUID& device_handle)); -#ifdef TIME_TESTER - MOCK_METHOD0(GetTimeMetricObserver, ::transport_manager::TMMetricObserver*()); -#endif // TIME_TESTER +#ifdef TELEMETRY_MONITOR + MOCK_METHOD0(GetTelemetryObserver, + ::transport_manager::TMTelemetryObserver*()); +#endif // TELEMETRY_MONITOR }; } // namespace transport_manager_test diff --git a/src/components/transport_manager/test/include/transport_manager_impl_mock.h b/src/components/transport_manager/test/include/transport_manager/transport_manager_impl_mock.h index bb73f1fa49..e5b0468968 100644 --- a/src/components/transport_manager/test/include/transport_manager_impl_mock.h +++ b/src/components/transport_manager/test/include/transport_manager/transport_manager_impl_mock.h @@ -51,4 +51,4 @@ class TransportManagerImplMock : public TransportManagerImpl { } // namespace components } // namespace test -#endif // APPLINK_TEST_COMPONENTS_TRANSPORTMANAGER_INCLUDE_TRANSPORT_MANAGER_IMPL_MOCK_H_ +#endif // APPLINK_TEST_COMPONENTS_TRANSPORTMANAGER_INCLUDE_TRANSPORT_MANAGER_IMPL_MOCK_H_ diff --git a/src/components/transport_manager/test/include/transport_manager_listener_mock.h b/src/components/transport_manager/test/include/transport_manager/transport_manager_listener_mock.h index 29758159f1..30f602119d 100644 --- a/src/components/transport_manager/test/include/transport_manager_listener_mock.h +++ b/src/components/transport_manager/test/include/transport_manager/transport_manager_listener_mock.h @@ -48,38 +48,40 @@ using ::protocol_handler::RawMessagePtr; class TransportManagerListenerMock : public TransportManagerListener { public: - MOCK_METHOD1(OnDeviceListUpdated, void(const std::vector<DeviceInfo>&)); + MOCK_METHOD1(OnDeviceListUpdated, + void(const std::vector<DeviceInfo>& device_info)); MOCK_METHOD0(OnFindNewApplicationsRequest, void()); MOCK_METHOD1(OnDeviceFound, void(const DeviceInfo& device_info)); MOCK_METHOD1(OnDeviceAdded, void(const DeviceInfo& device_info)); MOCK_METHOD1(OnDeviceRemoved, void(const DeviceInfo& device_info)); - MOCK_METHOD0(OnNoDeviceFound, void()); MOCK_METHOD0(OnScanDevicesFinished, void()); MOCK_METHOD1(OnScanDevicesFailed, void(const SearchDeviceError& error)); - MOCK_METHOD2(OnConnectionEstablished, void(const DeviceInfo& device_info, - const ConnectionUID& connection_id)); + const ConnectionUID connection_id)); MOCK_METHOD2(OnConnectionFailed, void(const DeviceInfo& device_info, const ConnectError& error)); - - MOCK_METHOD1(OnConnectionClosed, void(ConnectionUID connection_id)); + MOCK_METHOD1(OnConnectionClosed, void(const ConnectionUID connection_id)); + MOCK_METHOD2(OnUnexpectedDisconnect, + void(const ConnectionUID connection_id, + const CommunicationError& error)); MOCK_METHOD2(OnConnectionClosedFailure, - void(ConnectionUID connection_id, const DisconnectError& error)); - MOCK_METHOD2(OnUnexpectedDisconnect, void(ConnectionUID connection_id, - const CommunicationError& error)); + void(const ConnectionUID connection_id, + const DisconnectError& error)); MOCK_METHOD2(OnDeviceConnectionLost, void(const DeviceHandle& device, const DisconnectDeviceError& error)); - MOCK_METHOD2(OnDisconnectFailed, void(const DeviceHandle& device, - const DisconnectDeviceError& error)); - - MOCK_METHOD1(OnTMMessageReceived, void(const RawMessagePtr data_container)); - MOCK_METHOD2(OnTMMessageReceiveFailed, void(ConnectionUID connection_id, - const DataReceiveError& error)); - MOCK_METHOD1(OnTMMessageSend, void(const RawMessagePtr message)); + MOCK_METHOD2(OnDisconnectFailed, + void(const DeviceHandle& device, + const DisconnectDeviceError& error)); + MOCK_METHOD1(OnTMMessageReceived, + void(const ::protocol_handler::RawMessagePtr message)); + MOCK_METHOD1(OnTMMessageReceiveFailed, void(const DataReceiveError& error)); + MOCK_METHOD1(OnTMMessageSend, + void(const ::protocol_handler::RawMessagePtr message)); MOCK_METHOD2(OnTMMessageSendFailed, - void(const DataSendError& error, const RawMessagePtr message)); + void(const DataSendError& error, + const ::protocol_handler::RawMessagePtr message)); }; } // namespace transport_manager_test diff --git a/src/components/transport_manager/test/include/transport_manager_mock.h b/src/components/transport_manager/test/include/transport_manager_mock.h deleted file mode 100644 index 6593f992de..0000000000 --- a/src/components/transport_manager/test/include/transport_manager_mock.h +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Copyright (c) 2014, 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. - */ - -#ifndef TEST_COMPONENTS_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_MANAGER_MOCK_H_ -#define TEST_COMPONENTS_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_MANAGER_MOCK_H_ - -#include <gmock/gmock.h> -#include <string> -#include "transport_manager/transport_manager.h" -#include "transport_manager/transport_adapter/transport_adapter_event.h" - -namespace test { -namespace components { -namespace transport_manager_test { - -using ::transport_manager::DeviceHandle; -using ::transport_manager::ConnectionUID; -using ::transport_manager::transport_adapter::TransportAdapter; -using ::transport_manager::TransportAdapterEvent; -using ::transport_manager::TransportManagerListener; -/* - * MOCK implementation of ::transport_manager::TransportManager interface - */ -class TransportManagerMock: public ::transport_manager::TransportManager { - public: - MOCK_METHOD0(Init, - int()); - MOCK_METHOD0(Reinit, - int()); - MOCK_METHOD0(SearchDevices, - int()); - MOCK_METHOD1(ConnectDevice, - int(const DeviceHandle &)); - MOCK_METHOD1(DisconnectDevice, - int(const DeviceHandle &)); - MOCK_METHOD1(Disconnect, - int(const ConnectionUID &)); - MOCK_METHOD1(DisconnectForce, - int(const ConnectionUID &)); - MOCK_METHOD1(SendMessageToDevice, - int(const ::protocol_handler::RawMessagePtr)); - MOCK_METHOD1(ReceiveEventFromDevice, - int(const TransportAdapterEvent&)); - MOCK_METHOD1(AddTransportAdapter, - int(TransportAdapter *)); - MOCK_METHOD1(AddEventListener, - int(TransportManagerListener *)); - MOCK_METHOD0(Stop, - int()); - MOCK_METHOD1(RemoveDevice, - int(const DeviceHandle &)); - MOCK_CONST_METHOD1(Visibility, - int(const bool &)); -}; -} // namespace transport_manager_test -} // namespace components -} // namespace test -#endif // TEST_COMPONENTS_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_MANAGER_MOCK_H_ diff --git a/src/components/transport_manager/test/mock_application.cc b/src/components/transport_manager/test/mock_application.cc deleted file mode 100644 index 72f99cb744..0000000000 --- a/src/components/transport_manager/test/mock_application.cc +++ /dev/null @@ -1,147 +0,0 @@ -/* - * Copyright (c) 2014, 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 <pthread.h> -#include <sys/socket.h> -#include <sys/un.h> - -#include "include/mock_application.h" -#include "include/mock_device.h" - -namespace { - -struct workerData { - int sockfd; -}; - -void *applicationWorker(void *p) { - workerData *data = static_cast<workerData*>(p); - char *buf = new char[2 * 1024 * 1024]; - ssize_t len; - - while (true) { - len = recv(data->sockfd, buf, 2 * 1024 * 1024, 0); - if (len == 0) - break; - send(data->sockfd, buf, len, 0); - } - delete[] buf; - delete data; - return NULL; -} - -void * applicationListener(void *p) { - using test::components::transport_manager::MockApplication; - MockApplication *app = static_cast<MockApplication*>(p); - - unlink(app->socket_name().c_str()); - - app->sockfd = socket(AF_UNIX, SOCK_STREAM, 0); - if (app->sockfd == -1) { - // TODO: indicate error - return NULL; - } - sockaddr_un my_addr; - memset(&my_addr, 0, sizeof(my_addr)); - strcpy(my_addr.sun_path, app->socket_name().c_str()); - my_addr.sun_family = AF_UNIX; - int res = bind(app->sockfd, reinterpret_cast<sockaddr*>(&my_addr), - sizeof(my_addr)); - if (res == -1) { - return NULL; - } - - res = listen(app->sockfd, 5); - if (res == -1) { - return NULL; - } - - pthread_mutex_lock(&app->ready_mutex); - app->active = true; - pthread_cond_signal(&app->ready_cond); - pthread_mutex_unlock(&app->ready_mutex); - - while (app->active) { - socklen_t addr_size; - sockaddr peer_addr; - - int peer_socket = accept(app->sockfd, &peer_addr, &addr_size); - if (peer_socket != -1) { - pthread_t t; - workerData* data = new workerData(); - data->sockfd = peer_socket; - pthread_create(&t, NULL, &applicationWorker, data); - } - } - - unlink(app->socket_name().c_str()); - - return NULL; -} -} - -namespace test { -namespace components { -namespace transport_manager { - -MockApplication::MockApplication(const MockDevice *device, ApplicationHandle id) - : device(device), - handle(id), - workerThread(0), - sockfd(-1), - active(false) { - std::ostringstream oss; - oss << "mockDevice" << device->unique_device_id() << "-" << id; - socket_name_ = oss.str(); -} - -void MockApplication::Start() { - - pthread_cond_init(&ready_cond, NULL); - pthread_mutex_init(&ready_mutex, NULL); - - pthread_mutex_lock(&ready_mutex); - pthread_create(&workerThread, NULL, &applicationListener, this); - pthread_cond_wait(&ready_cond, &ready_mutex); - pthread_mutex_unlock(&ready_mutex); -} - -void MockApplication::Stop() { - active = false; - shutdown(sockfd, SHUT_RDWR); - close(sockfd); - pthread_join(workerThread, NULL); -} - -} // namespace transport_manager -} // namespace components -} // namespace test diff --git a/src/components/transport_manager/test/mock_connection.cc b/src/components/transport_manager/test/mock_connection.cc deleted file mode 100644 index 8f385764a0..0000000000 --- a/src/components/transport_manager/test/mock_connection.cc +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Copyright (c) 2014, 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 <cstring> - -#include <sys/socket.h> -#include <sys/un.h> -#include <sstream> -#include "transport_manager/common.h" -#include "include/mock_connection.h" - -#include <algorithm> - -#include "include/mock_transport_adapter.h" - -using ::transport_manager::transport_adapter::TransportAdapterController; - -namespace test { -namespace components { -namespace transport_manager { - -MockConnection::MockConnection(const ::transport_manager::DeviceUID& device_handle, - const ApplicationHandle& app_handle, - TransportAdapterController* controller) - : ThreadedSocketConnection(device_handle, app_handle, controller) { -} - -bool MockConnection::Establish(ConnectError **error) { - int peer_sock = socket(AF_UNIX, SOCK_STREAM, 0); - sockaddr_un my_addr; - memset(&my_addr, 0, sizeof(my_addr)); - std::ostringstream iss; - iss << "mockDevice" << device_handle() << "-" << application_handle(); - strcpy(my_addr.sun_path, iss.str().c_str()); - my_addr.sun_family = AF_UNIX; - int res = ::connect(peer_sock, reinterpret_cast<sockaddr*>(&my_addr), - sizeof(my_addr)); - if (res != -1) { - set_socket(peer_sock); - return true; - } - *error = new ConnectError(); - return false; -} - -} // namespace transport_manager -} // namespace components -} // namespace test - diff --git a/src/components/transport_manager/test/mock_connection_factory.cc b/src/components/transport_manager/test/mock_connection_factory.cc deleted file mode 100644 index 392ad79511..0000000000 --- a/src/components/transport_manager/test/mock_connection_factory.cc +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (c) 2014, 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/mock_connection.h" -#include "include/mock_connection_factory.h" - -#include <algorithm> - -#include "include/mock_device.h" -#include "include/mock_transport_adapter.h" - -using ::transport_manager::transport_adapter::DeviceSptr; -using ::transport_manager::ConnectError; - -namespace test { -namespace components { -namespace transport_manager { - -MockConnectionFactory::MockConnectionFactory(MockTransportAdapter *controller) - : controller_(controller) {} - -TransportAdapter::Error MockConnectionFactory::CreateConnection( - const ::transport_manager::DeviceUID& device_handle, - const ApplicationHandle& app_handle) { - - MockConnection *conn = new MockConnection(device_handle, app_handle, controller_); - conn->Start(); - return TransportAdapter::OK; -} - -} // namespace transport_manager -} // namespace components -} // namespace test diff --git a/src/components/transport_manager/test/mock_device.cc b/src/components/transport_manager/test/mock_device.cc deleted file mode 100644 index 8e346e9d54..0000000000 --- a/src/components/transport_manager/test/mock_device.cc +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright (c) 2014, 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/mock_device.h" - -namespace test { -namespace components { -namespace transport_manager { - -const ApplicationHandle MockDevice::addApplication() { - MockApplication app(this, applications_cnt_++); - app.device = this; - app.active = false; - applications_.push_back(app); - return app.handle; -} - -void MockDevice::Start() { - for (std::vector<MockApplication>::iterator it = applications_.begin(); - it != applications_.end(); - ++it) { - it->Start(); - } -} - -void MockDevice::Stop() { - for (std::vector<MockApplication>::iterator it = applications_.begin(); - it != applications_.end(); - ++it) { - it->Stop(); - } -} - -bool MockDevice::IsSameAs(const Device* other) const { - return unique_device_id() == other->unique_device_id(); -} - -static ApplicationHandle get_handle(const MockApplication& app) { - return app.handle; -} - -ApplicationList MockDevice::GetApplicationList() const { - ApplicationList rc(applications_.size()); - std::transform( - applications_.begin(), applications_.end(), rc.begin(), - &get_handle); - return rc; -} - -bool MockDevice::operator ==(const MockDevice& other) { - return IsSameAs(&other); -} - -} // namespace transport_manager -} // namespace components -} // namespace test diff --git a/src/components/transport_manager/test/mock_device_scanner.cc b/src/components/transport_manager/test/mock_device_scanner.cc deleted file mode 100644 index a243162668..0000000000 --- a/src/components/transport_manager/test/mock_device_scanner.cc +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Copyright (c) 2014, 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/mock_device_scanner.h" -#include "include/mock_transport_adapter.h" -#include "include/mock_device.h" - -using ::transport_manager::SearchDeviceError; - -namespace test { -namespace components { -namespace transport_manager { - -MockDeviceScanner::MockDeviceScanner(MockTransportAdapter *controller) - : controller_(controller), - is_initialized_(false), - is_search_failed_(false) { -} - -TransportAdapter::Error MockDeviceScanner::Init() { - is_initialized_ = true; - return TransportAdapter::OK; -} - -TransportAdapter::Error MockDeviceScanner::Scan() { - if (is_search_failed_) { - controller_->SearchDeviceFailed(SearchDeviceError()); - } else { - controller_->SearchDeviceDone(devices_); - } - return TransportAdapter::OK; -} - -void MockDeviceScanner::Terminate() { -} - -void MockDeviceScanner::reset() { - is_search_failed_ = false; - for (DeviceVector::iterator it = devices_.begin(); - it != devices_.end(); - ++it) { - static_cast<MockDevice*>(it->get())->Stop(); - } - devices_.clear(); -} - -bool MockDeviceScanner::IsInitialised() const { - return is_initialized_; -} - -void MockDeviceScanner::AddDevice(const std::string& name, - const std::string& unique_id, bool start) { - MockDevice* dev = new MockDevice(name, unique_id, controller_); - dev->addApplication(); - if (start) { - dev->Start(); - } - devices_.push_back(dev); -} - -void MockDeviceScanner::RemoveDevice(const std::string& name) { - for (DeviceVector::iterator t = devices_.begin(); t != devices_.end(); ++t) { - if ((*t)->name() == name) { - devices_.erase(t); - break; - } - } -} - -} // namespace transport_manager -} // namespace components -} // namespace test - -// vim: set ts=2 sw=2 et: diff --git a/src/components/transport_manager/test/raw_message_matcher.cc b/src/components/transport_manager/test/raw_message_matcher.cc index 289009d0c1..130ddc96c8 100644 --- a/src/components/transport_manager/test/raw_message_matcher.cc +++ b/src/components/transport_manager/test/raw_message_matcher.cc @@ -37,25 +37,25 @@ namespace test { namespace components { namespace transport_manager { -RawMessageMatcher::RawMessageMatcher(RawMessagePtr ptr) - : ptr_(ptr) {} +RawMessageMatcher::RawMessageMatcher(RawMessagePtr ptr) : ptr_(ptr) {} bool RawMessageMatcher::MatchAndExplain(const RawMessagePtr msg, - MatchResultListener* listener) const { + MatchResultListener* listener) const { if (msg->data_size() != ptr_->data_size()) { - return ::std::equal(msg->data(), msg->data() + msg->data_size(), ptr_->data()); + return ::std::equal( + msg->data(), msg->data() + msg->data_size(), ptr_->data()); } else return false; } void RawMessageMatcher::DescribeTo(::std::ostream* os) const { - *os << "data_ is " ; + *os << "data_ is "; ::std::ostream_iterator<unsigned char> out(*os); ::std::copy(ptr_->data(), ptr_->data() + ptr_->data_size(), out); } void RawMessageMatcher::DescribeNegationTo(::std::ostream* os) const { - *os << "data_ is not " ; + *os << "data_ is not "; ::std::ostream_iterator<unsigned char> out(*os); ::std::copy(ptr_->data(), ptr_->data() + ptr_->data_size(), out); } diff --git a/src/components/transport_manager/test/tcp_client_listener_test.cc b/src/components/transport_manager/test/tcp_client_listener_test.cc index 916f8bac58..782b363a38 100644 --- a/src/components/transport_manager/test/tcp_client_listener_test.cc +++ b/src/components/transport_manager/test/tcp_client_listener_test.cc @@ -31,9 +31,9 @@ */ #include "gtest/gtest.h" -#include "include/transport_adapter_mock.h" +#include "transport_manager/transport_adapter_mock.h" #include "transport_manager/tcp/tcp_client_listener.h" -#include "include/transport_manager_mock.h" +#include "transport_manager/mock_transport_manager.h" #include "transport_manager/transport_adapter/transport_adapter_controller.h" #include "transport_manager/transport_adapter/device.h" @@ -45,34 +45,65 @@ using ::testing::Return; using namespace ::transport_manager; using namespace ::transport_manager::transport_adapter; -class MockTransportAdapterController: public TransportAdapterController { -public: - MOCK_METHOD1(AddDevice,DeviceSptr(DeviceSptr device)); - MOCK_METHOD0(AckDevices,void()); - MOCK_METHOD1(SearchDeviceDone, void(const DeviceVector& devices)); - MOCK_METHOD1(SearchDeviceFailed, void(const SearchDeviceError& error)); - MOCK_CONST_METHOD1(FindDevice, DeviceSptr(const DeviceUID& device_handle)); - MOCK_METHOD3(ConnectionCreated, void(ConnectionSPtr connection, const DeviceUID& device_handle, const ApplicationHandle& app_handle)); - MOCK_METHOD2(ConnectDone, void(const DeviceUID& device_handle, const ApplicationHandle& app_handle)); - MOCK_METHOD3(ConnectFailed, void(const DeviceUID& device_handle, const ApplicationHandle& app_handle, const ConnectError& error)); - MOCK_METHOD2(ConnectionFinished, void(const DeviceUID& device_handle, const ApplicationHandle& app_handle)); - MOCK_METHOD3(ConnectionAborted,void(const DeviceUID& device_handle, const ApplicationHandle& app_handle, const CommunicationError& error)); - MOCK_METHOD2(DisconnectDone, void(const DeviceUID& device_handle, const ApplicationHandle& app_handle)); - MOCK_METHOD3(DataReceiveDone, void(const DeviceUID& device_handle, const ApplicationHandle& app_handle, const ::protocol_handler::RawMessagePtr message)); - MOCK_METHOD3(DataReceiveFailed, void(const DeviceUID& device_handle, const ApplicationHandle& app_handle, const DataReceiveError& error)); - MOCK_METHOD3(DataSendDone, void(const DeviceUID& device_handle, const ApplicationHandle& app_handle, const ::protocol_handler::RawMessagePtr message)); - MOCK_METHOD4(DataSendFailed, void(const DeviceUID& device_handle, const ApplicationHandle& app_handle, const ::protocol_handler::RawMessagePtr message, const DataSendError& error)); - MOCK_METHOD0(FindNewApplicationsRequest, void()); - MOCK_METHOD1(ApplicationListUpdated, void(const DeviceUID& device_handle)); - MOCK_METHOD2(DeviceDisconnected, void (const DeviceUID& device_handle,const DisconnectDeviceError& error)); +class MockTransportAdapterController : public TransportAdapterController { + public: + MOCK_METHOD1(AddDevice, DeviceSptr(DeviceSptr device)); + MOCK_METHOD0(AckDevices, void()); + MOCK_METHOD1(SearchDeviceDone, void(const DeviceVector& devices)); + MOCK_METHOD1(SearchDeviceFailed, void(const SearchDeviceError& error)); + MOCK_CONST_METHOD1(FindDevice, DeviceSptr(const DeviceUID& device_handle)); + MOCK_METHOD3(ConnectionCreated, + void(ConnectionSPtr connection, + const DeviceUID& device_handle, + const ApplicationHandle& app_handle)); + MOCK_METHOD2(ConnectDone, + void(const DeviceUID& device_handle, + const ApplicationHandle& app_handle)); + MOCK_METHOD3(ConnectFailed, + void(const DeviceUID& device_handle, + const ApplicationHandle& app_handle, + const ConnectError& error)); + MOCK_METHOD2(ConnectionFinished, + void(const DeviceUID& device_handle, + const ApplicationHandle& app_handle)); + MOCK_METHOD3(ConnectionAborted, + void(const DeviceUID& device_handle, + const ApplicationHandle& app_handle, + const CommunicationError& error)); + MOCK_METHOD2(DisconnectDone, + void(const DeviceUID& device_handle, + const ApplicationHandle& app_handle)); + MOCK_METHOD3(DataReceiveDone, + void(const DeviceUID& device_handle, + const ApplicationHandle& app_handle, + const ::protocol_handler::RawMessagePtr message)); + MOCK_METHOD3(DataReceiveFailed, + void(const DeviceUID& device_handle, + const ApplicationHandle& app_handle, + const DataReceiveError& error)); + MOCK_METHOD3(DataSendDone, + void(const DeviceUID& device_handle, + const ApplicationHandle& app_handle, + const ::protocol_handler::RawMessagePtr message)); + MOCK_METHOD4(DataSendFailed, + void(const DeviceUID& device_handle, + const ApplicationHandle& app_handle, + const ::protocol_handler::RawMessagePtr message, + const DataSendError& error)); + MOCK_METHOD0(FindNewApplicationsRequest, void()); + MOCK_METHOD1(ApplicationListUpdated, void(const DeviceUID& device_handle)); + MOCK_METHOD2(DeviceDisconnected, + void(const DeviceUID& device_handle, + const DisconnectDeviceError& error)); }; class TcpClientListenerTest : public ::testing::Test { public: TcpClientListenerTest() - : port_(0), - enable_keep_alive_(false), - tcp_client_listener_(&adapter_controller_mock_, port_, enable_keep_alive_) {} + : port_(0) + , enable_keep_alive_(false) + , tcp_client_listener_( + &adapter_controller_mock_, port_, enable_keep_alive_) {} protected: uint16_t port_; @@ -88,7 +119,7 @@ TEST_F(TcpClientListenerTest, Ctor_test) { } TEST_F(TcpClientListenerTest, IsInitialised) { - EXPECT_TRUE(tcp_client_listener_.IsInitialised()); + EXPECT_TRUE(tcp_client_listener_.IsInitialised()); } TEST_F(TcpClientListenerTest, Init) { @@ -98,4 +129,3 @@ TEST_F(TcpClientListenerTest, Init) { } // namespace transport_manager_test } // namespace components } // namespace test - diff --git a/src/components/transport_manager/test/tcp_device_test.cc b/src/components/transport_manager/test/tcp_device_test.cc index 961ebe6954..55fa5ac5d3 100644 --- a/src/components/transport_manager/test/tcp_device_test.cc +++ b/src/components/transport_manager/test/tcp_device_test.cc @@ -45,7 +45,9 @@ class TestDevice : public Device { public: TestDevice(const uint32_t& in_addr, const std::string& name) : Device(name, name), in_addr_(in_addr) {} - bool IsSameAs(const Device* other_device) const { return true; } + bool IsSameAs(const Device* other_device) const { + return true; + } ApplicationList GetApplicationList() const { ApplicationList app_list; return app_list; diff --git a/src/components/transport_manager/test/tcp_transport_adapter_test.cc b/src/components/transport_manager/test/tcp_transport_adapter_test.cc index d849d94d48..60732f0328 100644 --- a/src/components/transport_manager/test/tcp_transport_adapter_test.cc +++ b/src/components/transport_manager/test/tcp_transport_adapter_test.cc @@ -33,12 +33,15 @@ #include "gtest/gtest.h" #include "transport_manager/tcp/tcp_transport_adapter.h" #include "transport_manager/transport_adapter/connection.h" -#include "config_profile/profile.h" #include "resumption/last_state.h" #include "protocol/raw_message.h" -#include "include/transport_adapter_listener_mock.h" -#include "include/device_mock.h" -#include "include/connection_mock.h" +#include "transport_manager/transport_adapter_listener_mock.h" +#include "transport_manager/device_mock.h" +#include "transport_manager/connection_mock.h" +#include "transport_manager/tcp/mock_tcp_transport_adapter.h" +#include "transport_manager/mock_transport_manager_settings.h" + +#include "utils/make_shared.h" namespace test { namespace components { @@ -51,45 +54,21 @@ using namespace ::protocol_handler; using namespace ::transport_manager; using namespace transport_manager::transport_adapter; -class TestTCPTransportAdapter : public TcpTransportAdapter { - public: - TestTCPTransportAdapter(uint16_t port) : TcpTransportAdapter(port) { - ::profile::Profile::instance()->config_file_name( - "smartDeviceLink_test.ini"); - } - MOCK_CONST_METHOD2(FindEstablishedConnection, - ConnectionSPtr(const DeviceUID& device_handle, - const ApplicationHandle& app_handle)); - - MOCK_CONST_METHOD1(FindDevice, DeviceSptr(const DeviceUID& device_handle)); - MOCK_METHOD2(Connect, - TransportAdapter::Error(const DeviceUID& device_handle, - const ApplicationHandle& app_handle)); - void CallStore() { Store(); } - bool CallRestore() { return Restore(); } -}; - class TcpAdapterTest : public ::testing::Test { protected: - static void SetUpTestCase() { - ::profile::Profile::instance()->config_file_name( - "smartDeviceLink_test.ini"); - } - virtual void SetUp() { - resumption::LastState::instance()->dictionary = Json::Value(); - } - - virtual void TearDown() { resumption::LastState::destroy(); } - + TcpAdapterTest() : last_state_("app_storage_folder", "app_info_storage") {} + MockTransportManagerSettings transport_manager_settings; + resumption::LastState last_state_; const uint32_t port = 12345; const std::string string_port = "12345"; }; -TEST_F(TcpAdapterTest, DISABLED_StoreDataWithOneDeviceAndOneApplication) { +TEST_F(TcpAdapterTest, StoreDataWithOneDeviceAndOneApplication) { // Prepare - TestTCPTransportAdapter transport_adapter(port); + MockTCPTransportAdapter transport_adapter( + port, last_state_, transport_manager_settings); std::string uniq_id = "unique_device_name"; - utils::SharedPtr<TCPDeviceMock> mockdev = new TCPDeviceMock(port, uniq_id); + utils::SharedPtr<MockTCPDevice> mockdev = new MockTCPDevice(port, uniq_id); transport_adapter.AddDevice(mockdev); std::vector<std::string> devList = transport_adapter.GetDeviceList(); @@ -100,7 +79,7 @@ TEST_F(TcpAdapterTest, DISABLED_StoreDataWithOneDeviceAndOneApplication) { std::vector<int> intList = {app_handle}; EXPECT_CALL(*mockdev, GetApplicationList()).WillOnce(Return(intList)); - ConnectionSPtr mock_connection = new ConnectionMock(); + ConnectionSPtr mock_connection = new MockConnection(); EXPECT_CALL(transport_adapter, FindDevice(uniq_id)).WillOnce(Return(mockdev)); EXPECT_CALL(transport_adapter, FindEstablishedConnection(uniq_id, app_handle)) .WillOnce(Return(mock_connection)); @@ -110,8 +89,8 @@ TEST_F(TcpAdapterTest, DISABLED_StoreDataWithOneDeviceAndOneApplication) { transport_adapter.CallStore(); // Check that value is saved - Json::Value& tcp_dict = resumption::LastState::instance() - ->dictionary["TransportManager"]["TcpAdapter"]; + Json::Value& tcp_dict = + last_state_.dictionary["TransportManager"]["TcpAdapter"]; ASSERT_TRUE(tcp_dict.isObject()); ASSERT_FALSE(tcp_dict["devices"].isNull()); @@ -123,17 +102,18 @@ TEST_F(TcpAdapterTest, DISABLED_StoreDataWithOneDeviceAndOneApplication) { EXPECT_EQ(uniq_id, tcp_dict["devices"][0]["name"].asString()); } -TEST_F(TcpAdapterTest, DISABLED_StoreDataWithSeveralDevicesAndOneApplication) { +TEST_F(TcpAdapterTest, StoreDataWithSeveralDevicesAndOneApplication) { // Prepare - TestTCPTransportAdapter transport_adapter(port); + MockTCPTransportAdapter transport_adapter( + port, last_state_, transport_manager_settings); const uint32_t count_dev = 10; - utils::SharedPtr<TCPDeviceMock> mockdev[count_dev]; + utils::SharedPtr<MockTCPDevice> mockdev[count_dev]; std::string uniq_id[count_dev]; for (uint32_t i = 0; i < count_dev; i++) { char numb[12]; std::snprintf(numb, 12, "%d", i); uniq_id[i] = "unique_device_name" + std::string(numb); - mockdev[i] = new TCPDeviceMock(port, uniq_id[i]); + mockdev[i] = new MockTCPDevice(port, uniq_id[i]); EXPECT_CALL(*(mockdev[i]), IsSameAs(_)).WillRepeatedly(Return(false)); transport_adapter.AddDevice(mockdev[i]); } @@ -145,7 +125,7 @@ TEST_F(TcpAdapterTest, DISABLED_StoreDataWithSeveralDevicesAndOneApplication) { const int app_handle = 1; std::vector<int> intList = {app_handle}; - ConnectionSPtr mock_connection = new ConnectionMock(); + ConnectionSPtr mock_connection = new MockConnection(); for (uint32_t i = 0; i < count_dev; i++) { EXPECT_CALL(transport_adapter, FindDevice(uniq_id[i])) .WillOnce(Return(mockdev[i])); @@ -161,8 +141,8 @@ TEST_F(TcpAdapterTest, DISABLED_StoreDataWithSeveralDevicesAndOneApplication) { transport_adapter.CallStore(); // Check that values are saved - Json::Value& tcp_dict = resumption::LastState::instance() - ->dictionary["TransportManager"]["TcpAdapter"]; + Json::Value& tcp_dict = + last_state_.dictionary["TransportManager"]["TcpAdapter"]; ASSERT_TRUE(tcp_dict.isObject()); ASSERT_FALSE(tcp_dict["devices"].isNull()); for (uint32_t i = 0; i < count_dev; i++) { @@ -175,18 +155,19 @@ TEST_F(TcpAdapterTest, DISABLED_StoreDataWithSeveralDevicesAndOneApplication) { } } -TEST_F(TcpAdapterTest, DISABLED_StoreDataWithSeveralDevicesAndSeveralApplications) { +TEST_F(TcpAdapterTest, StoreDataWithSeveralDevicesAndSeveralApplications) { // Prepare - TestTCPTransportAdapter transport_adapter(port); + MockTCPTransportAdapter transport_adapter( + port, last_state_, transport_manager_settings); const uint32_t count_dev = 10; - utils::SharedPtr<TCPDeviceMock> mockdev[count_dev]; + utils::SharedPtr<MockTCPDevice> mockdev[count_dev]; std::string uniq_id[count_dev]; for (uint32_t i = 0; i < count_dev; i++) { char numb[12]; std::snprintf(numb, 12, "%d", i); uniq_id[i] = "unique_device_name" + std::string(numb); - mockdev[i] = new TCPDeviceMock(port, uniq_id[i]); + mockdev[i] = new MockTCPDevice(port, uniq_id[i]); EXPECT_CALL(*(mockdev[i]), IsSameAs(_)).WillRepeatedly(Return(false)); transport_adapter.AddDevice(mockdev[i]); } @@ -200,7 +181,7 @@ TEST_F(TcpAdapterTest, DISABLED_StoreDataWithSeveralDevicesAndSeveralApplication std::vector<int> intList = {app_handle[0], app_handle[1], app_handle[2]}; const std::string ports[connection_count] = {"11111", "67890", "98765"}; const int int_port[connection_count] = {11111, 67890, 98765}; - ConnectionSPtr mock_connection = new ConnectionMock(); + ConnectionSPtr mock_connection = new MockConnection(); for (uint32_t i = 0; i < count_dev; i++) { EXPECT_CALL(transport_adapter, FindDevice(uniq_id[i])) .WillOnce(Return(mockdev[i])); @@ -217,8 +198,8 @@ TEST_F(TcpAdapterTest, DISABLED_StoreDataWithSeveralDevicesAndSeveralApplication transport_adapter.CallStore(); // Check that value is saved - Json::Value& tcp_dict = resumption::LastState::instance() - ->dictionary["TransportManager"]["TcpAdapter"]; + Json::Value& tcp_dict = + last_state_.dictionary["TransportManager"]["TcpAdapter"]; ASSERT_TRUE(tcp_dict.isObject()); ASSERT_FALSE(tcp_dict["devices"].isNull()); @@ -235,9 +216,10 @@ TEST_F(TcpAdapterTest, DISABLED_StoreDataWithSeveralDevicesAndSeveralApplication TEST_F(TcpAdapterTest, StoreData_ConnectionNotExist_DataNotStored) { // Prepare - TestTCPTransportAdapter transport_adapter(port); + MockTCPTransportAdapter transport_adapter( + port, last_state_, transport_manager_settings); std::string uniq_id = "unique_device_name"; - utils::SharedPtr<TCPDeviceMock> mockdev = new TCPDeviceMock(port, uniq_id); + utils::SharedPtr<MockTCPDevice> mockdev = new MockTCPDevice(port, uniq_id); transport_adapter.AddDevice(mockdev); std::vector<std::string> devList = transport_adapter.GetDeviceList(); @@ -254,25 +236,25 @@ TEST_F(TcpAdapterTest, StoreData_ConnectionNotExist_DataNotStored) { // Check that value is not saved Json::Value& tcp_dict = - resumption::LastState::instance() - ->dictionary["TransportManager"]["TcpAdapter"]["devices"]; + last_state_.dictionary["TransportManager"]["TcpAdapter"]["devices"]; ASSERT_TRUE(tcp_dict.isNull()); } TEST_F(TcpAdapterTest, RestoreData_DataNotStored) { Json::Value& tcp_adapter_dictionary = - resumption::LastState::instance() - ->dictionary["TransportManager"]["TcpAdapter"]; + last_state_.dictionary["TransportManager"]["TcpAdapter"]; tcp_adapter_dictionary = Json::Value(); - TestTCPTransportAdapter transport_adapter(port); + MockTCPTransportAdapter transport_adapter( + port, last_state_, transport_manager_settings); EXPECT_CALL(transport_adapter, Connect(_, _)).Times(0); EXPECT_TRUE(transport_adapter.CallRestore()); } -TEST_F(TcpAdapterTest, DISABLED_StoreDataWithOneDevice_RestoreData) { - TestTCPTransportAdapter transport_adapter(port); +TEST_F(TcpAdapterTest, StoreDataWithOneDevice_RestoreData) { + MockTCPTransportAdapter transport_adapter( + port, last_state_, transport_manager_settings); std::string uniq_id = "unique_device_name"; - utils::SharedPtr<TCPDeviceMock> mockdev = new TCPDeviceMock(port, uniq_id); + utils::SharedPtr<MockTCPDevice> mockdev = new MockTCPDevice(port, uniq_id); transport_adapter.AddDevice(mockdev); std::vector<std::string> devList = transport_adapter.GetDeviceList(); @@ -283,7 +265,7 @@ TEST_F(TcpAdapterTest, DISABLED_StoreDataWithOneDevice_RestoreData) { std::vector<int> intList = {app_handle}; EXPECT_CALL(*mockdev, GetApplicationList()).WillOnce(Return(intList)); - ConnectionSPtr mock_connection = new ConnectionMock(); + ConnectionSPtr mock_connection = new MockConnection(); EXPECT_CALL(transport_adapter, FindDevice(uniq_id)).WillOnce(Return(mockdev)); EXPECT_CALL(transport_adapter, FindEstablishedConnection(uniq_id, app_handle)) .WillOnce(Return(mock_connection)); @@ -302,17 +284,18 @@ TEST_F(TcpAdapterTest, DISABLED_StoreDataWithOneDevice_RestoreData) { EXPECT_EQ(uniq_id, devList[0]); } -TEST_F(TcpAdapterTest, DISABLED_StoreDataWithSeveralDevices_RestoreData) { - TestTCPTransportAdapter transport_adapter(port); +TEST_F(TcpAdapterTest, StoreDataWithSeveralDevices_RestoreData) { + MockTCPTransportAdapter transport_adapter( + port, last_state_, transport_manager_settings); const uint32_t count_dev = 10; - utils::SharedPtr<TCPDeviceMock> mockdev[count_dev]; + utils::SharedPtr<MockTCPDevice> mockdev[count_dev]; std::string uniq_id[count_dev]; for (uint32_t i = 0; i < count_dev; i++) { char numb[12]; std::snprintf(numb, 12, "%d", i); uniq_id[i] = "unique_device_name" + std::string(numb); - mockdev[i] = new TCPDeviceMock(port, uniq_id[i]); + mockdev[i] = new MockTCPDevice(port, uniq_id[i]); EXPECT_CALL(*(mockdev[i]), IsSameAs(_)).WillRepeatedly(Return(false)); transport_adapter.AddDevice(mockdev[i]); } @@ -324,7 +307,7 @@ TEST_F(TcpAdapterTest, DISABLED_StoreDataWithSeveralDevices_RestoreData) { const int app_handle = 1; std::vector<int> intList = {app_handle}; - ConnectionSPtr mock_connection = new ConnectionMock(); + ConnectionSPtr mock_connection = new MockConnection(); for (uint32_t i = 0; i < count_dev; i++) { EXPECT_CALL(transport_adapter, FindDevice(uniq_id[i])) .WillOnce(Return(mockdev[i])); diff --git a/src/components/transport_manager/test/transport_adapter_listener_test.cc b/src/components/transport_manager/test/transport_adapter_listener_test.cc index 4d0ff4ec20..d56949301c 100644 --- a/src/components/transport_manager/test/transport_adapter_listener_test.cc +++ b/src/components/transport_manager/test/transport_adapter_listener_test.cc @@ -31,9 +31,9 @@ */ #include "gtest/gtest.h" -#include "include/transport_adapter_mock.h" +#include "transport_manager/transport_adapter_mock.h" #include "transport_manager/transport_adapter/transport_adapter_listener_impl.h" -#include "include/transport_manager_mock.h" +#include "transport_manager/mock_transport_manager.h" namespace test { namespace components { @@ -45,15 +45,15 @@ using namespace ::transport_manager; class TransportAdapterListenerTest : public ::testing::Test { public: TransportAdapterListenerTest() - : app_handle(1), - dev_id("device_id"), - transport_listener(&tr_mock, &adapter_mock) {} + : app_handle(1) + , dev_id("device_id") + , transport_listener(&tr_mock, &adapter_mock) {} protected: const int app_handle; const std::string dev_id; - TransportManagerMock tr_mock; - TransportAdapterMock adapter_mock; + MockTransportManager tr_mock; + MockTransportAdapter adapter_mock; TransportAdapterListenerImpl transport_listener; }; @@ -75,7 +75,9 @@ TEST_F(TransportAdapterListenerTest, OnCommunicationError) { tr_mock, ReceiveEventFromDevice(IsEvent( TransportAdapterListenerImpl::EventTypeEnum::ON_COMMUNICATION_ERROR, - &adapter_mock, dev_id, app_handle))).WillOnce(Return(E_SUCCESS)); + &adapter_mock, + dev_id, + app_handle))).WillOnce(Return(E_SUCCESS)); transport_listener.OnCommunicationError(&adapter_mock, dev_id, app_handle); } @@ -83,8 +85,9 @@ TEST_F(TransportAdapterListenerTest, OnConnectDone) { EXPECT_CALL(tr_mock, ReceiveEventFromDevice(IsEvent( TransportAdapterListenerImpl::EventTypeEnum::ON_CONNECT_DONE, - &adapter_mock, dev_id, app_handle))) - .WillOnce(Return(E_SUCCESS)); + &adapter_mock, + dev_id, + app_handle))).WillOnce(Return(E_SUCCESS)); transport_listener.OnConnectDone(&adapter_mock, dev_id, app_handle); } @@ -94,8 +97,9 @@ TEST_F(TransportAdapterListenerTest, OnConnectFailed) { EXPECT_CALL(tr_mock, ReceiveEventFromDevice(IsEvent( TransportAdapterListenerImpl::EventTypeEnum::ON_CONNECT_FAIL, - &adapter_mock, dev_id, app_handle))) - .WillOnce(Return(E_SUCCESS)); + &adapter_mock, + dev_id, + app_handle))).WillOnce(Return(E_SUCCESS)); transport_listener.OnConnectFailed(&adapter_mock, dev_id, app_handle, er); } @@ -105,10 +109,12 @@ TEST_F(TransportAdapterListenerTest, OnDataReceiveDone) { EXPECT_CALL(tr_mock, ReceiveEventFromDevice(IsEvent( TransportAdapterListenerImpl::EventTypeEnum::ON_RECEIVED_DONE, - &adapter_mock, dev_id, app_handle, data_container))) - .WillOnce(Return(E_SUCCESS)); - transport_listener.OnDataReceiveDone(&adapter_mock, dev_id, app_handle, - data_container); + &adapter_mock, + dev_id, + app_handle, + data_container))).WillOnce(Return(E_SUCCESS)); + transport_listener.OnDataReceiveDone( + &adapter_mock, dev_id, app_handle, data_container); } TEST_F(TransportAdapterListenerTest, OnDataReceiveFailed) { @@ -117,10 +123,11 @@ TEST_F(TransportAdapterListenerTest, OnDataReceiveFailed) { EXPECT_CALL(tr_mock, ReceiveEventFromDevice(IsEvent( TransportAdapterListenerImpl::EventTypeEnum::ON_RECEIVED_FAIL, - &adapter_mock, dev_id, app_handle))) - .WillOnce(Return(E_SUCCESS)); - transport_listener.OnDataReceiveFailed(&adapter_mock, dev_id, app_handle, - err); + &adapter_mock, + dev_id, + app_handle))).WillOnce(Return(E_SUCCESS)); + transport_listener.OnDataReceiveFailed( + &adapter_mock, dev_id, app_handle, err); } TEST_F(TransportAdapterListenerTest, OnDataSendDone) { @@ -131,10 +138,12 @@ TEST_F(TransportAdapterListenerTest, OnDataSendDone) { EXPECT_CALL(tr_mock, ReceiveEventFromDevice(IsEvent( TransportAdapterListenerImpl::EventTypeEnum::ON_SEND_DONE, - &adapter_mock, dev_id, app_handle, data_container))) - .WillOnce(Return(E_SUCCESS)); - transport_listener.OnDataSendDone(&adapter_mock, dev_id, app_handle, - data_container); + &adapter_mock, + dev_id, + app_handle, + data_container))).WillOnce(Return(E_SUCCESS)); + transport_listener.OnDataSendDone( + &adapter_mock, dev_id, app_handle, data_container); } TEST_F(TransportAdapterListenerTest, OnDataSendFailed) { @@ -146,10 +155,12 @@ TEST_F(TransportAdapterListenerTest, OnDataSendFailed) { EXPECT_CALL(tr_mock, ReceiveEventFromDevice(IsEvent( TransportAdapterListenerImpl::EventTypeEnum::ON_SEND_FAIL, - &adapter_mock, dev_id, app_handle, data_container))) - .WillOnce(Return(E_SUCCESS)); - transport_listener.OnDataSendFailed(&adapter_mock, dev_id, app_handle, - data_container, err); + &adapter_mock, + dev_id, + app_handle, + data_container))).WillOnce(Return(E_SUCCESS)); + transport_listener.OnDataSendFailed( + &adapter_mock, dev_id, app_handle, data_container, err); } TEST_F(TransportAdapterListenerTest, OnDeviceListUpdated) { @@ -157,7 +168,9 @@ TEST_F(TransportAdapterListenerTest, OnDeviceListUpdated) { tr_mock, ReceiveEventFromDevice(IsEvent( TransportAdapterListenerImpl::EventTypeEnum::ON_DEVICE_LIST_UPDATED, - &adapter_mock, "", 0))).WillOnce(Return(E_SUCCESS)); + &adapter_mock, + "", + 0))).WillOnce(Return(E_SUCCESS)); transport_listener.OnDeviceListUpdated(&adapter_mock); } @@ -166,7 +179,9 @@ TEST_F(TransportAdapterListenerTest, OnDisconnectDeviceDone) { tr_mock, ReceiveEventFromDevice(IsEvent( TransportAdapterListenerImpl::EventTypeEnum::ON_DISCONNECT_DONE, - &adapter_mock, dev_id, app_handle))).WillOnce(Return(E_SUCCESS)); + &adapter_mock, + dev_id, + app_handle))).WillOnce(Return(E_SUCCESS)); transport_listener.OnDisconnectDone(&adapter_mock, dev_id, app_handle); } @@ -177,15 +192,20 @@ TEST_F(TransportAdapterListenerTest, OnDisconnectFailed) { tr_mock, ReceiveEventFromDevice(IsEvent( TransportAdapterListenerImpl::EventTypeEnum::ON_DISCONNECT_FAIL, - &adapter_mock, dev_id, app_handle))).WillOnce(Return(E_SUCCESS)); + &adapter_mock, + dev_id, + app_handle))).WillOnce(Return(E_SUCCESS)); transport_listener.OnDisconnectFailed(&adapter_mock, dev_id, app_handle, err); } TEST_F(TransportAdapterListenerTest, OnFindNewApplicationsRequest) { - EXPECT_CALL(tr_mock, ReceiveEventFromDevice(IsEvent( - TransportAdapterListenerImpl::EventTypeEnum:: - ON_FIND_NEW_APPLICATIONS_REQUEST, - &adapter_mock, "", 0))).WillOnce(Return(E_SUCCESS)); + EXPECT_CALL(tr_mock, + ReceiveEventFromDevice( + IsEvent(TransportAdapterListenerImpl::EventTypeEnum:: + ON_FIND_NEW_APPLICATIONS_REQUEST, + &adapter_mock, + "", + 0))).WillOnce(Return(E_SUCCESS)); transport_listener.OnFindNewApplicationsRequest(&adapter_mock); } @@ -193,7 +213,9 @@ TEST_F(TransportAdapterListenerTest, OnSearchDeviceDone) { EXPECT_CALL(tr_mock, ReceiveEventFromDevice(IsEvent( TransportAdapterListenerImpl::EventTypeEnum::ON_SEARCH_DONE, - &adapter_mock, "", 0))).WillOnce(Return(E_SUCCESS)); + &adapter_mock, + "", + 0))).WillOnce(Return(E_SUCCESS)); transport_listener.OnSearchDeviceDone(&adapter_mock); } @@ -203,7 +225,9 @@ TEST_F(TransportAdapterListenerTest, OnSearchDeviceFailed) { EXPECT_CALL(tr_mock, ReceiveEventFromDevice(IsEvent( TransportAdapterListenerImpl::EventTypeEnum::ON_SEARCH_FAIL, - &adapter_mock, "", 0))).WillOnce(Return(E_SUCCESS)); + &adapter_mock, + "", + 0))).WillOnce(Return(E_SUCCESS)); transport_listener.OnSearchDeviceFailed(&adapter_mock, er); } @@ -214,9 +238,11 @@ TEST_F(TransportAdapterListenerTest, OnUnexpectedDisconnect) { tr_mock, ReceiveEventFromDevice(IsEvent( TransportAdapterListenerImpl::EventTypeEnum::ON_UNEXPECTED_DISCONNECT, - &adapter_mock, dev_id, app_handle))).WillOnce(Return(E_SUCCESS)); - transport_listener.OnUnexpectedDisconnect(&adapter_mock, dev_id, app_handle, - err); + &adapter_mock, + dev_id, + app_handle))).WillOnce(Return(E_SUCCESS)); + transport_listener.OnUnexpectedDisconnect( + &adapter_mock, dev_id, app_handle, err); } } // namespace transport_manager_test diff --git a/src/components/transport_manager/test/transport_adapter_test.cc b/src/components/transport_manager/test/transport_adapter_test.cc index 679cd90643..5d34a2f02f 100644 --- a/src/components/transport_manager/test/transport_adapter_test.cc +++ b/src/components/transport_manager/test/transport_adapter_test.cc @@ -31,19 +31,23 @@ */ #include "gtest/gtest.h" -#include "include/device_scanner_mock.h" -#include "include/client_connection_listener_mock.h" -#include "include/server_connection_factory_mock.h" -#include "include/device_mock.h" -#include "include/connection_mock.h" -#include "include/transport_adapter_listener_mock.h" +#include "transport_manager/device_scanner_mock.h" +#include "transport_manager/client_connection_listener_mock.h" +#include "transport_manager/server_connection_factory_mock.h" +#include "transport_manager/device_mock.h" +#include "transport_manager/connection_mock.h" +#include "transport_manager/transport_adapter_listener_mock.h" +#include "transport_manager/transport_adapter/mock_transport_adapter_impl.h" +#include "transport_manager/mock_transport_manager_settings.h" #include "transport_manager/transport_adapter/transport_adapter_impl.h" #include "transport_manager/transport_adapter/transport_adapter_listener.h" #include "transport_manager/transport_adapter/transport_adapter_controller.h" #include "transport_manager/transport_adapter/connection.h" -#include "config_profile/profile.h" #include "protocol/raw_message.h" +#include "utils/make_shared.h" +#include "resumption/last_state.h" +#include "config_profile/profile.h" namespace test { namespace components { @@ -51,56 +55,39 @@ namespace transport_manager_test { using ::testing::Return; using ::testing::_; - +using ::testing::NiceMock; using namespace ::transport_manager; using namespace ::protocol_handler; - -class TestTransportAdapter : public TransportAdapterImpl { - public: - TestTransportAdapter(DeviceScanner* device_scanner, - ServerConnectionFactory* server_connection_factory, - ClientConnectionListener* client_connection_listener) - : TransportAdapterImpl(device_scanner, server_connection_factory, - client_connection_listener) { - } - - ConnectionSPtr FindStatedConnection(const DeviceUID& device_handle, - const ApplicationHandle& app_handle) { - return this->FindEstablishedConnection(device_handle, app_handle); - } - virtual ~TestTransportAdapter(){}; - - virtual DeviceType GetDeviceType() const { return UNKNOWN; } - - MOCK_CONST_METHOD0(Store, void()); - MOCK_METHOD0(Restore, bool()); -}; - class TransportAdapterTest : public ::testing::Test { protected: - virtual void SetUp() { + TransportAdapterTest() + : last_state_("app_storage_folder", "app_info_storage") {} + + void SetUp() OVERRIDE { dev_id = "device_id"; uniq_id = "unique_device_id"; app_handle = 1; + ON_CALL(transport_manager_settings, use_last_state()) + .WillByDefault(Return(true)); } - static void SetUpTestCase() { - ::profile::Profile::instance()->config_file_name( - "smartDeviceLink_test.ini"); - } - + NiceMock<MockTransportManagerSettings> transport_manager_settings; + resumption::LastState last_state_; std::string dev_id; std::string uniq_id; int app_handle; }; TEST_F(TransportAdapterTest, Init) { - DeviceScannerMock* dev_mock = new DeviceScannerMock(); - ClientConnectionListenerMock* clientMock = new ClientConnectionListenerMock(); - ServerConnectionFactoryMock* serverMock = new ServerConnectionFactoryMock(); - TestTransportAdapter transport_adapter(dev_mock, serverMock, clientMock); - + MockDeviceScanner* dev_mock = new MockDeviceScanner(); + MockClientConnectionListener* clientMock = new MockClientConnectionListener(); + MockServerConnectionFactory* serverMock = new MockServerConnectionFactory(); + MockTransportAdapterImpl transport_adapter(dev_mock, + serverMock, + clientMock, + last_state_, + transport_manager_settings); EXPECT_CALL(*dev_mock, Init()).WillOnce(Return(TransportAdapter::OK)); EXPECT_CALL(*clientMock, Init()).WillOnce(Return(TransportAdapter::OK)); EXPECT_CALL(*serverMock, Init()).WillOnce(Return(TransportAdapter::OK)); @@ -115,9 +102,10 @@ TEST_F(TransportAdapterTest, Init) { } TEST_F(TransportAdapterTest, SearchDevices_WithoutScanner) { - ClientConnectionListenerMock* clientMock = new ClientConnectionListenerMock(); - ServerConnectionFactoryMock* serverMock = new ServerConnectionFactoryMock(); - TestTransportAdapter transport_adapter(NULL, serverMock, clientMock); + MockClientConnectionListener* clientMock = new MockClientConnectionListener(); + MockServerConnectionFactory* serverMock = new MockServerConnectionFactory(); + MockTransportAdapterImpl transport_adapter( + NULL, serverMock, clientMock, last_state_, transport_manager_settings); EXPECT_CALL(*clientMock, Init()).WillOnce(Return(TransportAdapter::OK)); EXPECT_CALL(*serverMock, Init()).WillOnce(Return(TransportAdapter::OK)); @@ -131,8 +119,9 @@ TEST_F(TransportAdapterTest, SearchDevices_WithoutScanner) { } TEST_F(TransportAdapterTest, SearchDevices_DeviceNotInitialized) { - DeviceScannerMock* dev_mock = new DeviceScannerMock(); - TestTransportAdapter transport_adapter(dev_mock, NULL, NULL); + MockDeviceScanner* dev_mock = new MockDeviceScanner(); + MockTransportAdapterImpl transport_adapter( + dev_mock, NULL, NULL, last_state_, transport_manager_settings); EXPECT_CALL(*dev_mock, Init()).WillOnce(Return(TransportAdapter::OK)); EXPECT_CALL(transport_adapter, Restore()).WillOnce(Return(true)); @@ -145,8 +134,9 @@ TEST_F(TransportAdapterTest, SearchDevices_DeviceNotInitialized) { } TEST_F(TransportAdapterTest, SearchDevices_DeviceInitialized) { - DeviceScannerMock* dev_mock = new DeviceScannerMock(); - TestTransportAdapter transport_adapter(dev_mock, NULL, NULL); + MockDeviceScanner* dev_mock = new MockDeviceScanner(); + MockTransportAdapterImpl transport_adapter( + dev_mock, NULL, NULL, last_state_, transport_manager_settings); EXPECT_CALL(*dev_mock, Init()).WillOnce(Return(TransportAdapter::OK)); EXPECT_CALL(transport_adapter, Restore()).WillOnce(Return(true)); @@ -160,12 +150,12 @@ TEST_F(TransportAdapterTest, SearchDevices_DeviceInitialized) { } TEST_F(TransportAdapterTest, SearchDeviceDone_DeviceExisting) { - TestTransportAdapter transport_adapter(NULL, NULL, NULL); + MockTransportAdapterImpl transport_adapter( + NULL, NULL, NULL, last_state_, transport_manager_settings); EXPECT_CALL(transport_adapter, Restore()).WillOnce(Return(true)); transport_adapter.Init(); - - utils::SharedPtr<DeviceMock> mockdev = new DeviceMock(dev_id, uniq_id); + utils::SharedPtr<MockDevice> mockdev = new MockDevice(dev_id, uniq_id); transport_adapter.AddDevice(mockdev); std::vector<utils::SharedPtr<Device>> devList; @@ -176,11 +166,12 @@ TEST_F(TransportAdapterTest, SearchDeviceDone_DeviceExisting) { } TEST_F(TransportAdapterTest, SearchDeviceFailed) { - TestTransportAdapter transport_adapter(NULL, NULL, NULL); + MockTransportAdapterImpl transport_adapter( + NULL, NULL, NULL, last_state_, transport_manager_settings); EXPECT_CALL(transport_adapter, Restore()).WillOnce(Return(true)); transport_adapter.Init(); - TransportAdapterListenerMock mock_listener; + MockTransportAdapterListener mock_listener; transport_adapter.AddListener(&mock_listener); SearchDeviceError er; @@ -189,24 +180,24 @@ TEST_F(TransportAdapterTest, SearchDeviceFailed) { } TEST_F(TransportAdapterTest, AddDevice) { - TestTransportAdapter transport_adapter(NULL, NULL, NULL); + MockTransportAdapterImpl transport_adapter( + NULL, NULL, NULL, last_state_, transport_manager_settings); EXPECT_CALL(transport_adapter, Restore()).WillOnce(Return(true)); transport_adapter.Init(); - - - TransportAdapterListenerMock mock_listener; + MockTransportAdapterListener mock_listener; transport_adapter.AddListener(&mock_listener); - DeviceMock* mockdev = new DeviceMock(dev_id, uniq_id); + MockDevice* mockdev = new MockDevice(dev_id, uniq_id); EXPECT_CALL(mock_listener, OnDeviceListUpdated(_)); transport_adapter.AddDevice(mockdev); } TEST_F(TransportAdapterTest, Connect_ServerNotSupported) { - ClientConnectionListenerMock* clientMock = new ClientConnectionListenerMock(); - TestTransportAdapter transport_adapter(NULL, NULL, clientMock); + MockClientConnectionListener* clientMock = new MockClientConnectionListener(); + MockTransportAdapterImpl transport_adapter( + NULL, NULL, clientMock, last_state_, transport_manager_settings); EXPECT_CALL(*clientMock, Init()).WillOnce(Return(TransportAdapter::OK)); EXPECT_CALL(transport_adapter, Restore()).WillOnce(Return(true)); @@ -221,15 +212,14 @@ TEST_F(TransportAdapterTest, Connect_ServerNotSupported) { } TEST_F(TransportAdapterTest, Connect_ServerNotInitialized) { - ServerConnectionFactoryMock* serverMock = new ServerConnectionFactoryMock(); - TestTransportAdapter transport_adapter(NULL, serverMock, NULL); + MockServerConnectionFactory* serverMock = new MockServerConnectionFactory(); + MockTransportAdapterImpl transport_adapter( + NULL, serverMock, NULL, last_state_, transport_manager_settings); EXPECT_CALL(*serverMock, Init()).WillOnce(Return(TransportAdapter::OK)); EXPECT_CALL(transport_adapter, Restore()).WillOnce(Return(true)); transport_adapter.Init(); - - EXPECT_CALL(*serverMock, IsInitialised()).WillOnce(Return(false)); EXPECT_CALL(*serverMock, CreateConnection(dev_id, app_handle)).Times(0); TransportAdapter::Error res = transport_adapter.Connect(dev_id, app_handle); @@ -239,15 +229,14 @@ TEST_F(TransportAdapterTest, Connect_ServerNotInitialized) { } TEST_F(TransportAdapterTest, Connect_Success) { - ServerConnectionFactoryMock* serverMock = new ServerConnectionFactoryMock(); - TestTransportAdapter transport_adapter(NULL, serverMock, NULL); + MockServerConnectionFactory* serverMock = new MockServerConnectionFactory(); + MockTransportAdapterImpl transport_adapter( + NULL, serverMock, NULL, last_state_, transport_manager_settings); EXPECT_CALL(*serverMock, Init()).WillOnce(Return(TransportAdapter::OK)); EXPECT_CALL(transport_adapter, Restore()).WillOnce(Return(true)); transport_adapter.Init(); - - EXPECT_CALL(*serverMock, IsInitialised()).WillOnce(Return(true)); EXPECT_CALL(*serverMock, CreateConnection(dev_id, app_handle)) .WillOnce(Return(TransportAdapter::OK)); @@ -258,15 +247,14 @@ TEST_F(TransportAdapterTest, Connect_Success) { } TEST_F(TransportAdapterTest, Connect_DeviceAddedTwice) { - ServerConnectionFactoryMock* serverMock = new ServerConnectionFactoryMock(); - TestTransportAdapter transport_adapter(NULL, serverMock, NULL); + MockServerConnectionFactory* serverMock = new MockServerConnectionFactory(); + MockTransportAdapterImpl transport_adapter( + NULL, serverMock, NULL, last_state_, transport_manager_settings); EXPECT_CALL(*serverMock, Init()).WillOnce(Return(TransportAdapter::OK)); EXPECT_CALL(transport_adapter, Restore()).WillOnce(Return(true)); transport_adapter.Init(); - - EXPECT_CALL(*serverMock, IsInitialised()).WillOnce(Return(true)); EXPECT_CALL(*serverMock, CreateConnection(dev_id, app_handle)) .WillOnce(Return(TransportAdapter::OK)); @@ -282,13 +270,12 @@ TEST_F(TransportAdapterTest, Connect_DeviceAddedTwice) { } TEST_F(TransportAdapterTest, ConnectDevice_ServerNotAdded_DeviceAdded) { - TestTransportAdapter transport_adapter(NULL, NULL, NULL); + MockTransportAdapterImpl transport_adapter( + NULL, NULL, NULL, last_state_, transport_manager_settings); EXPECT_CALL(transport_adapter, Restore()).WillOnce(Return(true)); transport_adapter.Init(); - - - DeviceMock* mockdev = new DeviceMock(dev_id, uniq_id); + MockDevice* mockdev = new MockDevice(dev_id, uniq_id); transport_adapter.AddDevice(mockdev); std::vector<std::string> devList = transport_adapter.GetDeviceList(); @@ -304,9 +291,9 @@ TEST_F(TransportAdapterTest, ConnectDevice_ServerNotAdded_DeviceAdded) { } TEST_F(TransportAdapterTest, ConnectDevice_DeviceNotAdded) { - ServerConnectionFactoryMock* serverMock = new ServerConnectionFactoryMock(); - TestTransportAdapter transport_adapter(NULL, serverMock, NULL); - + MockServerConnectionFactory* serverMock = new MockServerConnectionFactory(); + MockTransportAdapterImpl transport_adapter( + NULL, serverMock, NULL, last_state_, transport_manager_settings); EXPECT_CALL(*serverMock, Init()).WillOnce(Return(TransportAdapter::OK)); EXPECT_CALL(transport_adapter, Restore()).WillOnce(Return(true)); transport_adapter.Init(); @@ -322,23 +309,21 @@ TEST_F(TransportAdapterTest, ConnectDevice_DeviceNotAdded) { } TEST_F(TransportAdapterTest, ConnectDevice_DeviceAdded) { - ServerConnectionFactoryMock* serverMock = new ServerConnectionFactoryMock(); - TestTransportAdapter transport_adapter(NULL, serverMock, NULL); + MockServerConnectionFactory* serverMock = new MockServerConnectionFactory(); + MockTransportAdapterImpl transport_adapter( + NULL, serverMock, NULL, last_state_, transport_manager_settings); EXPECT_CALL(*serverMock, Init()).WillOnce(Return(TransportAdapter::OK)); EXPECT_CALL(transport_adapter, Restore()).WillOnce(Return(true)); transport_adapter.Init(); - - - DeviceMock* mockdev = new DeviceMock(dev_id, uniq_id); + MockDevice* mockdev = new MockDevice(dev_id, uniq_id); transport_adapter.AddDevice(mockdev); std::vector<std::string> devList = transport_adapter.GetDeviceList(); ASSERT_EQ(1u, devList.size()); EXPECT_EQ(uniq_id, devList[0]); - int app_handle = 1; std::vector<int> intList = {app_handle}; EXPECT_CALL(*mockdev, GetApplicationList()).WillOnce(Return(intList)); @@ -353,23 +338,21 @@ TEST_F(TransportAdapterTest, ConnectDevice_DeviceAdded) { } TEST_F(TransportAdapterTest, ConnectDevice_DeviceAddedTwice) { - ServerConnectionFactoryMock* serverMock = new ServerConnectionFactoryMock(); - TestTransportAdapter transport_adapter(NULL, serverMock, NULL); + MockServerConnectionFactory* serverMock = new MockServerConnectionFactory(); + MockTransportAdapterImpl transport_adapter( + NULL, serverMock, NULL, last_state_, transport_manager_settings); EXPECT_CALL(*serverMock, Init()).WillOnce(Return(TransportAdapter::OK)); EXPECT_CALL(transport_adapter, Restore()).WillOnce(Return(true)); transport_adapter.Init(); - - - DeviceMock* mockdev = new DeviceMock(dev_id, uniq_id); + MockDevice* mockdev = new MockDevice(dev_id, uniq_id); transport_adapter.AddDevice(mockdev); std::vector<std::string> devList = transport_adapter.GetDeviceList(); ASSERT_EQ(1u, devList.size()); EXPECT_EQ(uniq_id, devList[0]); - int app_handle = 1; std::vector<int> intList = {app_handle}; EXPECT_CALL(*mockdev, GetApplicationList()).WillOnce(Return(intList)); @@ -393,22 +376,21 @@ TEST_F(TransportAdapterTest, ConnectDevice_DeviceAddedTwice) { } TEST_F(TransportAdapterTest, Disconnect_ConnectDoneSuccess) { - ServerConnectionFactoryMock* serverMock = new ServerConnectionFactoryMock(); - TestTransportAdapter transport_adapter(NULL, serverMock, NULL); + MockServerConnectionFactory* serverMock = new MockServerConnectionFactory(); + MockTransportAdapterImpl transport_adapter( + NULL, serverMock, NULL, last_state_, transport_manager_settings); EXPECT_CALL(*serverMock, Init()).WillOnce(Return(TransportAdapter::OK)); EXPECT_CALL(transport_adapter, Restore()).WillOnce(Return(true)); transport_adapter.Init(); - - EXPECT_CALL(*serverMock, IsInitialised()).WillOnce(Return(true)); EXPECT_CALL(*serverMock, CreateConnection(dev_id, app_handle)) .WillOnce(Return(TransportAdapter::OK)); TransportAdapter::Error res = transport_adapter.Connect(dev_id, app_handle); EXPECT_EQ(TransportAdapter::OK, res); - ConnectionMock* mock_connection = new ConnectionMock(); + MockConnection* mock_connection = new MockConnection(); transport_adapter.ConnectionCreated(mock_connection, dev_id, app_handle); EXPECT_CALL(transport_adapter, Store()); @@ -424,21 +406,21 @@ TEST_F(TransportAdapterTest, Disconnect_ConnectDoneSuccess) { } TEST_F(TransportAdapterTest, DisconnectDevice_DeviceAddedConnectionCreated) { - ServerConnectionFactoryMock* serverMock = new ServerConnectionFactoryMock(); - TestTransportAdapter transport_adapter(NULL, serverMock, NULL); + MockServerConnectionFactory* serverMock = new MockServerConnectionFactory(); + MockTransportAdapterImpl transport_adapter( + NULL, serverMock, NULL, last_state_, transport_manager_settings); EXPECT_CALL(*serverMock, Init()).WillOnce(Return(TransportAdapter::OK)); EXPECT_CALL(transport_adapter, Restore()).WillOnce(Return(true)); transport_adapter.Init(); - DeviceMock* mockdev = new DeviceMock(dev_id, uniq_id); + MockDevice* mockdev = new MockDevice(dev_id, uniq_id); transport_adapter.AddDevice(mockdev); std::vector<std::string> devList = transport_adapter.GetDeviceList(); ASSERT_EQ(1u, devList.size()); EXPECT_EQ(uniq_id, devList[0]); - std::vector<int> intList = {app_handle}; EXPECT_CALL(*mockdev, GetApplicationList()).WillOnce(Return(intList)); @@ -448,7 +430,7 @@ TEST_F(TransportAdapterTest, DisconnectDevice_DeviceAddedConnectionCreated) { TransportAdapter::Error res = transport_adapter.ConnectDevice(uniq_id); EXPECT_EQ(TransportAdapter::OK, res); - ConnectionMock* mock_connection = new ConnectionMock(); + MockConnection* mock_connection = new MockConnection(); transport_adapter.ConnectionCreated(mock_connection, uniq_id, app_handle); EXPECT_CALL(*mock_connection, Disconnect()) @@ -461,17 +443,18 @@ TEST_F(TransportAdapterTest, DisconnectDevice_DeviceAddedConnectionCreated) { } TEST_F(TransportAdapterTest, DeviceDisconnected) { - ServerConnectionFactoryMock* serverMock = new ServerConnectionFactoryMock(); - TestTransportAdapter transport_adapter(NULL, serverMock, NULL); + MockServerConnectionFactory* serverMock = new MockServerConnectionFactory(); + MockTransportAdapterImpl transport_adapter( + NULL, serverMock, NULL, last_state_, transport_manager_settings); EXPECT_CALL(*serverMock, Init()).WillOnce(Return(TransportAdapter::OK)); EXPECT_CALL(transport_adapter, Restore()).WillOnce(Return(true)); transport_adapter.Init(); - TransportAdapterListenerMock mock_listener; + MockTransportAdapterListener mock_listener; transport_adapter.AddListener(&mock_listener); - DeviceMock* mockdev = new DeviceMock(dev_id, uniq_id); + MockDevice* mockdev = new MockDevice(dev_id, uniq_id); EXPECT_CALL(mock_listener, OnDeviceListUpdated(_)); transport_adapter.AddDevice(mockdev); @@ -488,12 +471,13 @@ TEST_F(TransportAdapterTest, DeviceDisconnected) { TransportAdapter::Error res = transport_adapter.ConnectDevice(uniq_id); EXPECT_EQ(TransportAdapter::OK, res); - ConnectionMock* mock_connection = new ConnectionMock(); + MockConnection* mock_connection = new MockConnection(); transport_adapter.ConnectionCreated(mock_connection, uniq_id, app_handle); EXPECT_CALL(*mockdev, GetApplicationList()).WillOnce(Return(intList)); - EXPECT_CALL(mock_listener, OnUnexpectedDisconnect(&transport_adapter, uniq_id, - app_handle, _)); + EXPECT_CALL( + mock_listener, + OnUnexpectedDisconnect(&transport_adapter, uniq_id, app_handle, _)); EXPECT_CALL(mock_listener, OnDisconnectDeviceDone(&transport_adapter, uniq_id)); EXPECT_CALL(mock_listener, OnDeviceListUpdated(&transport_adapter)); @@ -504,8 +488,9 @@ TEST_F(TransportAdapterTest, DeviceDisconnected) { } TEST_F(TransportAdapterTest, AbortedConnectSuccess) { - ServerConnectionFactoryMock* serverMock = new ServerConnectionFactoryMock(); - TestTransportAdapter transport_adapter(NULL, serverMock, NULL); + MockServerConnectionFactory* serverMock = new MockServerConnectionFactory(); + MockTransportAdapterImpl transport_adapter( + NULL, serverMock, NULL, last_state_, transport_manager_settings); EXPECT_CALL(*serverMock, Init()).WillOnce(Return(TransportAdapter::OK)); EXPECT_CALL(transport_adapter, Restore()).WillOnce(Return(true)); @@ -517,7 +502,7 @@ TEST_F(TransportAdapterTest, AbortedConnectSuccess) { TransportAdapter::Error res = transport_adapter.Connect(dev_id, app_handle); EXPECT_EQ(TransportAdapter::OK, res); - TransportAdapterListenerMock mock_listener; + MockTransportAdapterListener mock_listener; transport_adapter.AddListener(&mock_listener); CommunicationError ce; @@ -528,9 +513,10 @@ TEST_F(TransportAdapterTest, AbortedConnectSuccess) { } TEST_F(TransportAdapterTest, SendData) { - DeviceScannerMock* dev_mock = new DeviceScannerMock(); - ServerConnectionFactoryMock* serverMock = new ServerConnectionFactoryMock(); - TestTransportAdapter transport_adapter(dev_mock, serverMock, NULL); + MockDeviceScanner* dev_mock = new MockDeviceScanner(); + MockServerConnectionFactory* serverMock = new MockServerConnectionFactory(); + MockTransportAdapterImpl transport_adapter( + dev_mock, serverMock, NULL, last_state_, transport_manager_settings); EXPECT_CALL(*dev_mock, Init()).WillOnce(Return(TransportAdapter::OK)); EXPECT_CALL(*serverMock, Init()).WillOnce(Return(TransportAdapter::OK)); @@ -543,7 +529,7 @@ TEST_F(TransportAdapterTest, SendData) { TransportAdapter::Error res = transport_adapter.Connect(dev_id, app_handle); EXPECT_EQ(TransportAdapter::OK, res); - ConnectionMock* mock_connection = new ConnectionMock(); + MockConnection* mock_connection = new MockConnection(); transport_adapter.ConnectionCreated(mock_connection, dev_id, app_handle); EXPECT_CALL(transport_adapter, Store()); @@ -563,10 +549,14 @@ TEST_F(TransportAdapterTest, SendData) { } TEST_F(TransportAdapterTest, SendData_ConnectionNotEstablished) { - DeviceScannerMock* dev_mock = new DeviceScannerMock(); - ClientConnectionListenerMock* clientMock = new ClientConnectionListenerMock(); - ServerConnectionFactoryMock* serverMock = new ServerConnectionFactoryMock(); - TestTransportAdapter transport_adapter(dev_mock, serverMock, clientMock); + MockDeviceScanner* dev_mock = new MockDeviceScanner(); + MockClientConnectionListener* clientMock = new MockClientConnectionListener(); + MockServerConnectionFactory* serverMock = new MockServerConnectionFactory(); + MockTransportAdapterImpl transport_adapter(dev_mock, + serverMock, + clientMock, + last_state_, + transport_manager_settings); EXPECT_CALL(*dev_mock, Init()).WillOnce(Return(TransportAdapter::OK)); EXPECT_CALL(*clientMock, Init()).WillOnce(Return(TransportAdapter::OK)); @@ -580,7 +570,7 @@ TEST_F(TransportAdapterTest, SendData_ConnectionNotEstablished) { TransportAdapter::Error res = transport_adapter.Connect(dev_id, app_handle); EXPECT_EQ(TransportAdapter::OK, res); - ConnectionMock* mock_connection = new ConnectionMock(); + MockConnection* mock_connection = new MockConnection(); transport_adapter.ConnectionCreated(mock_connection, dev_id, app_handle); const unsigned int kSize = 3; @@ -597,9 +587,10 @@ TEST_F(TransportAdapterTest, SendData_ConnectionNotEstablished) { } TEST_F(TransportAdapterTest, StartClientListening_ClientNotInitialized) { - DeviceScannerMock* dev_mock = new DeviceScannerMock(); - ClientConnectionListenerMock* clientMock = new ClientConnectionListenerMock(); - TestTransportAdapter transport_adapter(dev_mock, NULL, clientMock); + MockDeviceScanner* dev_mock = new MockDeviceScanner(); + MockClientConnectionListener* clientMock = new MockClientConnectionListener(); + MockTransportAdapterImpl transport_adapter( + dev_mock, NULL, clientMock, last_state_, transport_manager_settings); EXPECT_CALL(*dev_mock, Init()).WillOnce(Return(TransportAdapter::OK)); EXPECT_CALL(*clientMock, Init()).WillOnce(Return(TransportAdapter::OK)); @@ -617,9 +608,10 @@ TEST_F(TransportAdapterTest, StartClientListening_ClientNotInitialized) { } TEST_F(TransportAdapterTest, StartClientListening) { - DeviceScannerMock* dev_mock = new DeviceScannerMock(); - ClientConnectionListenerMock* clientMock = new ClientConnectionListenerMock(); - TestTransportAdapter transport_adapter(dev_mock, NULL, clientMock); + MockDeviceScanner* dev_mock = new MockDeviceScanner(); + MockClientConnectionListener* clientMock = new MockClientConnectionListener(); + MockTransportAdapterImpl transport_adapter( + dev_mock, NULL, clientMock, last_state_, transport_manager_settings); EXPECT_CALL(*dev_mock, Init()).WillOnce(Return(TransportAdapter::OK)); EXPECT_CALL(*clientMock, Init()).WillOnce(Return(TransportAdapter::OK)); @@ -638,10 +630,14 @@ TEST_F(TransportAdapterTest, StartClientListening) { } TEST_F(TransportAdapterTest, StopClientListening_Success) { - DeviceScannerMock* dev_mock = new DeviceScannerMock(); - ClientConnectionListenerMock* clientMock = new ClientConnectionListenerMock(); - ServerConnectionFactoryMock* serverMock = new ServerConnectionFactoryMock(); - TestTransportAdapter transport_adapter(dev_mock, serverMock, clientMock); + MockDeviceScanner* dev_mock = new MockDeviceScanner(); + MockClientConnectionListener* clientMock = new MockClientConnectionListener(); + MockServerConnectionFactory* serverMock = new MockServerConnectionFactory(); + MockTransportAdapterImpl transport_adapter(dev_mock, + serverMock, + clientMock, + last_state_, + transport_manager_settings); EXPECT_CALL(*dev_mock, Init()).WillOnce(Return(TransportAdapter::OK)); EXPECT_CALL(*clientMock, Init()).WillOnce(Return(TransportAdapter::OK)); @@ -668,10 +664,14 @@ TEST_F(TransportAdapterTest, StopClientListening_Success) { } TEST_F(TransportAdapterTest, FindNewApplicationsRequest) { - DeviceScannerMock* dev_mock = new DeviceScannerMock(); - ClientConnectionListenerMock* clientMock = new ClientConnectionListenerMock(); - ServerConnectionFactoryMock* serverMock = new ServerConnectionFactoryMock(); - TestTransportAdapter transport_adapter(dev_mock, serverMock, clientMock); + MockDeviceScanner* dev_mock = new MockDeviceScanner(); + MockClientConnectionListener* clientMock = new MockClientConnectionListener(); + MockServerConnectionFactory* serverMock = new MockServerConnectionFactory(); + MockTransportAdapterImpl transport_adapter(dev_mock, + serverMock, + clientMock, + last_state_, + transport_manager_settings); EXPECT_CALL(*dev_mock, Init()).WillOnce(Return(TransportAdapter::OK)); EXPECT_CALL(*clientMock, Init()).WillOnce(Return(TransportAdapter::OK)); @@ -679,7 +679,7 @@ TEST_F(TransportAdapterTest, FindNewApplicationsRequest) { EXPECT_CALL(transport_adapter, Restore()).WillOnce(Return(true)); transport_adapter.Init(); - TransportAdapterListenerMock mock_listener; + MockTransportAdapterListener mock_listener; transport_adapter.AddListener(&mock_listener); EXPECT_CALL(mock_listener, OnFindNewApplicationsRequest(&transport_adapter)); @@ -691,11 +691,12 @@ TEST_F(TransportAdapterTest, FindNewApplicationsRequest) { } TEST_F(TransportAdapterTest, GetDeviceAndApplicationLists) { - TestTransportAdapter transport_adapter(NULL, NULL, NULL); + MockTransportAdapterImpl transport_adapter( + NULL, NULL, NULL, last_state_, transport_manager_settings); EXPECT_CALL(transport_adapter, Restore()).WillOnce(Return(true)); transport_adapter.Init(); - DeviceMock* mockdev = new DeviceMock(dev_id, uniq_id); + MockDevice* mockdev = new MockDevice(dev_id, uniq_id); transport_adapter.AddDevice(mockdev); std::vector<std::string> devList = transport_adapter.GetDeviceList(); @@ -708,12 +709,12 @@ TEST_F(TransportAdapterTest, GetDeviceAndApplicationLists) { std::vector<int> res = transport_adapter.GetApplicationList(uniq_id); ASSERT_EQ(1u, res.size()); EXPECT_EQ(intList[0], res[0]); - } TEST_F(TransportAdapterTest, FindEstablishedConnection) { - ServerConnectionFactoryMock* serverMock = new ServerConnectionFactoryMock(); - TestTransportAdapter transport_adapter(NULL, serverMock, NULL); + MockServerConnectionFactory* serverMock = new MockServerConnectionFactory(); + MockTransportAdapterImpl transport_adapter( + NULL, serverMock, NULL, last_state_, transport_manager_settings); EXPECT_CALL(*serverMock, Init()).WillOnce(Return(TransportAdapter::OK)); EXPECT_CALL(transport_adapter, Restore()).WillOnce(Return(true)); @@ -725,7 +726,7 @@ TEST_F(TransportAdapterTest, FindEstablishedConnection) { TransportAdapter::Error res = transport_adapter.Connect(dev_id, app_handle); EXPECT_EQ(TransportAdapter::OK, res); - ConnectionSPtr mock_connection = new ConnectionMock(); + ConnectionSPtr mock_connection = new MockConnection(); transport_adapter.ConnectionCreated(mock_connection, dev_id, app_handle); EXPECT_CALL(transport_adapter, Store()); diff --git a/src/components/transport_manager/test/transport_manager_default_test.cc b/src/components/transport_manager/test/transport_manager_default_test.cc index 4e0bd94845..8207737d93 100644 --- a/src/components/transport_manager/test/transport_manager_default_test.cc +++ b/src/components/transport_manager/test/transport_manager_default_test.cc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, Ford Motor Company + * Copyright (c) 2016, Ford Motor Company * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -32,15 +32,44 @@ #include "gtest/gtest.h" #include "transport_manager/transport_manager.h" #include "transport_manager/transport_manager_default.h" +#include "resumption/last_state.h" +#include "transport_manager/mock_transport_manager_settings.h" +#include "resumption/last_state.h" namespace test { -namespace test_transport_manager_instance { -TEST(TestTransportManagerDefault, CreateOnlyInstance) { - transport_manager::TransportManager* instance = - transport_manager::TransportManagerDefault::instance(); - ASSERT_EQ(instance, transport_manager::TransportManagerDefault::instance()); - transport_manager::TransportManagerDefault::destroy(); +namespace components { +namespace transport_manager_test { + +using ::testing::Return; + +TEST(TestTransportManagerDefault, Init_LastStateNotUsed) { + MockTransportManagerSettings transport_manager_settings; + transport_manager::TransportManagerDefault transport_manager( + transport_manager_settings); + resumption::LastState last_state("app_storage_folder", "app_info_storage2"); + + EXPECT_CALL(transport_manager_settings, use_last_state()) + .WillRepeatedly(Return(false)); + EXPECT_CALL(transport_manager_settings, transport_manager_tcp_adapter_port()) + .WillRepeatedly(Return(1u)); + transport_manager.Init(last_state); +} + +TEST(TestTransportManagerDefault, Init_LastStateUsed) { + MockTransportManagerSettings transport_manager_settings; + transport_manager::TransportManagerDefault transport_manager( + transport_manager_settings); + resumption::LastState last_state("app_storage_folder", "app_info_storage2"); + + EXPECT_CALL(transport_manager_settings, use_last_state()) + .WillRepeatedly(Return(true)); + EXPECT_CALL(transport_manager_settings, transport_manager_tcp_adapter_port()) + .WillRepeatedly(Return(1u)); + + transport_manager.Init(last_state); + transport_manager.Stop(); } +} // namespace transport_manager_test +} // namespace components } // namespace test -} // namespace test_transport_manager_instance 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 8ee1d70887..ddfd827358 100644 --- a/src/components/transport_manager/test/transport_manager_impl_test.cc +++ b/src/components/transport_manager/test/transport_manager_impl_test.cc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, Ford Motor Company + * Copyright (c) 2016, Ford Motor Company * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -30,17 +30,24 @@ * POSSIBILITY OF SUCH DAMAGE. */ +#include <string> #include "gtest/gtest.h" #include "protocol/raw_message.h" #include "transport_manager/common.h" #include "transport_manager/transport_manager_impl.h" -#include "include/transport_adapter_mock.h" -#include "include/transport_manager_listener_mock.h" -#include "include/transport_adapter_listener_mock.h" -#include "include/time_metric_observer_mock.h" +#include "transport_manager/mock_telemetry_observer.h" +#include "transport_manager/transport_manager_listener_mock.h" +#include "transport_manager/mock_transport_adapter_listener.h" +#include "transport_manager/mock_telemetry_observer.h" +#include "transport_manager/transport_adapter_mock.h" +#include "transport_manager/mock_transport_manager_impl.h" +#include "transport_manager/mock_transport_manager_settings.h" +#include "utils/make_shared.h" +#include "utils/shared_ptr.h" -#include "transport_manager/transport_adapter/transport_adapter_event.h" +#include "resumption/last_state.h" +#include "utils/make_shared.h" using ::testing::_; using ::testing::AtLeast; @@ -49,377 +56,410 @@ using ::testing::Return; using ::protocol_handler::RawMessage; using ::protocol_handler::RawMessagePtr; +using utils::MakeShared; + namespace test { namespace components { namespace transport_manager_test { -using namespace ::transport_manager; - -class TransportManagerTest : public TransportManagerImpl { - public: - void TestHandle(TransportAdapterEvent test_event) { Handle(test_event); } -}; +const std::string kAppStorageFolder = "app_storage_folder"; +const std::string kAppInfoFolder = "app_info_folder"; +const int kAsyncExpectationsTimeout = 10000; class TransportManagerImplTest : public ::testing::Test { protected: - virtual void SetUp() { - tm.Init(); - mock_adapter = new TransportAdapterMock(); - tm_listener = new TransportManagerListenerMock(); - - EXPECT_EQ(E_SUCCESS, tm.AddEventListener(tm_listener)); - EXPECT_CALL(*mock_adapter, AddListener(_)); - EXPECT_CALL(*mock_adapter, IsInitialised()).WillOnce(Return(true)); - EXPECT_EQ(::transport_manager::E_SUCCESS, - tm.AddTransportAdapter(mock_adapter)); - - device_handle_ = 1; + TransportManagerImplTest() + : tm_(settings) + , device_handle_(1) + , mac_address_("MA:CA:DR:ES:S") + , dev_info_(device_handle_, mac_address_, "TestDeviceName", "BTMAC") {} + + void SetUp() OVERRIDE { + resumption::LastState last_state_("app_storage_folder", "app_info_storage"); + tm_.Init(last_state_); + mock_adapter_ = new MockTransportAdapter(); + tm_listener_ = MakeShared<TransportManagerListenerMock>(); + +#ifdef TELEMETRY_MONITOR + tm_.SetTelemetryObserver(&mock_metric_observer_); +#endif // TELEMETRY_MONITOR + EXPECT_EQ(E_SUCCESS, tm_.AddEventListener(tm_listener_.get())); + EXPECT_CALL(*mock_adapter_, AddListener(_)); + EXPECT_CALL(*mock_adapter_, IsInitialised()).WillOnce(Return(true)); + EXPECT_EQ(E_SUCCESS, tm_.AddTransportAdapter(mock_adapter_)); + connection_key_ = 1; - mac_address_ = "MA:CA:DR:ES:S"; - error_ = new BaseError(); + error_ = MakeShared<BaseError>(); const unsigned int version_protocol_ = 1; const unsigned int kSize = 12; - unsigned char data[kSize] = {0x20, 0x07, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + unsigned char data[kSize] = { + 0x20, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; test_message_ = - new RawMessage(connection_key_, version_protocol_, data, kSize); + MakeShared<RawMessage>(connection_key_, version_protocol_, data, kSize); } - virtual void TearDown() { delete tm_listener; } - - void HandleDeviceListUpdated(); - void HandleConnection(); - void HandleSendDone(); - void HandleSendFailed(); - void HandleSearchDone(); - void HandleSearchFail(); - void HandleFindNewApplicationsRequest(); - void HandleConnectionFailed(); - void HandleConnectionClosed(); - void HandleDisconnectionFailed(); - void HandleReceiveDone(); - - TransportManagerTest tm; - TransportAdapterMock* mock_adapter; - - TransportManagerListenerMock* tm_listener; - - const ApplicationHandle application_id = 1; - - // count of connections - ConnectionUID connection_key_; - RawMessagePtr test_message_; - DeviceHandle device_handle_; - std::string mac_address_; - - DeviceList dev; - BaseErrorPtr error_; -}; - -void TransportManagerImplTest::HandleDeviceListUpdated() { - int type = static_cast<int>( - TransportAdapterListenerImpl::EventTypeEnum::ON_DEVICE_LIST_UPDATED); - const DeviceInfo dev_info(device_handle_, mac_address_, "TestDeviceName", - "BTMAC"); - - TransportAdapterEvent test_event(type, mock_adapter, dev_info.mac_address(), - application_id, test_message_, error_); - dev.push_back(dev_info.mac_address()); - std::vector<DeviceInfo> vector_dev_info; - std::vector<DeviceInfo>::iterator it = vector_dev_info.begin(); - vector_dev_info.insert(it, dev_info); - - EXPECT_CALL(*mock_adapter, GetDeviceList()) - .Times(AtLeast(1)) - .WillRepeatedly(Return(dev)); - EXPECT_CALL(*mock_adapter, DeviceName(dev_info.mac_address())) - .Times(AtLeast(1)) - .WillRepeatedly(Return(dev_info.name())); - EXPECT_CALL(*mock_adapter, GetConnectionType()) - .Times(AtLeast(1)) - .WillRepeatedly(Return(dev_info.connection_type())); - - EXPECT_CALL(*tm_listener, OnDeviceFound(dev_info)); - EXPECT_CALL(*tm_listener, OnDeviceAdded(dev_info)); - EXPECT_CALL(*tm_listener, OnDeviceListUpdated(vector_dev_info)); - - tm.TestHandle(test_event); - dev.pop_back(); -} - -void TransportManagerImplTest::HandleConnection() { - int type = static_cast<int>( - TransportAdapterListenerImpl::EventTypeEnum::ON_CONNECT_DONE); - const DeviceInfo dev_info(device_handle_, mac_address_, "TestDeviceName", - "BTMAC"); - - TransportAdapterEvent test_event(type, mock_adapter, dev_info.mac_address(), - application_id, test_message_, error_); - - EXPECT_CALL(*mock_adapter, DeviceName(dev_info.mac_address())) - .WillOnce(Return(dev_info.name())); - EXPECT_CALL(*mock_adapter, GetConnectionType()) - .WillOnce(Return(dev_info.connection_type())); - - EXPECT_CALL(*tm_listener, OnConnectionEstablished(dev_info, connection_key_)); - - tm.TestHandle(test_event); -} - -void TransportManagerImplTest::HandleConnectionFailed() { - int type = static_cast<int>( - TransportAdapterListenerImpl::EventTypeEnum::ON_CONNECT_FAIL); + void HandleDeviceListUpdated() { + const int type = static_cast<int>( + TransportAdapterListenerImpl::EventTypeEnum::ON_DEVICE_LIST_UPDATED); + + TransportAdapterEvent test_event(type, + mock_adapter_, + dev_info_.mac_address(), + application_id_, + test_message_, + error_); + device_list_.push_back(dev_info_.mac_address()); + std::vector<DeviceInfo> vector_dev_info; + vector_dev_info.push_back(dev_info_); + + EXPECT_CALL(*mock_adapter_, GetDeviceList()) + .Times(AtLeast(1)) + .WillRepeatedly(Return(device_list_)); + EXPECT_CALL(*mock_adapter_, DeviceName(dev_info_.mac_address())) + .Times(AtLeast(1)) + .WillRepeatedly(Return(dev_info_.name())); + EXPECT_CALL(*mock_adapter_, GetConnectionType()) + .Times(AtLeast(1)) + .WillRepeatedly(Return(dev_info_.connection_type())); + + EXPECT_CALL(*tm_listener_, OnDeviceFound(dev_info_)); + EXPECT_CALL(*tm_listener_, OnDeviceAdded(dev_info_)); + EXPECT_CALL(*tm_listener_, OnDeviceListUpdated(vector_dev_info)); + + tm_.TestHandle(test_event); + device_list_.pop_back(); + } - const DeviceInfo dev_info(device_handle_, mac_address_, "TestDeviceName", - "BTMAC"); + void HandleConnection() { + const int type = static_cast<int>( + TransportAdapterListenerImpl::EventTypeEnum::ON_CONNECT_DONE); - TransportAdapterEvent test_event(type, mock_adapter, dev_info.mac_address(), - application_id, test_message_, error_); + TransportAdapterEvent test_event(type, + mock_adapter_, + dev_info_.mac_address(), + application_id_, + test_message_, + error_); - EXPECT_CALL(*mock_adapter, DeviceName(dev_info.mac_address())) - .WillOnce(Return(dev_info.name())); - EXPECT_CALL(*mock_adapter, GetConnectionType()) - .WillOnce(Return(dev_info.connection_type())); + EXPECT_CALL(*mock_adapter_, DeviceName(dev_info_.mac_address())) + .WillOnce(Return(dev_info_.name())); + EXPECT_CALL(*mock_adapter_, GetConnectionType()) + .WillOnce(Return(dev_info_.connection_type())); - EXPECT_CALL(*tm_listener, OnConnectionFailed(dev_info, _)); + EXPECT_CALL(*tm_listener_, + OnConnectionEstablished(dev_info_, connection_key_)); - tm.TestHandle(test_event); -} + tm_.TestHandle(test_event); + } -void TransportManagerImplTest::HandleSendDone() { - int type = static_cast<int>( - TransportAdapterListenerImpl::EventTypeEnum::ON_SEND_DONE); - TransportAdapterEvent test_event(type, mock_adapter, mac_address_, - application_id, test_message_, error_); + void HandleConnectionFailed() { + const int type = static_cast<int>( + TransportAdapterListenerImpl::EventTypeEnum::ON_CONNECT_FAIL); - EXPECT_CALL(*tm_listener, OnTMMessageSend(test_message_)); + TransportAdapterEvent test_event(type, + mock_adapter_, + dev_info_.mac_address(), + application_id_, + test_message_, + error_); - tm.TestHandle(test_event); -} + EXPECT_CALL(*mock_adapter_, DeviceName(dev_info_.mac_address())) + .WillOnce(Return(dev_info_.name())); + EXPECT_CALL(*mock_adapter_, GetConnectionType()) + .WillOnce(Return(dev_info_.connection_type())); -void TransportManagerImplTest::HandleReceiveDone() { - int type = static_cast<int>( - TransportAdapterListenerImpl::EventTypeEnum::ON_RECEIVED_DONE); - TransportAdapterEvent test_event(type, mock_adapter, mac_address_, - application_id, test_message_, error_); + EXPECT_CALL(*tm_listener_, OnConnectionFailed(dev_info_, _)); - EXPECT_CALL(*tm_listener, OnTMMessageReceived(test_message_)); + tm_.TestHandle(test_event); + } - tm.TestHandle(test_event); -} + void HandleSendDone() { + const int type = static_cast<int>( + TransportAdapterListenerImpl::EventTypeEnum::ON_SEND_DONE); + TransportAdapterEvent test_event(type, + mock_adapter_, + mac_address_, + application_id_, + test_message_, + error_); +#ifdef TELEMETRY_MONITOR + EXPECT_CALL(mock_metric_observer_, StopRawMsg(test_event.event_data.get())); +#endif // TELEMETRY_MONITOR + EXPECT_CALL(*tm_listener_, OnTMMessageSend(test_message_)); + + tm_.TestHandle(test_event); + } -void TransportManagerImplTest::HandleSendFailed() { - int type = static_cast<int>( - TransportAdapterListenerImpl::EventTypeEnum::ON_SEND_FAIL); + void HandleReceiveDone() { + const int type = static_cast<int>( + TransportAdapterListenerImpl::EventTypeEnum::ON_RECEIVED_DONE); + TransportAdapterEvent test_event(type, + mock_adapter_, + mac_address_, + application_id_, + test_message_, + error_); +#ifdef TELEMETRY_MONITOR + EXPECT_CALL(mock_metric_observer_, StopRawMsg(_)); +#endif // TELEMETRY_MONITOR + EXPECT_CALL(*tm_listener_, OnTMMessageReceived(test_message_)); + + tm_.TestHandle(test_event); + } - TransportAdapterEvent test_event(type, mock_adapter, mac_address_, - application_id, test_message_, error_); + void HandleSendFailed() { + const int type = static_cast<int>( + TransportAdapterListenerImpl::EventTypeEnum::ON_SEND_FAIL); + + TransportAdapterEvent test_event(type, + mock_adapter_, + mac_address_, + application_id_, + test_message_, + error_); +#ifdef TELEMETRY_MONITOR + EXPECT_CALL(mock_metric_observer_, StopRawMsg(_)); +#endif // TELEMETRY_MONITOR + tm_.TestHandle(test_event); + } - tm.TestHandle(test_event); -} + void HandleSearchDone() { + const int type = static_cast<int>( + TransportAdapterListenerImpl::EventTypeEnum::ON_SEARCH_DONE); -void TransportManagerImplTest::HandleSearchDone() { - int type = static_cast<int>( - TransportAdapterListenerImpl::EventTypeEnum::ON_SEARCH_DONE); + TransportAdapterEvent test_event(type, + mock_adapter_, + mac_address_, + application_id_, + test_message_, + error_); - TransportAdapterEvent test_event(type, mock_adapter, mac_address_, - application_id, test_message_, error_); + EXPECT_CALL(*tm_listener_, OnScanDevicesFinished()); - EXPECT_CALL(*tm_listener, OnScanDevicesFinished()); + tm_.TestHandle(test_event); + } - tm.TestHandle(test_event); -} + void HandleSearchFail() { + const int type = static_cast<int>( + TransportAdapterListenerImpl::EventTypeEnum::ON_SEARCH_FAIL); -void TransportManagerImplTest::HandleSearchFail() { - int type = static_cast<int>( - TransportAdapterListenerImpl::EventTypeEnum::ON_SEARCH_FAIL); + TransportAdapterEvent test_event(type, + mock_adapter_, + mac_address_, + application_id_, + test_message_, + error_); - TransportAdapterEvent test_event(type, mock_adapter, mac_address_, - application_id, test_message_, error_); + EXPECT_CALL(*tm_listener_, OnScanDevicesFailed(_)); - EXPECT_CALL(*tm_listener, OnScanDevicesFailed(_)); + tm_.TestHandle(test_event); + } - tm.TestHandle(test_event); -} + void HandleFindNewApplicationsRequest() { + const int type = + static_cast<int>(TransportAdapterListenerImpl::EventTypeEnum:: + ON_FIND_NEW_APPLICATIONS_REQUEST); -void TransportManagerImplTest::HandleFindNewApplicationsRequest() { - int type = static_cast<int>(TransportAdapterListenerImpl::EventTypeEnum:: - ON_FIND_NEW_APPLICATIONS_REQUEST); + TransportAdapterEvent test_event(type, + mock_adapter_, + mac_address_, + application_id_, + test_message_, + error_); - TransportAdapterEvent test_event(type, mock_adapter, mac_address_, - application_id, test_message_, error_); + EXPECT_CALL(*tm_listener_, OnFindNewApplicationsRequest()); - EXPECT_CALL(*tm_listener, OnFindNewApplicationsRequest()); + tm_.TestHandle(test_event); + } - tm.TestHandle(test_event); -} + void HandleConnectionClosed() { + const int type = static_cast<int>( + TransportAdapterListenerImpl::EventTypeEnum::ON_DISCONNECT_DONE); -void TransportManagerImplTest::HandleConnectionClosed() { - int type = static_cast<int>( - TransportAdapterListenerImpl::EventTypeEnum::ON_DISCONNECT_DONE); + TransportAdapterEvent test_event(type, + mock_adapter_, + mac_address_, + application_id_, + test_message_, + error_); - TransportAdapterEvent test_event(type, mock_adapter, mac_address_, - application_id, test_message_, error_); + EXPECT_CALL(*tm_listener_, OnConnectionClosed(application_id_)); + EXPECT_CALL(*mock_adapter_, + RemoveFinalizedConnection(mac_address_, application_id_)); - EXPECT_CALL(*tm_listener, OnConnectionClosed(application_id)); + tm_.TestHandle(test_event); + } - tm.TestHandle(test_event); -} + void HandleDisconnectionFailed() { + const int type = static_cast<int>( + TransportAdapterListenerImpl::EventTypeEnum::ON_DISCONNECT_FAIL); -void TransportManagerImplTest::HandleDisconnectionFailed() { - int type = static_cast<int>( - TransportAdapterListenerImpl::EventTypeEnum::ON_DISCONNECT_FAIL); + TransportAdapterEvent test_event(type, + mock_adapter_, + mac_address_, + application_id_, + test_message_, + error_); - TransportAdapterEvent test_event(type, mock_adapter, mac_address_, - application_id, test_message_, error_); + EXPECT_CALL(*tm_listener_, OnDisconnectFailed(device_handle_, _)); - EXPECT_CALL(*tm_listener, OnDisconnectFailed(device_handle_, _)); + tm_.TestHandle(test_event); + } - tm.TestHandle(test_event); -} + void UninitializeTM() { + EXPECT_CALL(*mock_adapter_, Terminate()); + ASSERT_EQ(E_SUCCESS, tm_.Stop()); + } + MockTransportManagerSettings settings; + MockTransportManagerImpl tm_; +#ifdef TELEMETRY_MONITOR + MockTMTelemetryObserver mock_metric_observer_; +#endif // TELEMETRY_MONITOR + MockTransportAdapter* mock_adapter_; -TEST(TransportManagerTest, SearchDevices_AdaptersNotAdded) { - TransportManagerTest tm; - tm.Init(); + utils::SharedPtr<TransportManagerListenerMock> tm_listener_; - EXPECT_EQ(E_SUCCESS, tm.SearchDevices()); -} + const ApplicationHandle application_id_ = 1; -TEST(TransportManagerTest, AddTransportAdapter) { - TransportManagerTest tm; - tm.Init(); + ConnectionUID connection_key_; + RawMessagePtr test_message_; + DeviceHandle device_handle_; + std::string mac_address_; - TransportAdapterMock* mock_adapter = new TransportAdapterMock(); - TransportManagerListenerMock* tm_listener = - new TransportManagerListenerMock(); + const DeviceInfo dev_info_; + DeviceList device_list_; + BaseErrorPtr error_; +}; - EXPECT_EQ(E_SUCCESS, tm.AddEventListener(tm_listener)); - EXPECT_CALL(*mock_adapter, AddListener(_)); - EXPECT_CALL(*mock_adapter, IsInitialised()).WillOnce(Return(false)); - EXPECT_CALL(*mock_adapter, Init()).WillOnce(Return(TransportAdapter::OK)); - EXPECT_EQ(::transport_manager::E_SUCCESS, - tm.AddTransportAdapter(mock_adapter)); +TEST_F(TransportManagerImplTest, SearchDevices_AdaptersNotAdded) { + EXPECT_CALL(*mock_adapter_, SearchDevices()) + .WillOnce( + Return(transport_manager::transport_adapter::TransportAdapter::OK)); + EXPECT_EQ(E_SUCCESS, tm_.SearchDevices()); } TEST_F(TransportManagerImplTest, AddTransportAdapterSecondTime) { - EXPECT_EQ(E_ADAPTER_EXISTS, tm.AddTransportAdapter(mock_adapter)); + EXPECT_EQ(E_ADAPTER_EXISTS, tm_.AddTransportAdapter(mock_adapter_)); } TEST_F(TransportManagerImplTest, ConnectDevice) { HandleDeviceListUpdated(); - EXPECT_CALL(*mock_adapter, ConnectDevice(mac_address_)) + EXPECT_CALL(*mock_adapter_, ConnectDevice(mac_address_)) .WillOnce(Return(TransportAdapter::OK)); - EXPECT_EQ(E_SUCCESS, tm.ConnectDevice(device_handle_)); + EXPECT_EQ(E_SUCCESS, tm_.ConnectDevice(device_handle_)); } TEST_F(TransportManagerImplTest, ConnectDevice_DeviceNotHandled) { - EXPECT_CALL(*mock_adapter, ConnectDevice(mac_address_)).Times(0); - EXPECT_EQ(E_INVALID_HANDLE, tm.ConnectDevice(device_handle_)); + EXPECT_CALL(*mock_adapter_, ConnectDevice(mac_address_)).Times(0); + EXPECT_EQ(E_INVALID_HANDLE, tm_.ConnectDevice(device_handle_)); } TEST_F(TransportManagerImplTest, ConnectDevice_DeviceNotConnected) { HandleDeviceListUpdated(); - EXPECT_CALL(*mock_adapter, ConnectDevice(mac_address_)) + EXPECT_CALL(*mock_adapter_, ConnectDevice(mac_address_)) .WillOnce(Return(TransportAdapter::FAIL)); - EXPECT_EQ(E_INTERNAL_ERROR, tm.ConnectDevice(device_handle_)); + EXPECT_EQ(E_INTERNAL_ERROR, tm_.ConnectDevice(device_handle_)); } TEST_F(TransportManagerImplTest, DisconnectDevice) { HandleDeviceListUpdated(); - EXPECT_CALL(*mock_adapter, ConnectDevice(mac_address_)) + EXPECT_CALL(*mock_adapter_, ConnectDevice(mac_address_)) .WillOnce(Return(TransportAdapter::OK)); - EXPECT_EQ(E_SUCCESS, tm.ConnectDevice(device_handle_)); + EXPECT_EQ(E_SUCCESS, tm_.ConnectDevice(device_handle_)); - EXPECT_CALL(*mock_adapter, DisconnectDevice(mac_address_)) + EXPECT_CALL(*mock_adapter_, DisconnectDevice(mac_address_)) .WillOnce(Return(TransportAdapter::OK)); - EXPECT_EQ(E_SUCCESS, tm.DisconnectDevice(device_handle_)); + EXPECT_EQ(E_SUCCESS, tm_.DisconnectDevice(device_handle_)); } TEST_F(TransportManagerImplTest, DisconnectDevice_ConnectionFailed) { HandleDeviceListUpdated(); - EXPECT_CALL(*mock_adapter, ConnectDevice(mac_address_)) + EXPECT_CALL(*mock_adapter_, ConnectDevice(mac_address_)) .WillOnce(Return(TransportAdapter::FAIL)); - EXPECT_EQ(E_INTERNAL_ERROR, tm.ConnectDevice(device_handle_)); + EXPECT_EQ(E_INTERNAL_ERROR, tm_.ConnectDevice(device_handle_)); - EXPECT_CALL(*mock_adapter, DisconnectDevice(mac_address_)) + EXPECT_CALL(*mock_adapter_, DisconnectDevice(mac_address_)) .WillOnce(Return(TransportAdapter::FAIL)); - EXPECT_EQ(E_INTERNAL_ERROR, tm.DisconnectDevice(device_handle_)); + // Even with fail, we get Success + EXPECT_EQ(E_SUCCESS, tm_.DisconnectDevice(device_handle_)); } TEST_F(TransportManagerImplTest, DisconnectDevice_DeviceNotConnected) { - EXPECT_CALL(*mock_adapter, DisconnectDevice(mac_address_)).Times(0); - EXPECT_EQ(E_INVALID_HANDLE, tm.DisconnectDevice(device_handle_)); + EXPECT_CALL(*mock_adapter_, DisconnectDevice(mac_address_)).Times(0); + EXPECT_EQ(E_INVALID_HANDLE, tm_.DisconnectDevice(device_handle_)); } TEST_F(TransportManagerImplTest, Disconnect) { // Arrange HandleConnection(); - EXPECT_CALL(*mock_adapter, Disconnect(mac_address_, application_id)) + EXPECT_CALL(*mock_adapter_, Disconnect(mac_address_, application_id_)) .WillOnce(Return(TransportAdapter::OK)); // Assert - EXPECT_EQ(E_SUCCESS, tm.Disconnect(connection_key_)); + EXPECT_EQ(E_SUCCESS, tm_.Disconnect(connection_key_)); } TEST_F(TransportManagerImplTest, Disconnect_DisconnectionFailed) { // Arrange HandleConnection(); - EXPECT_CALL(*mock_adapter, Disconnect(mac_address_, application_id)) + EXPECT_CALL(*mock_adapter_, Disconnect(mac_address_, application_id_)) .WillOnce(Return(TransportAdapter::FAIL)); // Assert - EXPECT_EQ(E_INTERNAL_ERROR, tm.Disconnect(connection_key_)); + // Even with fail, we get Success + EXPECT_EQ(E_SUCCESS, tm_.Disconnect(connection_key_)); } TEST_F(TransportManagerImplTest, Disconnect_ConnectionNotExist) { - EXPECT_CALL(*mock_adapter, Disconnect(mac_address_, application_id)).Times(0); + EXPECT_CALL(*mock_adapter_, Disconnect(mac_address_, application_id_)) + .Times(0); // Assert - EXPECT_EQ(E_INVALID_HANDLE, tm.Disconnect(connection_key_)); + EXPECT_EQ(E_INVALID_HANDLE, tm_.Disconnect(connection_key_)); } TEST_F(TransportManagerImplTest, Disconnect_ConnectionDoesNotExists) { // Arrange HandleDeviceListUpdated(); - EXPECT_CALL(*mock_adapter, ConnectDevice(mac_address_)) + EXPECT_CALL(*mock_adapter_, ConnectDevice(mac_address_)) .WillRepeatedly(Return(TransportAdapter::OK)); - EXPECT_EQ(E_SUCCESS, tm.ConnectDevice(device_handle_)); + EXPECT_EQ(E_SUCCESS, tm_.ConnectDevice(device_handle_)); - EXPECT_CALL(*mock_adapter, Disconnect(mac_address_, application_id)) + EXPECT_CALL(*mock_adapter_, Disconnect(mac_address_, application_id_)) .WillRepeatedly(Return(TransportAdapter::OK)); // Assert - EXPECT_EQ(E_INVALID_HANDLE, tm.Disconnect(connection_key_)); + EXPECT_EQ(E_INVALID_HANDLE, tm_.Disconnect(connection_key_)); } -TEST_F(TransportManagerImplTest, DisconnectForce) { +TEST_F(TransportManagerImplTest, DisconnectForce_TMIsInitialized) { // Arrange HandleConnection(); - EXPECT_CALL(*mock_adapter, Disconnect(mac_address_, application_id)) + EXPECT_CALL(*mock_adapter_, Disconnect(mac_address_, application_id_)) .WillRepeatedly(Return(TransportAdapter::OK)); // Assert - EXPECT_EQ(E_SUCCESS, tm.DisconnectForce(connection_key_)); + EXPECT_EQ(E_SUCCESS, tm_.DisconnectForce(connection_key_)); } TEST_F(TransportManagerImplTest, DisconnectForce_) { // Arrange HandleConnection(); - EXPECT_CALL(*mock_adapter, Disconnect(mac_address_, application_id)) + EXPECT_CALL(*mock_adapter_, Disconnect(mac_address_, application_id_)) .WillRepeatedly(Return(TransportAdapter::OK)); // Assert - EXPECT_EQ(E_SUCCESS, tm.DisconnectForce(connection_key_)); + EXPECT_EQ(E_SUCCESS, tm_.DisconnectForce(connection_key_)); } TEST_F(TransportManagerImplTest, SearchDevices_DeviceConnected) { HandleDeviceListUpdated(); - EXPECT_CALL(*mock_adapter, SearchDevices()) + EXPECT_CALL(*mock_adapter_, SearchDevices()) .WillOnce(Return(TransportAdapter::OK)); - EXPECT_EQ(E_SUCCESS, tm.SearchDevices()); + EXPECT_EQ(E_SUCCESS, tm_.SearchDevices()); HandleSearchDone(); } @@ -427,270 +467,259 @@ TEST_F(TransportManagerImplTest, SearchDevices_DeviceConnected) { TEST_F(TransportManagerImplTest, SearchDevices_DeviceNotFound) { HandleDeviceListUpdated(); - EXPECT_CALL(*mock_adapter, SearchDevices()) + EXPECT_CALL(*mock_adapter_, SearchDevices()) .WillOnce(Return(TransportAdapter::FAIL)); - EXPECT_EQ(E_ADAPTERS_FAIL, tm.SearchDevices()); + EXPECT_EQ(E_ADAPTERS_FAIL, tm_.SearchDevices()); } TEST_F(TransportManagerImplTest, SearchDevices_AdapterNotSupported) { HandleDeviceListUpdated(); - EXPECT_CALL(*mock_adapter, SearchDevices()) + EXPECT_CALL(*mock_adapter_, SearchDevices()) .WillOnce(Return(TransportAdapter::NOT_SUPPORTED)); - EXPECT_EQ(E_ADAPTERS_FAIL, tm.SearchDevices()); + EXPECT_EQ(E_ADAPTERS_FAIL, tm_.SearchDevices()); } TEST_F(TransportManagerImplTest, SearchDevices_AdapterWithBadState) { HandleDeviceListUpdated(); - EXPECT_CALL(*mock_adapter, SearchDevices()) + EXPECT_CALL(*mock_adapter_, SearchDevices()) .WillOnce(Return(TransportAdapter::BAD_STATE)); - EXPECT_EQ(E_ADAPTERS_FAIL, tm.SearchDevices()); + EXPECT_EQ(E_ADAPTERS_FAIL, tm_.SearchDevices()); } TEST_F(TransportManagerImplTest, SendMessageToDevice) { // Arrange HandleConnection(); - EXPECT_CALL(*mock_adapter, - SendData(mac_address_, application_id, test_message_)) + EXPECT_CALL(*mock_adapter_, + SendData(mac_address_, application_id_, test_message_)) .WillOnce(Return(TransportAdapter::OK)); - EXPECT_EQ(E_SUCCESS, tm.SendMessageToDevice(test_message_)); - testing::Mock::AsyncVerifyAndClearExpectations(10000); +#ifdef TELEMETRY_MONITOR + EXPECT_CALL(mock_metric_observer_, StartRawMsg(test_message_.get())); +#endif // TELEMETRY_MONITOR + + EXPECT_EQ(E_SUCCESS, tm_.SendMessageToDevice(test_message_)); + testing::Mock::AsyncVerifyAndClearExpectations(kAsyncExpectationsTimeout); } TEST_F(TransportManagerImplTest, SendMessageToDevice_SendingFailed) { // Arrange HandleConnection(); - TMMetricObserverMock* mock_metric_observer = new TMMetricObserverMock(); - tm.SetTimeMetricObserver(mock_metric_observer); + MockTMTelemetryObserver* mock_metric_observer = new MockTMTelemetryObserver(); + tm_.SetTelemetryObserver(mock_metric_observer); EXPECT_CALL(*mock_metric_observer, StartRawMsg(_)); - EXPECT_CALL(*mock_adapter, - SendData(mac_address_, application_id, test_message_)) + EXPECT_CALL(*mock_adapter_, + SendData(mac_address_, application_id_, test_message_)) .WillOnce(Return(TransportAdapter::FAIL)); - EXPECT_CALL(*tm_listener, OnTMMessageSendFailed(_, test_message_)); - EXPECT_EQ(E_SUCCESS, tm.SendMessageToDevice(test_message_)); + EXPECT_CALL(*tm_listener_, OnTMMessageSendFailed(_, test_message_)); + EXPECT_EQ(E_SUCCESS, tm_.SendMessageToDevice(test_message_)); EXPECT_CALL(*mock_metric_observer, StopRawMsg(_)).Times(0); delete mock_metric_observer; - testing::Mock::AsyncVerifyAndClearExpectations(10000); + testing::Mock::AsyncVerifyAndClearExpectations(kAsyncExpectationsTimeout); } TEST_F(TransportManagerImplTest, SendMessageToDevice_StartTimeObserver) { // Arrange HandleConnection(); - TMMetricObserverMock* mock_metric_observer = new TMMetricObserverMock(); - tm.SetTimeMetricObserver(mock_metric_observer); - EXPECT_CALL(*mock_adapter, - SendData(mac_address_, application_id, test_message_)) + MockTMTelemetryObserver* mock_metric_observer = new MockTMTelemetryObserver(); + tm_.SetTelemetryObserver(mock_metric_observer); + EXPECT_CALL(*mock_adapter_, + SendData(mac_address_, application_id_, test_message_)) .WillOnce(Return(TransportAdapter::OK)); EXPECT_CALL(*mock_metric_observer, StartRawMsg(_)); - EXPECT_EQ(E_SUCCESS, tm.SendMessageToDevice(test_message_)); + EXPECT_EQ(E_SUCCESS, tm_.SendMessageToDevice(test_message_)); delete mock_metric_observer; - testing::Mock::AsyncVerifyAndClearExpectations(10000); + testing::Mock::AsyncVerifyAndClearExpectations(kAsyncExpectationsTimeout); } TEST_F(TransportManagerImplTest, SendMessageToDevice_SendDone) { // Arrange HandleConnection(); - TMMetricObserverMock* mock_metric_observer = new TMMetricObserverMock(); - tm.SetTimeMetricObserver(mock_metric_observer); - EXPECT_CALL(*mock_adapter, - SendData(mac_address_, application_id, test_message_)) + EXPECT_CALL(*mock_adapter_, + SendData(mac_address_, application_id_, test_message_)) .WillOnce(Return(TransportAdapter::OK)); - EXPECT_CALL(*mock_metric_observer, StartRawMsg(_)); - - EXPECT_EQ(E_SUCCESS, tm.SendMessageToDevice(test_message_)); + EXPECT_CALL(mock_metric_observer_, StartRawMsg(test_message_.get())); + EXPECT_EQ(E_SUCCESS, tm_.SendMessageToDevice(test_message_)); - EXPECT_CALL(*mock_metric_observer, StopRawMsg(_)); HandleSendDone(); - delete mock_metric_observer; - testing::Mock::AsyncVerifyAndClearExpectations(10000); + testing::Mock::AsyncVerifyAndClearExpectations(kAsyncExpectationsTimeout); } TEST_F(TransportManagerImplTest, SendMessageFailed_GetHandleSendFailed) { // Arrange HandleConnection(); - TMMetricObserverMock* mock_metric_observer = new TMMetricObserverMock(); - tm.SetTimeMetricObserver(mock_metric_observer); - EXPECT_CALL(*mock_metric_observer, StartRawMsg(_)); - - EXPECT_CALL(*mock_adapter, - SendData(mac_address_, application_id, test_message_)) + EXPECT_CALL(*mock_adapter_, + SendData(mac_address_, application_id_, test_message_)) .WillOnce(Return(TransportAdapter::FAIL)); - - EXPECT_CALL(*tm_listener, OnTMMessageSendFailed(_, test_message_)); - EXPECT_EQ(E_SUCCESS, tm.SendMessageToDevice(test_message_)); - - EXPECT_CALL(*mock_metric_observer, StopRawMsg(_)); + EXPECT_CALL(mock_metric_observer_, StartRawMsg(test_message_.get())); + EXPECT_CALL(*tm_listener_, OnTMMessageSendFailed(_, test_message_)); + EXPECT_EQ(E_SUCCESS, tm_.SendMessageToDevice(test_message_)); HandleSendFailed(); - delete mock_metric_observer; - testing::Mock::AsyncVerifyAndClearExpectations(10000); + testing::Mock::AsyncVerifyAndClearExpectations(kAsyncExpectationsTimeout); } TEST_F(TransportManagerImplTest, RemoveDevice_DeviceWasAdded) { // Arrange HandleDeviceListUpdated(); - EXPECT_CALL(*mock_adapter, ConnectDevice(mac_address_)) + EXPECT_CALL(*mock_adapter_, ConnectDevice(mac_address_)) .WillOnce(Return(TransportAdapter::OK)); - EXPECT_EQ(E_SUCCESS, tm.ConnectDevice(device_handle_)); + EXPECT_EQ(E_SUCCESS, tm_.ConnectDevice(device_handle_)); // Assert - EXPECT_EQ(E_SUCCESS, tm.RemoveDevice(device_handle_)); + EXPECT_EQ(E_SUCCESS, tm_.RemoveDevice(device_handle_)); } TEST_F(TransportManagerImplTest, SetVisibilityOn_StartClientListening) { - EXPECT_CALL(*mock_adapter, StartClientListening()) + EXPECT_CALL(*mock_adapter_, StartClientListening()) .WillOnce(Return(TransportAdapter::OK)); - EXPECT_EQ(::transport_manager::E_SUCCESS, tm.Visibility(true)); + EXPECT_EQ(::transport_manager::E_SUCCESS, tm_.Visibility(true)); } TEST_F(TransportManagerImplTest, SetVisibilityOff_StopClientListening) { - EXPECT_CALL(*mock_adapter, StopClientListening()) + EXPECT_CALL(*mock_adapter_, StopClientListening()) .WillOnce(Return(TransportAdapter::OK)); - EXPECT_EQ(::transport_manager::E_SUCCESS, tm.Visibility(false)); + EXPECT_EQ(::transport_manager::E_SUCCESS, tm_.Visibility(false)); } TEST_F(TransportManagerImplTest, StopTransportManager) { HandleDeviceListUpdated(); - EXPECT_CALL(*mock_adapter, ConnectDevice(mac_address_)) + EXPECT_CALL(*mock_adapter_, ConnectDevice(mac_address_)) .WillRepeatedly(Return(TransportAdapter::OK)); - EXPECT_EQ(E_SUCCESS, tm.ConnectDevice(device_handle_)); + EXPECT_EQ(E_SUCCESS, tm_.ConnectDevice(device_handle_)); - EXPECT_CALL(*mock_adapter, DisconnectDevice(mac_address_)) + EXPECT_CALL(*mock_adapter_, DisconnectDevice(mac_address_)) .WillRepeatedly(Return(TransportAdapter::OK)); - EXPECT_CALL(*mock_adapter, Terminate()); - EXPECT_EQ(E_SUCCESS, tm.Stop()); + EXPECT_CALL(*mock_adapter_, Terminate()); + EXPECT_EQ(E_SUCCESS, tm_.Stop()); } TEST_F(TransportManagerImplTest, Reinit) { - EXPECT_CALL(*mock_adapter, Terminate()); - EXPECT_CALL(*mock_adapter, Init()).WillOnce(Return(TransportAdapter::OK)); - EXPECT_EQ(E_SUCCESS, tm.Reinit()); + EXPECT_CALL(*mock_adapter_, Terminate()); + EXPECT_CALL(*mock_adapter_, Init()).WillOnce(Return(TransportAdapter::OK)); + EXPECT_EQ(E_SUCCESS, tm_.Reinit()); } TEST_F(TransportManagerImplTest, Reinit_InitAdapterFailed) { - EXPECT_CALL(*mock_adapter, Terminate()); - EXPECT_CALL(*mock_adapter, Init()).WillOnce(Return(TransportAdapter::FAIL)); - EXPECT_EQ(E_ADAPTERS_FAIL, tm.Reinit()); + EXPECT_CALL(*mock_adapter_, Terminate()); + EXPECT_CALL(*mock_adapter_, Init()).WillOnce(Return(TransportAdapter::FAIL)); + EXPECT_EQ(E_ADAPTERS_FAIL, tm_.Reinit()); } TEST_F(TransportManagerImplTest, UpdateDeviceList_AddNewDevice) { - const DeviceInfo dev_info(device_handle_, mac_address_, "TestDeviceName", - "BTMAC"); + device_list_.push_back(dev_info_.mac_address()); - dev.push_back(dev_info.mac_address()); - std::vector<DeviceInfo> vector_dev_info; - std::vector<DeviceInfo>::iterator it = vector_dev_info.begin(); - vector_dev_info.insert(it, dev_info); - - EXPECT_CALL(*mock_adapter, GetDeviceList()).WillOnce(Return(dev)); - EXPECT_CALL(*mock_adapter, DeviceName(dev_info.mac_address())) - .WillOnce(Return(dev_info.name())); - EXPECT_CALL(*mock_adapter, GetConnectionType()) - .WillOnce(Return(dev_info.connection_type())); - EXPECT_CALL(*tm_listener, OnDeviceAdded(dev_info)); + 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_, GetConnectionType()) + .WillOnce(Return(dev_info_.connection_type())); + EXPECT_CALL(*tm_listener_, OnDeviceAdded(dev_info_)); - tm.UpdateDeviceList(mock_adapter); - dev.pop_back(); + tm_.UpdateDeviceList(mock_adapter_); + device_list_.pop_back(); } TEST_F(TransportManagerImplTest, UpdateDeviceList_RemoveDevice) { - const DeviceInfo dev_info(device_handle_, mac_address_, "TestDeviceName", - "BTMAC"); - - dev.push_back(dev_info.mac_address()); - std::vector<DeviceInfo> vector_dev_info; - std::vector<DeviceInfo>::iterator it = vector_dev_info.begin(); - vector_dev_info.insert(it, dev_info); + device_list_.push_back(dev_info_.mac_address()); ::testing::InSequence seq; - EXPECT_CALL(*mock_adapter, GetDeviceList()).WillOnce(Return(dev)); - EXPECT_CALL(*mock_adapter, GetConnectionType()) - .WillOnce(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); - dev.pop_back(); + EXPECT_CALL(*mock_adapter_, GetDeviceList()).WillOnce(Return(device_list_)); + EXPECT_CALL(*mock_adapter_, GetConnectionType()) + .WillOnce(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(); // Device list is empty now - EXPECT_CALL(*mock_adapter, GetDeviceList()).WillOnce(Return(dev)); - EXPECT_CALL(*tm_listener, OnDeviceRemoved(dev_info)); - tm.UpdateDeviceList(mock_adapter); + EXPECT_CALL(*mock_adapter_, GetDeviceList()).WillOnce(Return(device_list_)); + EXPECT_CALL(*tm_listener_, OnDeviceRemoved(dev_info_)); + tm_.UpdateDeviceList(mock_adapter_); } /* * Tests which check correct handling and receiving events */ TEST_F(TransportManagerImplTest, ReceiveEventFromDevice_OnSearchDeviceDone) { - int type = static_cast<int>( + const int type = static_cast<int>( TransportAdapterListenerImpl::EventTypeEnum::ON_SEARCH_DONE); - TransportAdapterEvent test_event(type, mock_adapter, mac_address_, - application_id, test_message_, error_); + TransportAdapterEvent test_event(type, + mock_adapter_, + mac_address_, + application_id_, + test_message_, + error_); - EXPECT_CALL(*tm_listener, OnScanDevicesFinished()); + EXPECT_CALL(*tm_listener_, OnScanDevicesFinished()); - tm.ReceiveEventFromDevice(test_event); - testing::Mock::AsyncVerifyAndClearExpectations(10000); + tm_.ReceiveEventFromDevice(test_event); + testing::Mock::AsyncVerifyAndClearExpectations(kAsyncExpectationsTimeout); } TEST_F(TransportManagerImplTest, ReceiveEventFromDevice_OnSearchDeviceFail) { - int type = static_cast<int>( + const int type = static_cast<int>( TransportAdapterListenerImpl::EventTypeEnum::ON_SEARCH_FAIL); - TransportAdapterEvent test_event(type, mock_adapter, mac_address_, - application_id, test_message_, error_); + TransportAdapterEvent test_event(type, + mock_adapter_, + mac_address_, + application_id_, + test_message_, + error_); - EXPECT_CALL(*tm_listener, OnScanDevicesFailed(_)); + EXPECT_CALL(*tm_listener_, OnScanDevicesFailed(_)); - tm.ReceiveEventFromDevice(test_event); - testing::Mock::AsyncVerifyAndClearExpectations(10000); + tm_.ReceiveEventFromDevice(test_event); + testing::Mock::AsyncVerifyAndClearExpectations(kAsyncExpectationsTimeout); } TEST_F(TransportManagerImplTest, ReceiveEventFromDevice_DeviceListUpdated) { - int type = static_cast<int>( + const int type = static_cast<int>( TransportAdapterListenerImpl::EventTypeEnum::ON_DEVICE_LIST_UPDATED); - const DeviceInfo dev_info(device_handle_, mac_address_, "TestDeviceName", - "BTMAC"); - TransportAdapterEvent test_event(type, mock_adapter, dev_info.mac_address(), - application_id, test_message_, error_); - dev.push_back(dev_info.mac_address()); + TransportAdapterEvent test_event(type, + mock_adapter_, + dev_info_.mac_address(), + application_id_, + test_message_, + error_); + device_list_.push_back(dev_info_.mac_address()); std::vector<DeviceInfo> vector_dev_info; - std::vector<DeviceInfo>::iterator it = vector_dev_info.begin(); - vector_dev_info.insert(it, dev_info); + vector_dev_info.push_back(dev_info_); - EXPECT_CALL(*mock_adapter, GetDeviceList()) + EXPECT_CALL(*mock_adapter_, GetDeviceList()) .Times(AtLeast(1)) - .WillRepeatedly(Return(dev)); - EXPECT_CALL(*mock_adapter, DeviceName(dev_info.mac_address())) + .WillRepeatedly(Return(device_list_)); + EXPECT_CALL(*mock_adapter_, DeviceName(dev_info_.mac_address())) .Times(AtLeast(1)) - .WillRepeatedly(Return(dev_info.name())); - EXPECT_CALL(*mock_adapter, GetConnectionType()) + .WillRepeatedly(Return(dev_info_.name())); + EXPECT_CALL(*mock_adapter_, GetConnectionType()) .Times(AtLeast(1)) - .WillRepeatedly(Return(dev_info.connection_type())); + .WillRepeatedly(Return(dev_info_.connection_type())); - EXPECT_CALL(*tm_listener, OnDeviceFound(dev_info)); - EXPECT_CALL(*tm_listener, OnDeviceAdded(dev_info)); - EXPECT_CALL(*tm_listener, OnDeviceListUpdated(vector_dev_info)); + EXPECT_CALL(*tm_listener_, OnDeviceFound(dev_info_)); + EXPECT_CALL(*tm_listener_, OnDeviceAdded(dev_info_)); + EXPECT_CALL(*tm_listener_, OnDeviceListUpdated(vector_dev_info)); - tm.ReceiveEventFromDevice(test_event); - dev.pop_back(); - testing::Mock::AsyncVerifyAndClearExpectations(10000); + tm_.ReceiveEventFromDevice(test_event); + device_list_.pop_back(); + testing::Mock::AsyncVerifyAndClearExpectations(kAsyncExpectationsTimeout); } TEST_F(TransportManagerImplTest, CheckEvents) { @@ -712,6 +741,333 @@ TEST_F(TransportManagerImplTest, CheckReceiveEvent) { HandleReceiveDone(); } +TEST_F(TransportManagerImplTest, CheckReceiveFailedEvent) { + // Arrange + const int type = static_cast<int>( + TransportAdapterListenerImpl::EventTypeEnum::ON_RECEIVED_FAIL); + + TransportAdapterEvent test_event(type, + mock_adapter_, + mac_address_, + application_id_, + test_message_, + error_); + // Check before act + HandleConnection(); + // Act and Assert + EXPECT_CALL(*tm_listener_, OnTMMessageReceiveFailed(_)); + tm_.TestHandle(test_event); +} + +TEST_F(TransportManagerImplTest, CheckUnexpectedDisconnect) { + // Arrange + const int type = static_cast<int>( + TransportAdapterListenerImpl::EventTypeEnum::ON_UNEXPECTED_DISCONNECT); + + TransportAdapterEvent test_event(type, + mock_adapter_, + mac_address_, + application_id_, + test_message_, + error_); + // Check before act + HandleConnection(); + // Act and Assert + EXPECT_CALL(*tm_listener_, OnUnexpectedDisconnect(connection_key_, _)); + EXPECT_CALL(*mock_adapter_, + RemoveFinalizedConnection(mac_address_, application_id_)); + tm_.TestHandle(test_event); +} + +TEST_F(TransportManagerImplTest, ConnectDevice_TMIsNotInitialized) { + // Check before Act + UninitializeTM(); + // Act and Assert + EXPECT_CALL(*mock_adapter_, ConnectDevice(_)).Times(0); + EXPECT_EQ(E_TM_IS_NOT_INITIALIZED, tm_.ConnectDevice(device_handle_)); +} + +TEST_F(TransportManagerImplTest, DisconnectDevice_TMIsNotInitialized) { + // Check before Act + UninitializeTM(); + // Act and Assert + EXPECT_CALL(*mock_adapter_, DisconnectDevice(_)).Times(0); + EXPECT_EQ(E_TM_IS_NOT_INITIALIZED, tm_.DisconnectDevice(device_handle_)); +} + +TEST_F(TransportManagerImplTest, Disconnect_TMIsNotInitialized) { + // Check before Act + UninitializeTM(); + // Act and Assert + EXPECT_CALL(*mock_adapter_, Disconnect(_, _)).Times(0); + EXPECT_EQ(E_TM_IS_NOT_INITIALIZED, tm_.Disconnect(connection_key_)); +} + +TEST_F(TransportManagerImplTest, DisconnectForce_TMIsNotInitialized) { + // Check before Act + UninitializeTM(); + // Act and Assert + EXPECT_CALL(*mock_adapter_, Disconnect(_, _)).Times(0); + EXPECT_EQ(E_TM_IS_NOT_INITIALIZED, tm_.DisconnectForce(connection_key_)); +} + +TEST_F(TransportManagerImplTest, DisconnectForce_ConnectionNotExist) { + // SetUp does not add connections + // Act and Assert + EXPECT_CALL(*mock_adapter_, Disconnect(_, _)).Times(0); + EXPECT_EQ(E_INVALID_HANDLE, tm_.DisconnectForce(connection_key_)); +} + +TEST_F(TransportManagerImplTest, Stop_TMIsNotInitialized) { + // Check before Act + UninitializeTM(); + // Act and Assert + EXPECT_CALL(*mock_adapter_, DisconnectDevice(_)).Times(0); + EXPECT_CALL(*mock_adapter_, Terminate()).Times(0); + EXPECT_EQ(E_TM_IS_NOT_INITIALIZED, tm_.Stop()); +} + +TEST_F(TransportManagerImplTest, SendMessageToDevice_TMIsNotInitialized) { + // Check before Act + UninitializeTM(); + // Act and Assert + EXPECT_CALL(*mock_adapter_, SendData(_, _, _)).Times(0); + EXPECT_CALL(*tm_listener_, OnTMMessageSendFailed(_, _)).Times(0); + EXPECT_EQ(E_TM_IS_NOT_INITIALIZED, tm_.SendMessageToDevice(test_message_)); +} + +TEST_F(TransportManagerImplTest, SendMessageToDevice_ConnectionNotExist) { + // SetUp does not add connections + // Act and Assert + EXPECT_CALL(*mock_adapter_, SendData(_, _, _)).Times(0); + EXPECT_CALL(*tm_listener_, OnTMMessageSendFailed(_, _)).Times(0); + EXPECT_EQ(E_INVALID_HANDLE, tm_.SendMessageToDevice(test_message_)); +} + +TEST_F(TransportManagerImplTest, ReceiveEventFromDevice_TMIsNotInitialized) { + // Arrange + const int type = static_cast<int>( + TransportAdapterListenerImpl::EventTypeEnum::ON_SEARCH_DONE); + TransportAdapterEvent test_event( + type, NULL, mac_address_, application_id_, test_message_, error_); + // Check before Act + UninitializeTM(); + // Act and Assert + EXPECT_CALL(*tm_listener_, OnScanDevicesFinished()).Times(0); + EXPECT_EQ(E_TM_IS_NOT_INITIALIZED, tm_.ReceiveEventFromDevice(test_event)); +} + +TEST_F(TransportManagerImplTest, RemoveDevice_TMIsNotInitialized) { + // Check before Act + UninitializeTM(); + // Act and Assert + EXPECT_EQ(E_TM_IS_NOT_INITIALIZED, tm_.RemoveDevice(device_handle_)); +} + +TEST_F(TransportManagerImplTest, Visibility_TMIsNotInitialized) { + // Arrange + const bool visible = true; + // Check before Act + UninitializeTM(); + // Act and Assert + EXPECT_CALL(*mock_adapter_, StartClientListening()).Times(0); + EXPECT_EQ(E_TM_IS_NOT_INITIALIZED, tm_.Visibility(visible)); +} + +TEST_F(TransportManagerImplTest, HandleMessage_ConnectionNotExist) { + EXPECT_CALL(*mock_adapter_, + SendData(mac_address_, application_id_, test_message_)).Times(0); + EXPECT_CALL(*tm_listener_, OnTMMessageSendFailed(_, test_message_)); + + tm_.TestHandle(test_message_); + testing::Mock::AsyncVerifyAndClearExpectations(kAsyncExpectationsTimeout); +} + +TEST_F(TransportManagerImplTest, SearchDevices_TMIsNotInitialized) { + // Check before Act + UninitializeTM(); + // Act and Assert + EXPECT_CALL(*mock_adapter_, SearchDevices()).Times(0); + EXPECT_EQ(E_TM_IS_NOT_INITIALIZED, tm_.SearchDevices()); +} + +TEST_F(TransportManagerImplTest, SetVisibilityOn_TransportAdapterNotSupported) { + EXPECT_CALL(*mock_adapter_, StartClientListening()) + .WillOnce(Return(TransportAdapter::NOT_SUPPORTED)); + EXPECT_EQ(E_SUCCESS, tm_.Visibility(true)); +} + +TEST_F(TransportManagerImplTest, + SetVisibilityOff_TransportAdapterNotSupported) { + EXPECT_CALL(*mock_adapter_, StopClientListening()) + .WillOnce(Return(TransportAdapter::NOT_SUPPORTED)); + EXPECT_EQ(E_SUCCESS, tm_.Visibility(false)); +} + +TEST_F(TransportManagerImplTest, + UpdateDeviceList_AddDevices_TwoTransportAdapters) { + // 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(*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()) + .WillOnce(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_, DeviceName(dev_info_.mac_address())) + .WillOnce(Return(dev_info_.name())); + EXPECT_CALL(*mock_adapter_, GetConnectionType()) + .WillOnce(Return(dev_info_.connection_type())); + EXPECT_CALL(*tm_listener_, OnDeviceAdded(dev_info_)); + tm_.UpdateDeviceList(mock_adapter_); + + device_list_.pop_back(); +} + +TEST_F(TransportManagerImplTest, + UpdateDeviceList_RemoveDevices_TwoTransportAdapters) { + // 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(*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()) + .WillOnce(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_, DeviceName(dev_info_.mac_address())) + .WillOnce(Return(dev_info_.name())); + EXPECT_CALL(*mock_adapter_, GetConnectionType()) + .WillOnce(Return(dev_info_.connection_type())); + EXPECT_CALL(*tm_listener_, OnDeviceAdded(dev_info_)); + tm_.UpdateDeviceList(mock_adapter_); + + device_list_.pop_back(); + + EXPECT_CALL(*second_mock_adapter, GetDeviceList()) + .WillOnce(Return(device_list_)); + EXPECT_CALL(*tm_listener_, OnDeviceRemoved(dev_info_)); + tm_.UpdateDeviceList(second_mock_adapter); + + EXPECT_CALL(*mock_adapter_, GetDeviceList()).WillOnce(Return(device_list_)); + EXPECT_CALL(*tm_listener_, OnDeviceRemoved(dev_info_)); + tm_.UpdateDeviceList(mock_adapter_); +} + +TEST_F(TransportManagerImplTest, + CheckEventOnDisconnectDone_ConnectionNotExist) { + // SetUp does not add connections + // Arrange + const int type = static_cast<int>( + TransportAdapterListenerImpl::EventTypeEnum::ON_DISCONNECT_DONE); + + TransportAdapterEvent test_event(type, + mock_adapter_, + mac_address_, + application_id_, + test_message_, + error_); + + // Act and Assert + EXPECT_CALL(*tm_listener_, OnConnectionClosed(_)).Times(0); + + tm_.TestHandle(test_event); +} + +TEST_F(TransportManagerImplTest, CheckEventOnSendDone_ConnectionNotExist) { + // SetUp does not add connections + // Arrange + const int type = static_cast<int>( + TransportAdapterListenerImpl::EventTypeEnum::ON_SEND_DONE); + + TransportAdapterEvent test_event(type, + mock_adapter_, + mac_address_, + application_id_, + test_message_, + error_); +#ifdef TELEMETRY_MONITOR + // Act and Assert + EXPECT_CALL(mock_metric_observer_, StopRawMsg(_)); +#endif // TELEMETRY_MONITOR + EXPECT_CALL(*tm_listener_, OnTMMessageSend(_)).Times(0); + + tm_.TestHandle(test_event); +} + +TEST_F(TransportManagerImplTest, CheckEventOnReceivedDone_ConnectionNotExist) { + // SetUp does not add connections + // Arrange + const int type = static_cast<int>( + TransportAdapterListenerImpl::EventTypeEnum::ON_RECEIVED_DONE); + TransportAdapterEvent test_event(type, + mock_adapter_, + mac_address_, + application_id_, + test_message_, + error_); +#ifdef TELEMETRY_MONITOR + // Act and Assert + EXPECT_CALL(mock_metric_observer_, StopRawMsg(_)).Times(0); +#endif // TELEMETRY_MONITOR + EXPECT_CALL(*tm_listener_, OnTMMessageReceived(_)).Times(0); + tm_.TestHandle(test_event); +} + +TEST_F(TransportManagerImplTest, CheckEventOnReceivedFail_ConnectionNotExist) { + // SetUp does not add connections + // Arrange + const int type = static_cast<int>( + TransportAdapterListenerImpl::EventTypeEnum::ON_RECEIVED_FAIL); + TransportAdapterEvent test_event(type, + mock_adapter_, + mac_address_, + application_id_, + test_message_, + error_); + // Act and Assert + EXPECT_CALL(*tm_listener_, OnTMMessageReceiveFailed(_)).Times(0); + tm_.TestHandle(test_event); +} + +TEST_F(TransportManagerImplTest, + CheckEventOnUnexpectedDisconnect_ConnectionNotExist) { + // SetUp does not add connections + // Arrange + const int type = static_cast<int>( + TransportAdapterListenerImpl::EventTypeEnum::ON_UNEXPECTED_DISCONNECT); + TransportAdapterEvent test_event(type, + mock_adapter_, + mac_address_, + application_id_, + test_message_, + error_); + // Act and Assert + EXPECT_CALL(*tm_listener_, OnUnexpectedDisconnect(_, _)).Times(0); + tm_.TestHandle(test_event); +} + } // namespace transport_manager_test } // namespace components } // namespace test diff --git a/src/components/transport_manager/test/transport_manager_instance_test.cc b/src/components/transport_manager/test/transport_manager_instance_test.cc deleted file mode 100644 index b5a251ba5e..0000000000 --- a/src/components/transport_manager/test/transport_manager_instance_test.cc +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (c) 2014, 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. - */ - -/* - Tests transport manager functionality with single device adapter that behaves correctly and single client - Following sequence is tested: - - TM created and runned - - TM client registered as listener - - TM client requests device scaning - - single device was returned to TM client with onDeviceListUpdated callback - - TM client calls "connect" on found device - - device adapter sends onApplicationConnected - - TM client receives onApplicationConnected - - device adapter sends three data parts that represents single frame - - TM client receives single frame with onFrameReceived callback - - TM client calls sendFrame with some frame data and user data - - TM client receives onFrameSendCompleted - - TM client calls DisconnectDevice - - TM client receives onApplicationDisconnected - */ - -#include <stddef.h> -#include <stdio.h> - -#include "gtest/gtest.h" -#include "gmock/gmock.h" - -#include "../../include/transport_manager/transport_manager.h" -#include "../include/transport_manager/transport_adapter/transport_adapter.h" -#include "../include/transport_manager/common.h" -#include "../include/transport_manager/transport_manager_impl.h" -#include "../include/transport_manager/transport_manager_default.h" -#include "../../connection_handler/include/connection_handler/connection_handler.h" - - -namespace test{ -namespace test_transport_manager_instance { -TEST(test_transport_manager_instance, test_transport_manager_instance) -{ - transport_manager::TransportManager *Instance = transport_manager::TransportManagerDefault::instance(); - ASSERT_EQ(Instance, transport_manager::TransportManagerDefault::instance()); -} - -}} diff --git a/src/components/transport_manager/test/transport_manager_test.cc b/src/components/transport_manager/test/transport_manager_test.cc deleted file mode 100644 index 551931788c..0000000000 --- a/src/components/transport_manager/test/transport_manager_test.cc +++ /dev/null @@ -1,394 +0,0 @@ -/* - * Copyright (c) 2015, 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 <pthread.h> - -#include "protocol/common.h" -#include "transport_manager/info.h" -#include "transport_manager/common.h" -#include "transport_manager/transport_manager_impl.h" - -#include "include/raw_message_matcher.h" -#include "include/mock_transport_adapter.h" -#include "include/mock_device.h" -#include "include/mock_transport_manager_listener.h" -#include "transport_manager/transport_manager_listener_empty.h" - -//for instance test -#include "transport_manager/transport_manager.h" -#include "transport_manager/transport_adapter/transport_adapter.h" -#include "transport_manager/transport_manager_default.h" -#include "connection_handler/connection_handler.h" - -using ::testing::_; -using ::testing::AtLeast; - -using ::transport_manager::ApplicationHandle; -using ::transport_manager::DeviceHandle; -using ::transport_manager::TransportManager; -using ::transport_manager::TransportManagerImpl; -using ::transport_manager::DeviceUID; -using ::transport_manager::DeviceInfo; - -namespace test { -namespace components { -namespace transport_manager { - -ACTION_P(SignalTest, test) { - if (test->thread_id != pthread_self()) { - pthread_mutex_lock(&test->test_mutex); - pthread_cond_signal(&test->test_cond); - pthread_mutex_unlock(&test->test_mutex); - } else { - test->one_thread = true; - } -} - -class TransportManagerTest : public ::testing::Test { - public: - volatile bool one_thread; - pthread_t thread_id; - static pthread_mutex_t test_mutex; - static pthread_cond_t test_cond; - int number; - - protected: - static TransportManagerImpl *tm; - static MockTransportAdapter *mock_adapter; - static MockTransportManagerListener *tm_listener; - - static void SetUpTestCase() { - pthread_mutex_init(&test_mutex, NULL); - pthread_cond_init(&test_cond, NULL); - mock_adapter = new MockTransportAdapter(); - mock_adapter->Init(); - //TransportManagerAttr cfg{0}; - tm = new TransportManagerImpl(); - - tm_listener = new MockTransportManagerListener(); - tm->AddEventListener(tm_listener); - tm->AddTransportAdapter(mock_adapter); - tm->Init(); - } - - static void TearDownTestCase() { - tm->Stop(); - delete tm_listener; - pthread_cond_destroy(&test_cond); - pthread_mutex_destroy(&test_mutex); - } - - virtual void SetUp() { - one_thread = false; - thread_id = pthread_self(); - mock_adapter->reset(); - pthread_mutex_lock(&test_mutex); - } - - virtual void TearDown() { pthread_mutex_unlock(&test_mutex); } - - bool waitCond(int seconds) { - if (one_thread) return true; - timespec elapsed; - clock_gettime(CLOCK_REALTIME, &elapsed); - elapsed.tv_sec += seconds; - return pthread_cond_timedwait(&test_cond, &test_mutex, &elapsed) != - ETIMEDOUT; - } -}; - -TransportManagerImpl *TransportManagerTest::tm; - -class MyTransportListener - : public ::transport_manager::TransportManagerListenerEmpty { - public: - explicit MyTransportListener(TransportManagerTest *test) - : TransportManagerListenerEmpty(), - connection(0), - device_handle(0), - test(test) {} - ConnectionUID connection; - DeviceHandle device_handle; - void OnConnectionEstablished(const DeviceInfo &device, - const ConnectionUID &connection_id) { - connection = connection_id; - - pthread_mutex_lock(&test->test_mutex); - pthread_cond_signal(&test->test_cond); - pthread_mutex_unlock(&test->test_mutex); - } - - void OnDeviceFound(const DeviceInfo &device_info) { - device_handle = device_info.device_handle(); - } - - void OnScanDevicesFinished() { - pthread_mutex_lock(&test->test_mutex); - pthread_cond_signal(&test->test_cond); - pthread_mutex_unlock(&test->test_mutex); - } - - void OnTMMessageReceived(const RawMessagePtr message) { - static int count = 0; - if (++count == 100) { - pthread_mutex_lock(&test->test_mutex); - pthread_cond_signal(&test->test_cond); - pthread_mutex_unlock(&test->test_mutex); - } - } - - void OnTMMessageSend(const RawMessagePtr message) { - } - - private: - TransportManagerTest *test; -}; - -pthread_mutex_t TransportManagerTest::test_mutex; -pthread_cond_t TransportManagerTest::test_cond; - -MockTransportAdapter *TransportManagerTest::mock_adapter = NULL; -MockTransportManagerListener *TransportManagerTest::tm_listener = NULL; - - - -TEST_F(TransportManagerTest, ScanDeviceFailed) { - - //assert - EXPECT_CALL(*tm_listener, OnDeviceFound(_)).Times(0); - EXPECT_CALL(*tm_listener, OnScanDevicesFailed(_)).WillOnce( - SignalTest(this)); - - //act - mock_adapter->get_device_scanner()->fail_further_search(); - tm->SearchDevices(); - - //assert - EXPECT_TRUE(waitCond(1)); - - //act - mock_adapter->get_device_scanner()->reset(); -} - -TEST_F(TransportManagerTest, ScanDeviceNoFound) { - - //assert - EXPECT_CALL(*tm_listener, OnScanDevicesFailed(_)).Times(0); - EXPECT_CALL(*tm_listener, OnDeviceFound(_)).Times(0); - EXPECT_CALL(*tm_listener, OnScanDevicesFinished()).WillOnce(SignalTest(this)); - - EXPECT_CALL(*tm_listener, OnDeviceListUpdated(_)); - - //act - tm->SearchDevices(); - - //assert - EXPECT_TRUE(waitCond(1)); - - //act - mock_adapter->get_device_scanner()->reset(); -} - -TEST_F(TransportManagerTest, ScanDeviceDone) { - - //assert - EXPECT_CALL(*tm_listener, OnScanDevicesFailed(_)).Times(0); - EXPECT_CALL(*tm_listener, OnDeviceFound(_)); - EXPECT_CALL(*tm_listener, OnScanDevicesFinished()).WillOnce(SignalTest(this)); - - //added to fixed warnings - EXPECT_CALL(*tm_listener, OnDeviceAdded(_)).Times(3); - EXPECT_CALL(*tm_listener, OnDeviceListUpdated(_)); - EXPECT_CALL(*tm_listener, OnDeviceRemoved(_)).Times(3); - - //act - mock_adapter->get_device_scanner()->AddDevice("TestDevice", "MA:CA:DR:ES:S"); - tm->SearchDevices(); - - //assert - EXPECT_TRUE(waitCond(1)); - - //act - mock_adapter->get_device_scanner()->reset(); -} - -TEST_F(TransportManagerTest, ScanManyDeviceDone) { - - - //assert - EXPECT_CALL(*tm_listener, OnScanDevicesFailed(_)).Times(0); - EXPECT_CALL(*tm_listener, OnDeviceFound(_)).Times(2); - EXPECT_CALL(*tm_listener, OnScanDevicesFinished()).WillOnce(SignalTest(this)); - - //assert - EXPECT_CALL(*tm_listener, OnDeviceListUpdated(_)); - //act - mock_adapter->get_device_scanner()->AddDevice("TestDevice1", - "MA:CA:DR:ES:S1"); - mock_adapter->get_device_scanner()->AddDevice("TestDevice2", - "MA:CA:DR:ES:S2"); - tm->SearchDevices(); - - //assert - EXPECT_TRUE(waitCond(1)); - - //act - mock_adapter->get_device_scanner()->reset(); -} - - -TEST_F(TransportManagerTest, ConnectAddDeviceCannotFailConnection) { - - //arrange - const DeviceInfo kInfo(1, "MA:CA:DR:ES:S", "TestDeviceName", "BTMAC"); - const ConnectionUID kConnection = 1; - - //assert - EXPECT_CALL(*tm_listener, OnDeviceFound(_)); - EXPECT_CALL(*tm_listener, OnScanDevicesFinished()); - - EXPECT_CALL(*tm_listener, OnDeviceAdded(_)); - EXPECT_CALL(*tm_listener, OnDeviceListUpdated(_)); - - //act - MyTransportListener *myListener = new MyTransportListener(this); - mock_adapter->get_device_scanner()->AddDevice(kInfo.name(), - kInfo.mac_address()); - tm->AddEventListener(myListener); - tm->SearchDevices(); - - //assert - EXPECT_TRUE(waitCond(10)); - - EXPECT_CALL(*tm_listener, OnConnectionFailed(_, _)).Times(0); - EXPECT_CALL(*tm_listener, OnConnectionEstablished(kInfo, kConnection)); - - //act - tm->ConnectDevice(kInfo.device_handle()); - - //assert - EXPECT_TRUE(waitCond(10)); - - //act - mock_adapter->get_device_scanner()->reset(); -} - - -//TODO{ALeshin}: APPLINK-10846 -//TEST_F(TransportManagerTest, ConnectDeviceSendReciveMessage) { - -// //arrange -// const ConnectionUID kConnection = 1; -// const int kTimes = 99; // Times of send message //if kTimes>99 OnTMMessageSend will fail -// const unsigned int kVersionProtocol = 1; - - -// //assert -// EXPECT_CALL(*tm_listener, OnTMMessageSendFailed(_, _)).Times(0); -// EXPECT_CALL(*tm_listener, OnTMMessageReceiveFailed(_, _)).Times(0); -// EXPECT_CALL(*tm_listener, OnConnectionClosed(kConnection)).Times(0); - -// EXPECT_CALL(*tm_listener, OnTMMessageSend(_)).Times(kTimes); -// EXPECT_CALL(*tm_listener, OnTMMessageReceived(_)).Times(kTimes); - -// //act -// const unsigned int kSize = 12; -// unsigned char data[kSize] = {0x20, 0x07, 0x01, 0x00, 0x00, 0x00, -// 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; -// for (int i = 0; i < kTimes; ++i) { -// const RawMessagePtr kMessage = -// new RawMessage(kConnection, kVersionProtocol, data, kSize); -// tm->SendMessageToDevice(kMessage); -// usleep(1000); -// } - -// //assert -// EXPECT_TRUE(waitCond(10)); - -// //act -// mock_adapter->get_device_scanner()->reset(); -//} - -//TODO{ALeshin}: APPLINK-10846 -//TEST_F(TransportManagerTest, ConnectAddDeviceCannotFailClose) { - -// //arrange -// const DeviceInfo kInfo(1, "MA:CA:DR:ES:S", "TestDeviceName", "BTMAC"); -// const ConnectionUID kConnection = 1; - -// //assert -// EXPECT_CALL(*tm_listener, OnDeviceFound(_)); -// EXPECT_CALL(*tm_listener, OnScanDevicesFinished()); -// EXPECT_CALL(*tm_listener, OnDeviceListUpdated(_)); - - -// //act -// MyTransportListener *myListener = new MyTransportListener(this); -// mock_adapter->get_device_scanner()->AddDevice(kInfo.name(), -// kInfo.mac_address()); -// tm->AddEventListener(myListener); -// tm->SearchDevices(); - -// //assert -// EXPECT_TRUE(waitCond(10)); - -// EXPECT_CALL(*tm_listener, OnConnectionClosedFailure(_, _)).Times(0); -// EXPECT_CALL(*tm_listener, OnDisconnectFailed(kInfo.device_handle(), _)) -// .Times(0); -// EXPECT_CALL(*tm_listener, OnConnectionClosed(kConnection)).WillOnce(SignalTest(this)); - -// //act -// tm->DisconnectDevice(kInfo.device_handle()); - -// //assert -// EXPECT_TRUE(waitCond(10)); - -// //act -// tm->Stop(); -// delete myListener; -// mock_adapter->get_device_scanner()->reset(); -//} - - -} // namespace transport_manager -} // namespace components -} // namespace test - - -namespace test{ -namespace test_transport_manager_instance { -TEST(testTransportManager, CreateOnlyInstance) -{ - transport_manager::TransportManager *Instance = transport_manager::TransportManagerDefault::instance(); - ASSERT_EQ(Instance, transport_manager::TransportManagerDefault::instance()); - delete Instance; -} -}} |