1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef CHROMEOS_DBUS_FAKE_UPDATE_ENGINE_CLIENT_H_ 6 #define CHROMEOS_DBUS_FAKE_UPDATE_ENGINE_CLIENT_H_ 7 8 #include <queue> 9 #include <string> 10 11 #include "chromeos/dbus/update_engine_client.h" 12 13 namespace chromeos { 14 15 // A fake implementation of UpdateEngineClient. The user of this class can 16 // use set_update_engine_client_status() to set a fake last Status and 17 // GetLastStatus() returns the fake with no modification. Other methods do 18 // nothing. 19 class FakeUpdateEngineClient : public UpdateEngineClient { 20 public: 21 FakeUpdateEngineClient(); 22 virtual ~FakeUpdateEngineClient(); 23 24 // Overrides 25 virtual void AddObserver(Observer* observer) OVERRIDE; 26 virtual void RemoveObserver(Observer* observer) OVERRIDE; 27 virtual bool HasObserver(Observer* observer) OVERRIDE; 28 virtual void RequestUpdateCheck(const UpdateCheckCallback& callback) OVERRIDE; 29 virtual void RebootAfterUpdate() OVERRIDE; 30 virtual Status GetLastStatus() OVERRIDE; 31 virtual void SetChannel(const std::string& target_channel, 32 bool is_powerwash_allowed) OVERRIDE; 33 virtual void GetChannel(bool get_current_channel, 34 const GetChannelCallback& callback) OVERRIDE; 35 36 // Pushes UpdateEngineClient::Status in the queue to test changing status. 37 // GetLastStatus() returns the status set by this method in FIFO order. 38 // See set_default_status(). 39 void PushLastStatus(const UpdateEngineClient::Status& status) { 40 status_queue_.push(status); 41 } 42 43 // Sets the default UpdateEngineClient::Status. GetLastStatus() returns the 44 // value set here if |status_queue_| is empty. 45 void set_default_status(const UpdateEngineClient::Status& status); 46 47 // Sets a value returned by RequestUpdateCheck(). 48 void set_update_check_result( 49 const UpdateEngineClient::UpdateCheckResult& result); 50 51 // Returns how many times RebootAfterUpdate() is called. 52 int reboot_after_update_call_count() { 53 return reboot_after_update_call_count_; 54 } 55 56 private: 57 std::queue<UpdateEngineClient::Status> status_queue_; 58 UpdateEngineClient::Status default_status_; 59 UpdateEngineClient::UpdateCheckResult update_check_result_; 60 int reboot_after_update_call_count_; 61 }; 62 63 } // namespace chromeos 64 65 #endif // CHROMEOS_DBUS_FAKE_UPDATE_ENGINE_CLIENT_H_ 66