blob: 44164716b2b8c3d64cfa6435238809988b0be353 [file] [log] [blame]
Zach Stein6fcdc2f2018-08-23 16:25:55 -07001/*
2 * Copyright 2018 The WebRTC Project Authors. All rights reserved.
3 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
Steve Anton10542f22019-01-11 09:11:00 -080011#ifndef P2P_BASE_MOCK_ASYNC_RESOLVER_H_
12#define P2P_BASE_MOCK_ASYNC_RESOLVER_H_
Zach Stein6fcdc2f2018-08-23 16:25:55 -070013
Steve Anton10542f22019-01-11 09:11:00 -080014#include "api/async_resolver_factory.h"
15#include "rtc_base/async_resolver_interface.h"
Zach Stein6fcdc2f2018-08-23 16:25:55 -070016#include "test/gmock.h"
17
18namespace rtc {
19
Qingsi Wang09619332018-09-12 22:51:55 -070020using ::testing::_;
21using ::testing::InvokeWithoutArgs;
22
Zach Stein6fcdc2f2018-08-23 16:25:55 -070023class MockAsyncResolver : public AsyncResolverInterface {
24 public:
Qingsi Wang09619332018-09-12 22:51:55 -070025 MockAsyncResolver() {
26 ON_CALL(*this, Start(_)).WillByDefault(InvokeWithoutArgs([this] {
27 SignalDone(this);
28 }));
29 }
Zach Stein6fcdc2f2018-08-23 16:25:55 -070030 ~MockAsyncResolver() = default;
31
Danil Chapovalovb85889d2020-05-25 09:36:40 +020032 MOCK_METHOD(void, Start, (const rtc::SocketAddress&), (override));
Sameer Vijaykarb787e262022-08-11 11:52:57 +020033 MOCK_METHOD(void, Start, (const rtc::SocketAddress&, int family), (override));
Danil Chapovalovb85889d2020-05-25 09:36:40 +020034 MOCK_METHOD(bool,
35 GetResolvedAddress,
36 (int family, SocketAddress* addr),
37 (const, override));
38 MOCK_METHOD(int, GetError, (), (const, override));
Zach Stein6fcdc2f2018-08-23 16:25:55 -070039
40 // Note that this won't delete the object like AsyncResolverInterface says in
41 // order to avoid sanitizer failures caused by this being a synchronous
42 // implementation. The test code should delete the object instead.
Danil Chapovalovb85889d2020-05-25 09:36:40 +020043 MOCK_METHOD(void, Destroy, (bool), (override));
Zach Stein6fcdc2f2018-08-23 16:25:55 -070044};
45
46} // namespace rtc
47
48namespace webrtc {
49
50class MockAsyncResolverFactory : public AsyncResolverFactory {
51 public:
Danil Chapovalovb85889d2020-05-25 09:36:40 +020052 MOCK_METHOD(rtc::AsyncResolverInterface*, Create, (), (override));
Zach Stein6fcdc2f2018-08-23 16:25:55 -070053};
54
55} // namespace webrtc
56
Steve Anton10542f22019-01-11 09:11:00 -080057#endif // P2P_BASE_MOCK_ASYNC_RESOLVER_H_