12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- #include "ClientComm.h"
- #include "gmock/gmock.h"
- #include "gtest/gtest.h"
- using testing::_;
- using testing::A;
- using testing::An;
- using testing::AnyNumber;
- using testing::Const;
- using testing::DoDefault;
- using testing::Eq;
- using testing::Lt;
- using testing::MockFunction;
- using testing::Ref;
- using testing::Return;
- using testing::ReturnRef;
- using testing::TypedEq;
- class CClientCommMock : public CClientComm
- {
- public:
- CClientCommMock(CSecureClientBase* pCallback = nullptr):CClientComm(pCallback){}
- virtual ~CClientCommMock(){}
- MOCK_METHOD0(IsConnectionOK, bool());
- MOCK_METHOD0(IsSecureConnection, bool());
- MOCK_METHOD3(Connect, bool(const char* pServerAddr, int nPort, int nOption));
- MOCK_METHOD0(Close, void());
- MOCK_METHOD1(SendPackage, string(const CSmartPointer<IPackage>& pSendPkg));
- MOCK_METHOD1(ReceivePackage, CSmartPointer<IPackage>(int nWaitSecond));
- MOCK_METHOD1(CreateNewPackage, CSmartPointer<IPackage>(const char* pServiceCode));
- MOCK_METHOD1(CreateReplyPackage, CSmartPointer<IPackage>(const CSmartPointer<IPackage>& pRecvPkg));
- };
- class CMockSecureClient : public CSecureClientBase
- {
- public:
- MOCK_METHOD0(GetFunction, CSmartPointer<IClientCommFunc>());
- MOCK_METHOD0(OnAuthPass, void());
- //MOCK_METHOD0(DecRefCount, void());
- MOCK_METHOD1(OnReceivePackage, void(CSmartPointer<IPackage>& pRecvPkg));
- MOCK_METHOD0(OnClose, void());
- MOCK_METHOD3(OnError, void(DWORD dwSysCode, DWORD dwUserCode, const char* pErrMsg));
- };
- TEST(ClientCommTest, TestConnectionAction)
- {
- //treat as callback in CClientComm
- CMockSecureClient* secure_client_mock = new CMockSecureClient();
- EXPECT_CALL(*secure_client_mock, GetFunction());
- CClientCommMock* mock = new CClientCommMock(secure_client_mock);
- EXPECT_CALL(*mock, IsConnectionOK()).WillOnce(Return(true));
- EXPECT_CALL(*mock, IsSecureConnection()).WillOnce(Return(true));
- EXPECT_TRUE(mock->IsConnectionOK());
- EXPECT_TRUE(mock->IsSecureConnection());
- // replace default assigned m_pClientComm with mock object.
- ON_CALL(*secure_client_mock, GetFunction()).WillByDefault(Return(mock));
- ASSERT_NE(nullptr, secure_client_mock->m_pClientComm);
- delete secure_client_mock->m_pClientComm;
- secure_client_mock->m_pClientComm = mock;
- EXPECT_TRUE(secure_client_mock->GetFunction() == CSmartPointer<IClientCommFunc>(mock));
- EXPECT_TRUE(secure_client_mock->m_nRefCount == 1);
- secure_client_mock->DecRefCount();
- }
- #ifdef GTEST_LINKED_AS_SHARED_LIBRARY
- int main(int argc, char** argv)
- {
- printf("Running main() from %s\n", __FILE__);
- testing::InitGoogleTest(&argc, argv);
- return RUN_ALL_TESTS();
- }
- #endif // GTEST_LINKED_AS_SHARED_LIBRARY
|