1c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// found in the LICENSE file.
4c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
5c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "chromeos/dbus/fake_update_engine_client.h"
6c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
7c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)namespace chromeos {
8c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
9b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)FakeUpdateEngineClient::FakeUpdateEngineClient()
10424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)    : update_check_result_(UpdateEngineClient::UPDATE_RESULT_SUCCESS),
11c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch      can_rollback_stub_result_(false),
12c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch      reboot_after_update_call_count_(0),
131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      request_update_check_call_count_(0),
14c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch      rollback_call_count_(0),
15c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch      can_rollback_call_count_(0) {
16c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}
17c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
18c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)FakeUpdateEngineClient::~FakeUpdateEngineClient() {
19c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}
20c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
21424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)void FakeUpdateEngineClient::Init(dbus::Bus* bus) {
22424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)}
23424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)
24c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void FakeUpdateEngineClient::AddObserver(Observer* observer) {
25010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  observers_.AddObserver(observer);
26c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}
27c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
28c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void FakeUpdateEngineClient::RemoveObserver(Observer* observer) {
29010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  observers_.RemoveObserver(observer);
30c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}
31c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
32c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)bool FakeUpdateEngineClient::HasObserver(Observer* observer) {
331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  return observers_.HasObserver(observer);
34c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}
35c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
36c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void FakeUpdateEngineClient::RequestUpdateCheck(
37c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    const UpdateCheckCallback& callback) {
381320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  request_update_check_call_count_++;
39b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)  callback.Run(update_check_result_);
40c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}
41c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
42effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochvoid FakeUpdateEngineClient::Rollback() {
43c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch  rollback_call_count_++;
44effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch}
45effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch
46effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochvoid FakeUpdateEngineClient::CanRollbackCheck(
47effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch    const RollbackCheckCallback& callback) {
48c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch  can_rollback_call_count_++;
49c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch  callback.Run(can_rollback_stub_result_);
50effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch}
51effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch
52c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void FakeUpdateEngineClient::RebootAfterUpdate() {
53b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)  reboot_after_update_call_count_++;
54c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}
55c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
5690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)UpdateEngineClient::Status FakeUpdateEngineClient::GetLastStatus() {
5790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  if (status_queue_.empty())
5890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    return default_status_;
5990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
6090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  UpdateEngineClient::Status last_status = status_queue_.front();
6190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  status_queue_.pop();
6290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  return last_status;
63c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}
64c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
65010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)void FakeUpdateEngineClient::NotifyObserversThatStatusChanged(
66010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    const UpdateEngineClient::Status& status) {
67010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  FOR_EACH_OBSERVER(Observer, observers_, UpdateStatusChanged(status));
68010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)}
69010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
70eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochvoid FakeUpdateEngineClient::SetChannel(const std::string& target_channel,
71eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch                                        bool is_powerwash_allowed) {
72eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}
73eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
74eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochvoid FakeUpdateEngineClient::GetChannel(bool get_current_channel,
75eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch                                        const GetChannelCallback& callback) {
76eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}
77eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
7890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)void FakeUpdateEngineClient::set_default_status(
79c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    const UpdateEngineClient::Status& status) {
8090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  default_status_ = status;
81c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}
82c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
83b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)void FakeUpdateEngineClient::set_update_check_result(
84b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)    const UpdateEngineClient::UpdateCheckResult& result) {
85b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)  update_check_result_ = result;
86b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)}
87b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)
88c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}  // namespace chromeos
89