• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //
2 // Copyright (C) 2015 The Android Open Source Project
3 //
4 // Licensed under the Apache License, Version 2.0 (the "License");
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
7 //
8 //      http://www.apache.org/licenses/LICENSE-2.0
9 //
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an "AS IS" BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
15 //
16 
17 #ifndef APMANAGER_MOCK_CONTROL_H_
18 #define APMANAGER_MOCK_CONTROL_H_
19 
20 #include <base/macros.h>
21 #include <gmock/gmock.h>
22 
23 #include "apmanager/control_interface.h"
24 
25 namespace apmanager {
26 
27 class MockControl : public ControlInterface {
28  public:
29   MockControl();
30   ~MockControl() override;
31 
32   MOCK_METHOD0(Init, void());
33   MOCK_METHOD0(Shutdown, void());
34 
35   // Provide mock methods for creating raw pointer for adaptor/proxy.
36   // This allows us to set expectations for adaptor/proxy creation
37   // functions, since mock methods only support copyable return values,
38   // and unique_ptr is not copyable.
39   MOCK_METHOD0(CreateConfigAdaptorRaw, ConfigAdaptorInterface*());
40   MOCK_METHOD0(CreateDeviceAdaptorRaw, DeviceAdaptorInterface*());
41   MOCK_METHOD0(CreateFirewallProxyRaw, FirewallProxyInterface*());
42   MOCK_METHOD0(CreateManagerAdaptorRaw, ManagerAdaptorInterface*());
43   MOCK_METHOD0(CreateServiceAdaptorRaw, ServiceAdaptorInterface*());
44   MOCK_METHOD0(CreateShillProxyRaw, ShillProxyInterface*());
45 
46   // These functions use the mock methods above for creating
47   // raw object.
48   std::unique_ptr<ConfigAdaptorInterface> CreateConfigAdaptor(
49       Config* config, int service_identifier) override;
50   std::unique_ptr<DeviceAdaptorInterface> CreateDeviceAdaptor(
51       Device* device) override;
52   std::unique_ptr<ManagerAdaptorInterface> CreateManagerAdaptor(
53       Manager* manager) override;
54   std::unique_ptr<ServiceAdaptorInterface> CreateServiceAdaptor(
55       Service* service) override;
56   std::unique_ptr<FirewallProxyInterface> CreateFirewallProxy(
57       const base::Closure& service_appeared_callback,
58       const base::Closure& service_vanished_callback) override;
59   std::unique_ptr<ShillProxyInterface> CreateShillProxy(
60       const base::Closure& service_appeared_callback,
61       const base::Closure& service_vanished_callback) override;
62 
63  private:
64   DISALLOW_COPY_AND_ASSIGN(MockControl);
65 };
66 
67 }  // namespace apmanager
68 
69 #endif  // APMANAGER_MOCK_CONTROL_H_
70