You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

184 line
4.4 KiB

  1. #pragma once
  2. #include <curl/curl.h>
  3. #include <gmock/gmock.h>
  4. struct libcurl_mock
  5. {
  6. public:
  7. MOCK_METHOD1(
  8. curl_global_init,
  9. CURLcode ( long flags ));
  10. MOCK_METHOD0(
  11. curl_global_cleanup,
  12. void ( void ) );
  13. MOCK_METHOD2 (
  14. curl_slist_append,
  15. struct curl_slist * ( struct curl_slist *,
  16. const char *));
  17. MOCK_METHOD1(curl_slist_free_all,
  18. void ( struct curl_slist * list ));
  19. MOCK_METHOD0(
  20. curl_easy_init,
  21. CURL * ( void ));
  22. MOCK_METHOD1(
  23. curl_easy_cleanup,
  24. void ( CURL * curl ));
  25. MOCK_METHOD1(
  26. curl_easy_perform,
  27. CURLcode ( CURL * curl ));
  28. MOCK_METHOD3(
  29. curl_easy_setopt_off,
  30. CURLcode( CURL * curl,
  31. CURLoption option,
  32. curl_off_t value ));
  33. MOCK_METHOD3(
  34. curl_easy_setopt_ptr,
  35. CURLcode ( CURL * curl,
  36. CURLoption option,
  37. void * value ));
  38. MOCK_METHOD3(
  39. curl_easy_setopt_long,
  40. CURLcode ( CURL * curl,
  41. CURLoption option,
  42. long value ));
  43. MOCK_METHOD3(
  44. curl_easy_getinfo_off,
  45. CURLcode ( CURL * curl,
  46. CURLINFO info,
  47. curl_off_t * value));
  48. MOCK_METHOD3(
  49. curl_easy_getinfo_socket,
  50. CURLcode ( CURL * curl,
  51. CURLINFO info,
  52. curl_socket_t * value));
  53. MOCK_METHOD3(
  54. curl_easy_getinfo_ptr,
  55. CURLcode ( CURL * curl,
  56. CURLINFO info,
  57. void * value));
  58. MOCK_METHOD3(
  59. curl_easy_getinfo_double,
  60. CURLcode ( CURL * curl,
  61. CURLINFO info,
  62. double * value));
  63. MOCK_METHOD3(
  64. curl_easy_getinfo_long,
  65. CURLcode ( CURL * curl,
  66. CURLINFO info,
  67. long * value));
  68. MOCK_METHOD3(
  69. curl_easy_getinfo_str,
  70. CURLcode ( CURL * curl,
  71. CURLINFO info,
  72. char ** value));
  73. MOCK_METHOD1(
  74. curl_easy_duphandle,
  75. CURL * ( CURL *curl ));
  76. MOCK_METHOD1(
  77. curl_easy_reset,
  78. void ( CURL *curl ));
  79. MOCK_METHOD4(
  80. curl_easy_recv,
  81. CURLcode ( CURL * curl,
  82. void * buffer,
  83. size_t buflen,
  84. size_t * n));
  85. MOCK_METHOD4(
  86. curl_easy_send,
  87. CURLcode ( CURL * curl,
  88. const void * buffer,
  89. size_t buflen,
  90. size_t * n));
  91. MOCK_METHOD1(
  92. curl_easy_strerror,
  93. const char * ( CURLcode mode ));
  94. MOCK_METHOD1(
  95. curl_multi_strerror,
  96. const char * ( CURLMcode mode ));
  97. MOCK_METHOD0(
  98. curl_multi_init,
  99. CURLM * ( void ));
  100. MOCK_METHOD1(
  101. curl_multi_cleanup,
  102. CURLMcode ( CURLM *multi_handle ));
  103. MOCK_METHOD2(
  104. curl_multi_add_handle,
  105. CURLMcode ( CURLM * multi_handle,
  106. CURL * curl_handle ));
  107. MOCK_METHOD2(
  108. curl_multi_remove_handle,
  109. CURLMcode ( CURLM * multi_handle,
  110. CURL * curl_handle ));
  111. MOCK_METHOD5(
  112. curl_multi_fdset,
  113. CURLMcode ( CURLM * multi_handle,
  114. fd_set * read_fd_set,
  115. fd_set * write_fd_set,
  116. fd_set * exc_fd_set,
  117. int * max_fd));
  118. MOCK_METHOD5(
  119. curl_multi_wait,
  120. CURLMcode ( CURLM * multi_handle,
  121. struct curl_waitfd extra_fds[],
  122. unsigned int extra_nfds,
  123. int timeout_ms,
  124. int * ret));
  125. MOCK_METHOD2(
  126. curl_multi_perform,
  127. CURLMcode ( CURLM * multi_handle,
  128. int * running_handles));
  129. MOCK_METHOD2(
  130. curl_multi_info_read,
  131. CURLMsg * ( CURLM *multi_handle,
  132. int *msgs_in_queue));
  133. MOCK_METHOD2(
  134. curl_multi_timeout,
  135. CURLMcode ( CURLM * multi_handle,
  136. long * milliseconds ));
  137. public:
  138. inline libcurl_mock()
  139. {
  140. instance = this;
  141. }
  142. inline ~libcurl_mock()
  143. {
  144. if (instance == this)
  145. instance = nullptr;
  146. }
  147. public:
  148. static libcurl_mock * instance;
  149. };