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