blob: 2502acf9fecfc6b60825b7f82a2cf28a837ababb [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
Garrick Evansb4eb3892019-11-13 12:07:07 +090012#include "arc/network/datapath.h"
Garrick Evansf0ab7132019-06-18 14:50:42 +090013#include "arc/network/minijailed_process_runner.h"
14
15namespace arc_networkd {
16
17// ARC networking data path configuration utility.
18class MockDatapath : public Datapath {
19 public:
20 explicit MockDatapath(MinijailedProcessRunner* runner) : Datapath(runner) {}
21 ~MockDatapath() = default;
22
Yuichiro Hanadaed427fd2019-09-25 08:41:21 +000023 MOCK_METHOD2(AddBridge,
24 bool(const std::string& ifname, const std::string& ipv4_addr));
25 MOCK_METHOD1(RemoveBridge, void(const std::string& ifname));
Garrick Evansb4eb3892019-11-13 12:07:07 +090026 MOCK_METHOD2(AddToBridge,
27 bool(const std::string& br_ifname, const std::string& ifname));
28 MOCK_METHOD4(AddTAP,
29 std::string(const std::string& name,
30 const MacAddress* mac_addr,
31 const SubnetAddress* ipv4_addr,
32 const std::string& user));
Garrick Evans54861622019-07-19 09:05:09 +090033 MOCK_METHOD3(AddVirtualBridgedInterface,
34 std::string(const std::string& ifname,
35 const std::string& mac_addr,
36 const std::string& br_ifname));
37 MOCK_METHOD1(RemoveInterface, void(const std::string& ifname));
38 MOCK_METHOD5(AddInterfaceToContainer,
39 bool(int ns,
40 const std::string& src_ifname,
41 const std::string& dst_ifname,
42 const std::string& dst_ipv4,
43 bool fwd_multicast));
Yuichiro Hanadaed427fd2019-09-25 08:41:21 +000044 MOCK_METHOD1(AddLegacyIPv4DNAT, bool(const std::string& ipv4_addr));
45 MOCK_METHOD0(RemoveLegacyIPv4DNAT, void());
Garrick Evansb4eb3892019-11-13 12:07:07 +090046 MOCK_METHOD1(AddLegacyIPv4InboundDNAT, bool(const std::string& ifname));
47 MOCK_METHOD0(RemoveLegacyIPv4InboundDNAT, void());
Yuichiro Hanadaed427fd2019-09-25 08:41:21 +000048 MOCK_METHOD2(AddInboundIPv4DNAT,
49 bool(const std::string& ifname, const std::string& ipv4_addr));
50 MOCK_METHOD2(RemoveInboundIPv4DNAT,
51 void(const std::string& ifname, const std::string& ipv4_addr));
52 MOCK_METHOD1(AddOutboundIPv4, bool(const std::string& ifname));
53 MOCK_METHOD1(RemoveOutboundIPv4, void(const std::string& ifname));
Garrick Evansf0ab7132019-06-18 14:50:42 +090054
55 private:
56 DISALLOW_COPY_AND_ASSIGN(MockDatapath);
57};
58
59} // namespace arc_networkd
60
61#endif // ARC_NETWORK_MOCK_DATAPATH_H_