summaryrefslogtreecommitdiff
path: root/test/components/transport_manager/TransportManagerTestWithIncorrectDeviceAdapter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/components/transport_manager/TransportManagerTestWithIncorrectDeviceAdapter.cpp')
-rw-r--r--test/components/transport_manager/TransportManagerTestWithIncorrectDeviceAdapter.cpp224
1 files changed, 0 insertions, 224 deletions
diff --git a/test/components/transport_manager/TransportManagerTestWithIncorrectDeviceAdapter.cpp b/test/components/transport_manager/TransportManagerTestWithIncorrectDeviceAdapter.cpp
deleted file mode 100644
index 64e156d8a..000000000
--- a/test/components/transport_manager/TransportManagerTestWithIncorrectDeviceAdapter.cpp
+++ /dev/null
@@ -1,224 +0,0 @@
-//
-// 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.
-//
-
-/*
- Tests TransportManager behavior when device adapter behaves completely incorrectly.
- Tested cases are:
- - receiving data without available devices
- - receiving frameSendCompleted statuses without available devices/connections
- - receiving application disconnects without connected applications
- - receiving new frames with invalid/null data or it's size
- - receiving application disconnects for already disconnected applications
- - receiving application connect without available devices
- */
-#include "gtest/gtest.h"
-#include "gmock/gmock.h"
-
-#include "TransportManager/ITransportManagerDataListener.hpp"
-#include "TransportManager/ITransportManagerDeviceListener.hpp"
-#include "../../../src/components/TransportManager/src/CTransportManager.hpp"
-#include "../../../src/components/TransportManager/src/ITransportAdapter.hpp"
-
-namespace test
-{
- namespace components
- {
- namespace TransportManger
- {
- namespace IncorrectTransportAdapterTest
- {
- class MockDataListener: public NsSmartDeviceLink::NsTransportManager::ITransportManagerDataListener
- {
- public:
- MOCK_METHOD3(onFrameReceived, void(NsSmartDeviceLink::NsTransportManager::tConnectionHandle ConnectionHandle, const uint8_t * Data, size_t DataSize));
- MOCK_METHOD3(onFrameSendCompleted, void(NsSmartDeviceLink::NsTransportManager::tConnectionHandle ConnectionHandle, int UserData, NsSmartDeviceLink::NsTransportManager::ESendStatus SendStatus));
- };
-
- class MockDeviceListener: public NsSmartDeviceLink::NsTransportManager::ITransportManagerDeviceListener
- {
- public:
- MOCK_METHOD1(onDeviceListUpdated, void(const NsSmartDeviceLink::NsTransportManager::tDeviceList & DeviceList));
- MOCK_METHOD2(onApplicationConnected, void(const NsSmartDeviceLink::NsTransportManager::SDeviceInfo & ConnectedDevice, const NsSmartDeviceLink::NsTransportManager::tConnectionHandle Connection));
- MOCK_METHOD2(onApplicationDisconnected, void(const NsSmartDeviceLink::NsTransportManager::SDeviceInfo & DisconnectedDevice, const NsSmartDeviceLink::NsTransportManager::tConnectionHandle Connection));
- };
-
- class MockTransportAdapter: public NsSmartDeviceLink::NsTransportManager::ITransportAdapter
- {
- public:
- virtual NsSmartDeviceLink::NsTransportManager::EDeviceType GetDeviceType(void) const;
-
- MOCK_METHOD1(connectDevice, void (const NsSmartDeviceLink::NsTransportManager::tDeviceHandle DeviceHandle));
- MOCK_METHOD1(disconnectDevice, void (const NsSmartDeviceLink::NsTransportManager::tDeviceHandle DeviceHandle));
- MOCK_METHOD0(run, void());
- MOCK_METHOD0(scanForNewDevices, void());
- MOCK_METHOD4(sendFrame, void(NsSmartDeviceLink::NsTransportManager::tConnectionHandle ConnectionHandle, const uint8_t * Data, size_t DataSize, int UserData));
- };
-
- class TestTransportManager: public NsSmartDeviceLink::NsTransportManager::CTransportManager
- {
- public:
- TestTransportManager(MockTransportAdapter * TransportAdapter);
- ~TestTransportManager(void);
- protected:
- virtual void initializeTransportAdapters(void);
-
- private:
- MockTransportAdapter * mMockTransportAdapter;
- };
- }
- }
- }
-}
-
-NsSmartDeviceLink::NsTransportManager::EDeviceType test::components::TransportManger::IncorrectTransportAdapterTest::MockTransportAdapter::GetDeviceType(void) const
-{
- return NsSmartDeviceLink::NsTransportManager::DeviceBluetooth;
-}
-
-test::components::TransportManger::IncorrectTransportAdapterTest::TestTransportManager::TestTransportManager(test::components::TransportManger::IncorrectTransportAdapterTest::MockTransportAdapter* TransportAdapter):
-CTransportManager(),
-mMockTransportAdapter(TransportAdapter)
-{
-}
-
-test::components::TransportManger::IncorrectTransportAdapterTest::TestTransportManager::~TestTransportManager(void)
-{
-}
-
-void test::components::TransportManger::IncorrectTransportAdapterTest::TestTransportManager::initializeTransportAdapters(void)
-{
- addTransportAdapter(mMockTransportAdapter);
-}
-
-TEST(TransportManager, IncorrectTransportAdapter)
-{
- test::components::TransportManger::IncorrectTransportAdapterTest::MockTransportAdapter* mockTransportAdapter = new test::components::TransportManger::IncorrectTransportAdapterTest::MockTransportAdapter();
- test::components::TransportManger::IncorrectTransportAdapterTest::MockDataListener mockDataListener;
- test::components::TransportManger::IncorrectTransportAdapterTest::MockDeviceListener mockDeviceListener;
- test::components::TransportManger::IncorrectTransportAdapterTest::TestTransportManager transportManager(mockTransportAdapter);
-
- EXPECT_CALL(*mockTransportAdapter, run()).Times(1);
-
- transportManager.run();
-
- transportManager.addDeviceListener(&mockDeviceListener);
- transportManager.addDataListener(&mockDataListener);
-
- NsSmartDeviceLink::NsTransportManager::tDeviceHandle validDeviceHandle = 123;
- NsSmartDeviceLink::NsTransportManager::tDeviceHandle validConnectionHandle = 321;
-
- NsSmartDeviceLink::NsTransportManager::SDeviceInfo deviceInfo;
- deviceInfo.mDeviceHandle = validDeviceHandle;
- deviceInfo.mUniqueDeviceId = "id";
- deviceInfo.mUserFriendlyName = "Name";
-
- NsSmartDeviceLink::NsTransportManager::tDeviceList deviceList;
- deviceList.push_back(deviceInfo);
-
- NsSmartDeviceLink::NsTransportManager::tInternalDeviceList internalDeviceList;
- internalDeviceList.push_back(NsSmartDeviceLink::NsTransportManager::SInternalDeviceInfo(deviceInfo.mDeviceHandle, deviceInfo.mUserFriendlyName, deviceInfo.mUniqueDeviceId));
-
- uint8_t validFrameData[16] = {0x11, 0x07, 0x00, 0x01, 0x00, 0x00, 0x00, 0x08};
- uint8_t invalidFrameData[16] = {0x51, 0x07, 0x00, 0x01, 0x00, 0x00, 0x00, 0x08};
-
- EXPECT_CALL(mockDeviceListener, onDeviceListUpdated(::testing::_)).Times(0);
- EXPECT_CALL(mockDeviceListener, onApplicationConnected(::testing::_, ::testing::_)).Times(0);
- EXPECT_CALL(mockDeviceListener, onApplicationDisconnected(::testing::_, ::testing::_)).Times(0);
- EXPECT_CALL(mockDataListener, onFrameReceived(::testing::_, ::testing::_, ::testing::_)).Times(0);
- EXPECT_CALL(mockDataListener, onFrameSendCompleted(::testing::_, ::testing::_, ::testing::_)).Times(0);
-
- transportManager.onFrameReceived(mockTransportAdapter, validConnectionHandle, 0, 5);
-
- transportManager.onFrameReceived(mockTransportAdapter, validConnectionHandle, validFrameData, 0);
-
- transportManager.onFrameReceived(mockTransportAdapter, validConnectionHandle, validFrameData, sizeof(validFrameData));
-
- transportManager.onFrameSendCompleted(mockTransportAdapter, validConnectionHandle, 20, NsSmartDeviceLink::NsTransportManager::SendStatusOK);
-
- transportManager.onApplicationDisconnected(mockTransportAdapter, deviceInfo, validConnectionHandle);
-
- transportManager.onApplicationConnected(mockTransportAdapter, deviceInfo, validConnectionHandle);
-
- EXPECT_CALL(mockDeviceListener, onDeviceListUpdated(::testing::ContainerEq(deviceList))).Times(1).RetiresOnSaturation();
- transportManager.onDeviceListUpdated(mockTransportAdapter, internalDeviceList);
-
- transportManager.onApplicationDisconnected(mockTransportAdapter, deviceInfo, validConnectionHandle);
-
- EXPECT_CALL(mockDeviceListener, onApplicationConnected(::testing::Eq(deviceInfo), validConnectionHandle)).Times(1).RetiresOnSaturation();
- transportManager.onApplicationConnected(mockTransportAdapter, deviceInfo, validConnectionHandle);
-
- transportManager.onFrameReceived(mockTransportAdapter, validConnectionHandle, 0, 5);
-
- transportManager.onFrameReceived(mockTransportAdapter, validConnectionHandle, validFrameData, 0);
-
- EXPECT_CALL(mockDataListener, onFrameReceived(validConnectionHandle, ::testing::_, sizeof(validFrameData))).Times(1).RetiresOnSaturation();
- transportManager.onFrameReceived(mockTransportAdapter, validConnectionHandle, validFrameData, sizeof(validFrameData));
-
- transportManager.onFrameReceived(mockTransportAdapter, validConnectionHandle, invalidFrameData, sizeof(invalidFrameData));
-
- // Frame result is now expected even if we do not send any frame before
- EXPECT_CALL(mockDataListener, onFrameSendCompleted(validConnectionHandle, 20, NsSmartDeviceLink::NsTransportManager::SendStatusOK)).Times(1).RetiresOnSaturation();
- transportManager.onFrameSendCompleted(mockTransportAdapter, validConnectionHandle, 20, NsSmartDeviceLink::NsTransportManager::SendStatusOK);
-
- int userData = 123;
- transportManager.sendFrame(validConnectionHandle, validFrameData, sizeof(validFrameData), userData);
- EXPECT_CALL(mockDataListener, onFrameSendCompleted(validConnectionHandle, userData, NsSmartDeviceLink::NsTransportManager::SendStatusOK)).Times(1).RetiresOnSaturation();
- transportManager.onFrameSendCompleted(mockTransportAdapter, validConnectionHandle, userData, NsSmartDeviceLink::NsTransportManager::SendStatusOK);
-
- sleep(1); //We must wait for sending previous callbacks while applicationDisconnect can shutdown connection thread
-
- EXPECT_CALL(mockDeviceListener, onApplicationDisconnected(::testing::Eq(deviceInfo), validConnectionHandle)).Times(1).RetiresOnSaturation();
- transportManager.onApplicationDisconnected(mockTransportAdapter, deviceInfo, validConnectionHandle);
-
- transportManager.onApplicationDisconnected(mockTransportAdapter, deviceInfo, validConnectionHandle);
-
-
- deviceList.clear();
- internalDeviceList.clear();
-
- EXPECT_CALL(mockDeviceListener, onDeviceListUpdated(::testing::ContainerEq(deviceList))).Times(1).RetiresOnSaturation();
- transportManager.onDeviceListUpdated(mockTransportAdapter, internalDeviceList);
-
- transportManager.onApplicationConnected(mockTransportAdapter, deviceInfo, validConnectionHandle);
-
- //sleep(2); return;
- sleep(1);
-}
-
-int main(int argc, char **argv)
-{
- PropertyConfigurator::doConfigure(LOG4CPLUS_TEXT("log4cplus.properties"));
-
- ::testing::InitGoogleMock(&argc, argv);
-
- return RUN_ALL_TESTS();
-}