ClientCommTest.cpp.useless 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. #include "ClientComm.h"
  2. #include "gmock/gmock.h"
  3. #include "gtest/gtest.h"
  4. using testing::_;
  5. using testing::A;
  6. using testing::An;
  7. using testing::AnyNumber;
  8. using testing::Const;
  9. using testing::DoDefault;
  10. using testing::Eq;
  11. using testing::Lt;
  12. using testing::MockFunction;
  13. using testing::Ref;
  14. using testing::Return;
  15. using testing::ReturnRef;
  16. using testing::TypedEq;
  17. class CClientCommMock : public CClientComm
  18. {
  19. public:
  20. CClientCommMock(CSecureClientBase* pCallback = nullptr):CClientComm(pCallback){}
  21. virtual ~CClientCommMock(){}
  22. MOCK_METHOD0(IsConnectionOK, bool());
  23. MOCK_METHOD0(IsSecureConnection, bool());
  24. MOCK_METHOD3(Connect, bool(const char* pServerAddr, int nPort, int nOption));
  25. MOCK_METHOD0(Close, void());
  26. MOCK_METHOD1(SendPackage, string(const CSmartPointer<IPackage>& pSendPkg));
  27. MOCK_METHOD1(ReceivePackage, CSmartPointer<IPackage>(int nWaitSecond));
  28. MOCK_METHOD1(CreateNewPackage, CSmartPointer<IPackage>(const char* pServiceCode));
  29. MOCK_METHOD1(CreateReplyPackage, CSmartPointer<IPackage>(const CSmartPointer<IPackage>& pRecvPkg));
  30. };
  31. class CMockSecureClient : public CSecureClientBase
  32. {
  33. public:
  34. MOCK_METHOD0(GetFunction, CSmartPointer<IClientCommFunc>());
  35. MOCK_METHOD0(OnAuthPass, void());
  36. //MOCK_METHOD0(DecRefCount, void());
  37. MOCK_METHOD1(OnReceivePackage, void(CSmartPointer<IPackage>& pRecvPkg));
  38. MOCK_METHOD0(OnClose, void());
  39. MOCK_METHOD3(OnError, void(DWORD dwSysCode, DWORD dwUserCode, const char* pErrMsg));
  40. };
  41. TEST(ClientCommTest, TestConnectionAction)
  42. {
  43. //treat as callback in CClientComm
  44. CMockSecureClient* secure_client_mock = new CMockSecureClient();
  45. EXPECT_CALL(*secure_client_mock, GetFunction());
  46. CClientCommMock* mock = new CClientCommMock(secure_client_mock);
  47. EXPECT_CALL(*mock, IsConnectionOK()).WillOnce(Return(true));
  48. EXPECT_CALL(*mock, IsSecureConnection()).WillOnce(Return(true));
  49. EXPECT_TRUE(mock->IsConnectionOK());
  50. EXPECT_TRUE(mock->IsSecureConnection());
  51. // replace default assigned m_pClientComm with mock object.
  52. ON_CALL(*secure_client_mock, GetFunction()).WillByDefault(Return(mock));
  53. ASSERT_NE(nullptr, secure_client_mock->m_pClientComm);
  54. delete secure_client_mock->m_pClientComm;
  55. secure_client_mock->m_pClientComm = mock;
  56. EXPECT_TRUE(secure_client_mock->GetFunction() == CSmartPointer<IClientCommFunc>(mock));
  57. EXPECT_TRUE(secure_client_mock->m_nRefCount == 1);
  58. secure_client_mock->DecRefCount();
  59. }
  60. #ifdef GTEST_LINKED_AS_SHARED_LIBRARY
  61. int main(int argc, char** argv)
  62. {
  63. printf("Running main() from %s\n", __FILE__);
  64. testing::InitGoogleTest(&argc, argv);
  65. return RUN_ALL_TESTS();
  66. }
  67. #endif // GTEST_LINKED_AS_SHARED_LIBRARY