blob: 8bc0eb9cff448a6bfa92e3be1b35256b38e924b9 [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));
33 MOCK_METHOD(bool,
34 GetResolvedAddress,
35 (int family, SocketAddress* addr),
36 (const, override));
37 MOCK_METHOD(int, GetError, (), (const, override));
Zach Stein6fcdc2f2018-08-23 16:25:55 -070038
39 // Note that this won't delete the object like AsyncResolverInterface says in
40 // order to avoid sanitizer failures caused by this being a synchronous
41 // implementation. The test code should delete the object instead.
Danil Chapovalovb85889d2020-05-25 09:36:40 +020042 MOCK_METHOD(void, Destroy, (bool), (override));
Zach Stein6fcdc2f2018-08-23 16:25:55 -070043};
44
45} // namespace rtc
46
47namespace webrtc {
48
49class MockAsyncResolverFactory : public AsyncResolverFactory {
50 public:
Danil Chapovalovb85889d2020-05-25 09:36:40 +020051 MOCK_METHOD(rtc::AsyncResolverInterface*, Create, (), (override));
Zach Stein6fcdc2f2018-08-23 16:25:55 -070052};
53
54} // namespace webrtc
55
Steve Anton10542f22019-01-11 09:11:00 -080056#endif // P2P_BASE_MOCK_ASYNC_RESOLVER_H_