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