mock_callback.h 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407
  1. // This file was GENERATED by command:
  2. // pump.py mock_callback.h.pump
  3. // DO NOT EDIT BY HAND!!!
  4. // Copyright 2017 The Chromium Authors. All rights reserved.
  5. // Use of this source code is governed by a BSD-style license that can be
  6. // found in the LICENSE file.
  7. // Analogous to GMock's built-in MockFunction, but for base::Callback instead of
  8. // std::function. It takes the full callback type as a parameter, so that it can
  9. // support both OnceCallback and RepeatingCallback. Furthermore, this file
  10. // defines convenience typedefs in the form of MockOnceCallback<Signature>,
  11. // MockRepeatingCallback<Signature>, MockOnceClosure and MockRepeatingClosure.
  12. //
  13. // Use:
  14. // using FooCallback = base::RepeatingCallback<int(std::string)>;
  15. //
  16. // TEST(FooTest, RunsCallbackWithBarArgument) {
  17. // base::MockCallback<FooCallback> callback;
  18. // EXPECT_CALL(callback, Run("bar")).WillOnce(Return(1));
  19. // Foo(callback.Get());
  20. // }
  21. //
  22. // Or equivalently:
  23. //
  24. // TEST(FooTest, RunsCallbackWithBarArgument) {
  25. // base::MockRepeatingCallback<int(std::string)> callback;
  26. // EXPECT_CALL(callback, Run("bar")).WillOnce(Return(1));
  27. // Foo(callback.Get());
  28. // }
  29. //
  30. //
  31. // Can be used with StrictMock and NiceMock. Caller must ensure that it outlives
  32. // any base::Callback obtained from it.
  33. #ifndef BASE_TEST_MOCK_CALLBACK_H_
  34. #define BASE_TEST_MOCK_CALLBACK_H_
  35. #include "base/bind.h"
  36. #include "base/callback.h"
  37. #include "testing/gmock/include/gmock/gmock.h"
  38. namespace base {
  39. // clang-format off
  40. template <typename F>
  41. class MockCallback;
  42. template <typename Signature>
  43. using MockOnceCallback = MockCallback<OnceCallback<Signature>>;
  44. template <typename Signature>
  45. using MockRepeatingCallback = MockCallback<RepeatingCallback<Signature>>;
  46. using MockOnceClosure = MockCallback<OnceClosure>;
  47. using MockRepeatingClosure = MockCallback<RepeatingClosure>;
  48. template <typename R>
  49. class MockCallback<RepeatingCallback<R()>> {
  50. public:
  51. MockCallback() = default;
  52. MockCallback(const MockCallback&) = delete;
  53. MockCallback& operator=(const MockCallback&) = delete;
  54. MOCK_METHOD0_T(Run, R());
  55. RepeatingCallback<R()> Get() {
  56. return ::base::BindRepeating(&MockCallback::Run, ::base::Unretained(this));
  57. }
  58. };
  59. template <typename R>
  60. class MockCallback<OnceCallback<R()>> {
  61. public:
  62. MockCallback() = default;
  63. MockCallback(const MockCallback&) = delete;
  64. MockCallback& operator=(const MockCallback&) = delete;
  65. MOCK_METHOD0_T(Run, R());
  66. OnceCallback<R()> Get() {
  67. return ::base::BindOnce(&MockCallback::Run, ::base::Unretained(this));
  68. }
  69. };
  70. template <typename R, typename A1>
  71. class MockCallback<RepeatingCallback<R(A1)>> {
  72. public:
  73. MockCallback() = default;
  74. MockCallback(const MockCallback&) = delete;
  75. MockCallback& operator=(const MockCallback&) = delete;
  76. MOCK_METHOD1_T(Run, R(A1));
  77. RepeatingCallback<R(A1)> Get() {
  78. return ::base::BindRepeating(&MockCallback::Run, ::base::Unretained(this));
  79. }
  80. };
  81. template <typename R, typename A1>
  82. class MockCallback<OnceCallback<R(A1)>> {
  83. public:
  84. MockCallback() = default;
  85. MockCallback(const MockCallback&) = delete;
  86. MockCallback& operator=(const MockCallback&) = delete;
  87. MOCK_METHOD1_T(Run, R(A1));
  88. OnceCallback<R(A1)> Get() {
  89. return ::base::BindOnce(&MockCallback::Run, ::base::Unretained(this));
  90. }
  91. };
  92. template <typename R, typename A1, typename A2>
  93. class MockCallback<RepeatingCallback<R(A1, A2)>> {
  94. public:
  95. MockCallback() = default;
  96. MockCallback(const MockCallback&) = delete;
  97. MockCallback& operator=(const MockCallback&) = delete;
  98. MOCK_METHOD2_T(Run, R(A1, A2));
  99. RepeatingCallback<R(A1, A2)> Get() {
  100. return ::base::BindRepeating(&MockCallback::Run, ::base::Unretained(this));
  101. }
  102. };
  103. template <typename R, typename A1, typename A2>
  104. class MockCallback<OnceCallback<R(A1, A2)>> {
  105. public:
  106. MockCallback() = default;
  107. MockCallback(const MockCallback&) = delete;
  108. MockCallback& operator=(const MockCallback&) = delete;
  109. MOCK_METHOD2_T(Run, R(A1, A2));
  110. OnceCallback<R(A1, A2)> Get() {
  111. return ::base::BindOnce(&MockCallback::Run, ::base::Unretained(this));
  112. }
  113. };
  114. template <typename R, typename A1, typename A2, typename A3>
  115. class MockCallback<RepeatingCallback<R(A1, A2, A3)>> {
  116. public:
  117. MockCallback() = default;
  118. MockCallback(const MockCallback&) = delete;
  119. MockCallback& operator=(const MockCallback&) = delete;
  120. MOCK_METHOD3_T(Run, R(A1, A2, A3));
  121. RepeatingCallback<R(A1, A2, A3)> Get() {
  122. return ::base::BindRepeating(&MockCallback::Run, ::base::Unretained(this));
  123. }
  124. };
  125. template <typename R, typename A1, typename A2, typename A3>
  126. class MockCallback<OnceCallback<R(A1, A2, A3)>> {
  127. public:
  128. MockCallback() = default;
  129. MockCallback(const MockCallback&) = delete;
  130. MockCallback& operator=(const MockCallback&) = delete;
  131. MOCK_METHOD3_T(Run, R(A1, A2, A3));
  132. OnceCallback<R(A1, A2, A3)> Get() {
  133. return ::base::BindOnce(&MockCallback::Run, ::base::Unretained(this));
  134. }
  135. };
  136. template <typename R, typename A1, typename A2, typename A3, typename A4>
  137. class MockCallback<RepeatingCallback<R(A1, A2, A3, A4)>> {
  138. public:
  139. MockCallback() = default;
  140. MockCallback(const MockCallback&) = delete;
  141. MockCallback& operator=(const MockCallback&) = delete;
  142. MOCK_METHOD4_T(Run, R(A1, A2, A3, A4));
  143. RepeatingCallback<R(A1, A2, A3, A4)> Get() {
  144. return ::base::BindRepeating(&MockCallback::Run, ::base::Unretained(this));
  145. }
  146. };
  147. template <typename R, typename A1, typename A2, typename A3, typename A4>
  148. class MockCallback<OnceCallback<R(A1, A2, A3, A4)>> {
  149. public:
  150. MockCallback() = default;
  151. MockCallback(const MockCallback&) = delete;
  152. MockCallback& operator=(const MockCallback&) = delete;
  153. MOCK_METHOD4_T(Run, R(A1, A2, A3, A4));
  154. OnceCallback<R(A1, A2, A3, A4)> Get() {
  155. return ::base::BindOnce(&MockCallback::Run, ::base::Unretained(this));
  156. }
  157. };
  158. template <typename R, typename A1, typename A2, typename A3, typename A4,
  159. typename A5>
  160. class MockCallback<RepeatingCallback<R(A1, A2, A3, A4, A5)>> {
  161. public:
  162. MockCallback() = default;
  163. MockCallback(const MockCallback&) = delete;
  164. MockCallback& operator=(const MockCallback&) = delete;
  165. MOCK_METHOD5_T(Run, R(A1, A2, A3, A4, A5));
  166. RepeatingCallback<R(A1, A2, A3, A4, A5)> Get() {
  167. return ::base::BindRepeating(&MockCallback::Run, ::base::Unretained(this));
  168. }
  169. };
  170. template <typename R, typename A1, typename A2, typename A3, typename A4,
  171. typename A5>
  172. class MockCallback<OnceCallback<R(A1, A2, A3, A4, A5)>> {
  173. public:
  174. MockCallback() = default;
  175. MockCallback(const MockCallback&) = delete;
  176. MockCallback& operator=(const MockCallback&) = delete;
  177. MOCK_METHOD5_T(Run, R(A1, A2, A3, A4, A5));
  178. OnceCallback<R(A1, A2, A3, A4, A5)> Get() {
  179. return ::base::BindOnce(&MockCallback::Run, ::base::Unretained(this));
  180. }
  181. };
  182. template <typename R, typename A1, typename A2, typename A3, typename A4,
  183. typename A5, typename A6>
  184. class MockCallback<RepeatingCallback<R(A1, A2, A3, A4, A5, A6)>> {
  185. public:
  186. MockCallback() = default;
  187. MockCallback(const MockCallback&) = delete;
  188. MockCallback& operator=(const MockCallback&) = delete;
  189. MOCK_METHOD6_T(Run, R(A1, A2, A3, A4, A5, A6));
  190. RepeatingCallback<R(A1, A2, A3, A4, A5, A6)> Get() {
  191. return ::base::BindRepeating(&MockCallback::Run, ::base::Unretained(this));
  192. }
  193. };
  194. template <typename R, typename A1, typename A2, typename A3, typename A4,
  195. typename A5, typename A6>
  196. class MockCallback<OnceCallback<R(A1, A2, A3, A4, A5, A6)>> {
  197. public:
  198. MockCallback() = default;
  199. MockCallback(const MockCallback&) = delete;
  200. MockCallback& operator=(const MockCallback&) = delete;
  201. MOCK_METHOD6_T(Run, R(A1, A2, A3, A4, A5, A6));
  202. OnceCallback<R(A1, A2, A3, A4, A5, A6)> Get() {
  203. return ::base::BindOnce(&MockCallback::Run, ::base::Unretained(this));
  204. }
  205. };
  206. template <typename R, typename A1, typename A2, typename A3, typename A4,
  207. typename A5, typename A6, typename A7>
  208. class MockCallback<RepeatingCallback<R(A1, A2, A3, A4, A5, A6, A7)>> {
  209. public:
  210. MockCallback() = default;
  211. MockCallback(const MockCallback&) = delete;
  212. MockCallback& operator=(const MockCallback&) = delete;
  213. MOCK_METHOD7_T(Run, R(A1, A2, A3, A4, A5, A6, A7));
  214. RepeatingCallback<R(A1, A2, A3, A4, A5, A6, A7)> Get() {
  215. return ::base::BindRepeating(&MockCallback::Run, ::base::Unretained(this));
  216. }
  217. };
  218. template <typename R, typename A1, typename A2, typename A3, typename A4,
  219. typename A5, typename A6, typename A7>
  220. class MockCallback<OnceCallback<R(A1, A2, A3, A4, A5, A6, A7)>> {
  221. public:
  222. MockCallback() = default;
  223. MockCallback(const MockCallback&) = delete;
  224. MockCallback& operator=(const MockCallback&) = delete;
  225. MOCK_METHOD7_T(Run, R(A1, A2, A3, A4, A5, A6, A7));
  226. OnceCallback<R(A1, A2, A3, A4, A5, A6, A7)> Get() {
  227. return ::base::BindOnce(&MockCallback::Run, ::base::Unretained(this));
  228. }
  229. };
  230. template <typename R, typename A1, typename A2, typename A3, typename A4,
  231. typename A5, typename A6, typename A7, typename A8>
  232. class MockCallback<RepeatingCallback<R(A1, A2, A3, A4, A5, A6, A7, A8)>> {
  233. public:
  234. MockCallback() = default;
  235. MockCallback(const MockCallback&) = delete;
  236. MockCallback& operator=(const MockCallback&) = delete;
  237. MOCK_METHOD8_T(Run, R(A1, A2, A3, A4, A5, A6, A7, A8));
  238. RepeatingCallback<R(A1, A2, A3, A4, A5, A6, A7, A8)> Get() {
  239. return ::base::BindRepeating(&MockCallback::Run, ::base::Unretained(this));
  240. }
  241. };
  242. template <typename R, typename A1, typename A2, typename A3, typename A4,
  243. typename A5, typename A6, typename A7, typename A8>
  244. class MockCallback<OnceCallback<R(A1, A2, A3, A4, A5, A6, A7, A8)>> {
  245. public:
  246. MockCallback() = default;
  247. MockCallback(const MockCallback&) = delete;
  248. MockCallback& operator=(const MockCallback&) = delete;
  249. MOCK_METHOD8_T(Run, R(A1, A2, A3, A4, A5, A6, A7, A8));
  250. OnceCallback<R(A1, A2, A3, A4, A5, A6, A7, A8)> Get() {
  251. return ::base::BindOnce(&MockCallback::Run, ::base::Unretained(this));
  252. }
  253. };
  254. template <typename R, typename A1, typename A2, typename A3, typename A4,
  255. typename A5, typename A6, typename A7, typename A8, typename A9>
  256. class MockCallback<RepeatingCallback<R(A1, A2, A3, A4, A5, A6, A7, A8, A9)>> {
  257. public:
  258. MockCallback() = default;
  259. MockCallback(const MockCallback&) = delete;
  260. MockCallback& operator=(const MockCallback&) = delete;
  261. MOCK_METHOD9_T(Run, R(A1, A2, A3, A4, A5, A6, A7, A8, A9));
  262. RepeatingCallback<R(A1, A2, A3, A4, A5, A6, A7, A8, A9)> Get() {
  263. return ::base::BindRepeating(&MockCallback::Run, ::base::Unretained(this));
  264. }
  265. };
  266. template <typename R, typename A1, typename A2, typename A3, typename A4,
  267. typename A5, typename A6, typename A7, typename A8, typename A9>
  268. class MockCallback<OnceCallback<R(A1, A2, A3, A4, A5, A6, A7, A8, A9)>> {
  269. public:
  270. MockCallback() = default;
  271. MockCallback(const MockCallback&) = delete;
  272. MockCallback& operator=(const MockCallback&) = delete;
  273. MOCK_METHOD9_T(Run, R(A1, A2, A3, A4, A5, A6, A7, A8, A9));
  274. OnceCallback<R(A1, A2, A3, A4, A5, A6, A7, A8, A9)> Get() {
  275. return ::base::BindOnce(&MockCallback::Run, ::base::Unretained(this));
  276. }
  277. };
  278. template <typename R, typename A1, typename A2, typename A3, typename A4,
  279. typename A5, typename A6, typename A7, typename A8, typename A9,
  280. typename A10>
  281. class MockCallback<RepeatingCallback<R(A1, A2, A3, A4, A5, A6, A7, A8, A9,
  282. A10)>> {
  283. public:
  284. MockCallback() = default;
  285. MockCallback(const MockCallback&) = delete;
  286. MockCallback& operator=(const MockCallback&) = delete;
  287. MOCK_METHOD10_T(Run, R(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10));
  288. RepeatingCallback<R(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10)> Get() {
  289. return ::base::BindRepeating(&MockCallback::Run, ::base::Unretained(this));
  290. }
  291. };
  292. template <typename R, typename A1, typename A2, typename A3, typename A4,
  293. typename A5, typename A6, typename A7, typename A8, typename A9,
  294. typename A10>
  295. class MockCallback<OnceCallback<R(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10)>> {
  296. public:
  297. MockCallback() = default;
  298. MockCallback(const MockCallback&) = delete;
  299. MockCallback& operator=(const MockCallback&) = delete;
  300. MOCK_METHOD10_T(Run, R(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10));
  301. OnceCallback<R(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10)> Get() {
  302. return ::base::BindOnce(&MockCallback::Run, ::base::Unretained(this));
  303. }
  304. };
  305. // clang-format on
  306. } // namespace base
  307. #endif // BASE_TEST_MOCK_CALLBACK_H_