blob: 87a4db93970da338188737b52cc964d3e97beda7 [file] [log] [blame]
Garrick Evansf0ab7132019-06-18 14:50:42 +09001// Copyright 2019 The Chromium OS Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef ARC_NETWORK_MOCK_DATAPATH_H_
6#define ARC_NETWORK_MOCK_DATAPATH_H_
7
8#include <string>
9
10#include <base/macros.h>
11
12#include "arc/network/minijailed_process_runner.h"
13
14namespace arc_networkd {
15
16// ARC networking data path configuration utility.
17class MockDatapath : public Datapath {
18 public:
19 explicit MockDatapath(MinijailedProcessRunner* runner) : Datapath(runner) {}
20 ~MockDatapath() = default;
21
Yuichiro Hanadaed427fd2019-09-25 08:41:21 +000022 MOCK_METHOD2(AddBridge,
23 bool(const std::string& ifname, const std::string& ipv4_addr));
24 MOCK_METHOD1(RemoveBridge, void(const std::string& ifname));
25 MOCK_METHOD3(AddVirtualBridgedInterface,
26 std::string(const std::string& ifname,
27 const std::string& mac_addr,
28 const std::string& br_ifname));
29 MOCK_METHOD1(RemoveInterface, void(const std::string& ifname));
30 MOCK_METHOD5(AddInterfaceToContainer,
31 bool(int ns,
32 const std::string& src_ifname,
33 const std::string& dst_ifname,
34 const std::string& dst_ipv4,
35 bool fwd_multicast));
36 MOCK_METHOD1(AddLegacyIPv4DNAT, bool(const std::string& ipv4_addr));
37 MOCK_METHOD0(RemoveLegacyIPv4DNAT, void());
38 MOCK_METHOD2(AddInboundIPv4DNAT,
39 bool(const std::string& ifname, const std::string& ipv4_addr));
40 MOCK_METHOD2(RemoveInboundIPv4DNAT,
41 void(const std::string& ifname, const std::string& ipv4_addr));
42 MOCK_METHOD1(AddOutboundIPv4, bool(const std::string& ifname));
43 MOCK_METHOD1(RemoveOutboundIPv4, void(const std::string& ifname));
Garrick Evansf0ab7132019-06-18 14:50:42 +090044
45 private:
46 DISALLOW_COPY_AND_ASSIGN(MockDatapath);
47};
48
49} // namespace arc_networkd
50
51#endif // ARC_NETWORK_MOCK_DATAPATH_H_