1aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// 2aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// Copyright (C) 2015 The Android Open Source Project 3aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// 4aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// Licensed under the Apache License, Version 2.0 (the "License"); 5aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// you may not use this file except in compliance with the License. 6aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// You may obtain a copy of the License at 7aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// 8aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// http://www.apache.org/licenses/LICENSE-2.0 9aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// 10aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// Unless required by applicable law or agreed to in writing, software 11aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// distributed under the License is distributed on an "AS IS" BASIS, 12aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// See the License for the specific language governing permissions and 14aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// limitations under the License. 15aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// 16305345001d85ca2282112c2a30fe75c7a4773491Alex Deymo 17305345001d85ca2282112c2a30fe75c7a4773491Alex Deymo#include "update_engine/fake_shill_proxy.h" 18305345001d85ca2282112c2a30fe75c7a4773491Alex Deymo 19305345001d85ca2282112c2a30fe75c7a4773491Alex Deymousing org::chromium::flimflam::ManagerProxyMock; 20305345001d85ca2282112c2a30fe75c7a4773491Alex Deymousing org::chromium::flimflam::ServiceProxyInterface; 21305345001d85ca2282112c2a30fe75c7a4773491Alex Deymo 22305345001d85ca2282112c2a30fe75c7a4773491Alex Deymonamespace chromeos_update_engine { 23305345001d85ca2282112c2a30fe75c7a4773491Alex Deymo 24305345001d85ca2282112c2a30fe75c7a4773491Alex DeymoFakeShillProxy::FakeShillProxy() 25305345001d85ca2282112c2a30fe75c7a4773491Alex Deymo : manager_proxy_mock_(new ManagerProxyMock()) {} 26305345001d85ca2282112c2a30fe75c7a4773491Alex Deymo 27305345001d85ca2282112c2a30fe75c7a4773491Alex DeymoManagerProxyMock* FakeShillProxy::GetManagerProxy() { 28305345001d85ca2282112c2a30fe75c7a4773491Alex Deymo return manager_proxy_mock_.get(); 29305345001d85ca2282112c2a30fe75c7a4773491Alex Deymo} 30305345001d85ca2282112c2a30fe75c7a4773491Alex Deymo 31305345001d85ca2282112c2a30fe75c7a4773491Alex Deymostd::unique_ptr<ServiceProxyInterface> FakeShillProxy::GetServiceForPath( 32758dd53cf503adbcb049909f25f54603d411be09Alex Deymo const dbus::ObjectPath& path) { 33758dd53cf503adbcb049909f25f54603d411be09Alex Deymo auto it = service_proxy_mocks_.find(path.value()); 34305345001d85ca2282112c2a30fe75c7a4773491Alex Deymo CHECK(it != service_proxy_mocks_.end()) << "No ServiceProxyMock set for " 35758dd53cf503adbcb049909f25f54603d411be09Alex Deymo << path.value(); 36305345001d85ca2282112c2a30fe75c7a4773491Alex Deymo std::unique_ptr<ServiceProxyInterface> result = std::move(it->second); 37305345001d85ca2282112c2a30fe75c7a4773491Alex Deymo service_proxy_mocks_.erase(it); 38305345001d85ca2282112c2a30fe75c7a4773491Alex Deymo return result; 39305345001d85ca2282112c2a30fe75c7a4773491Alex Deymo} 40305345001d85ca2282112c2a30fe75c7a4773491Alex Deymo 41305345001d85ca2282112c2a30fe75c7a4773491Alex Deymovoid FakeShillProxy::SetServiceForPath( 42758dd53cf503adbcb049909f25f54603d411be09Alex Deymo const dbus::ObjectPath& path, 43305345001d85ca2282112c2a30fe75c7a4773491Alex Deymo std::unique_ptr<ServiceProxyInterface> service_proxy) { 44758dd53cf503adbcb049909f25f54603d411be09Alex Deymo service_proxy_mocks_[path.value()] = std::move(service_proxy); 45305345001d85ca2282112c2a30fe75c7a4773491Alex Deymo} 46305345001d85ca2282112c2a30fe75c7a4773491Alex Deymo 47305345001d85ca2282112c2a30fe75c7a4773491Alex Deymo} // namespace chromeos_update_engine 48