Home | History | Annotate | Download | only in update_manager
      1 //
      2 // Copyright (C) 2014 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 UPDATE_ENGINE_UPDATE_MANAGER_MOCK_POLICY_H_
     18 #define UPDATE_ENGINE_UPDATE_MANAGER_MOCK_POLICY_H_
     19 
     20 #include <string>
     21 
     22 #include <gmock/gmock.h>
     23 
     24 #include "update_engine/update_manager/default_policy.h"
     25 #include "update_engine/update_manager/policy.h"
     26 
     27 namespace chromeos_update_manager {
     28 
     29 // A mocked implementation of Policy.
     30 class MockPolicy : public Policy {
     31  public:
     32   explicit MockPolicy(chromeos_update_engine::ClockInterface* clock)
     33       : default_policy_(clock) {
     34     // We defer to the corresponding DefaultPolicy methods, by default.
     35     ON_CALL(*this, UpdateCheckAllowed(testing::_, testing::_, testing::_,
     36                                       testing::_))
     37         .WillByDefault(testing::Invoke(
     38                 &default_policy_, &DefaultPolicy::UpdateCheckAllowed));
     39     ON_CALL(*this,
     40             UpdateCanBeApplied(
     41                 testing::_, testing::_, testing::_, testing::_, testing::_))
     42         .WillByDefault(testing::Invoke(&default_policy_,
     43                                        &DefaultPolicy::UpdateCanBeApplied));
     44     ON_CALL(*this, UpdateCanStart(testing::_, testing::_, testing::_,
     45                                   testing::_, testing::_))
     46         .WillByDefault(testing::Invoke(
     47                 &default_policy_, &DefaultPolicy::UpdateCanStart));
     48     ON_CALL(*this, UpdateDownloadAllowed(testing::_, testing::_, testing::_,
     49                                          testing::_))
     50         .WillByDefault(testing::Invoke(
     51                 &default_policy_, &DefaultPolicy::UpdateDownloadAllowed));
     52     ON_CALL(*this, P2PEnabled(testing::_, testing::_, testing::_, testing::_))
     53         .WillByDefault(testing::Invoke(
     54                 &default_policy_, &DefaultPolicy::P2PEnabled));
     55     ON_CALL(*this, P2PEnabledChanged(testing::_, testing::_, testing::_,
     56                                      testing::_, testing::_))
     57         .WillByDefault(testing::Invoke(
     58                 &default_policy_, &DefaultPolicy::P2PEnabledChanged));
     59   }
     60 
     61   MockPolicy() : MockPolicy(nullptr) {}
     62   ~MockPolicy() override {}
     63 
     64   // Policy overrides.
     65   MOCK_CONST_METHOD4(UpdateCheckAllowed,
     66                      EvalStatus(EvaluationContext*, State*, std::string*,
     67                                 UpdateCheckParams*));
     68 
     69   MOCK_CONST_METHOD5(UpdateCanBeApplied,
     70                      EvalStatus(EvaluationContext*,
     71                                 State*,
     72                                 std::string*,
     73                                 chromeos_update_engine::ErrorCode*,
     74                                 chromeos_update_engine::InstallPlan*));
     75 
     76   MOCK_CONST_METHOD5(UpdateCanStart,
     77                      EvalStatus(EvaluationContext*, State*, std::string*,
     78                                 UpdateDownloadParams*, UpdateState));
     79 
     80   MOCK_CONST_METHOD4(UpdateDownloadAllowed,
     81                      EvalStatus(EvaluationContext*, State*, std::string*,
     82                                 bool*));
     83 
     84   MOCK_CONST_METHOD4(P2PEnabled,
     85                      EvalStatus(EvaluationContext*, State*, std::string*,
     86                                 bool*));
     87 
     88   MOCK_CONST_METHOD5(P2PEnabledChanged,
     89                      EvalStatus(EvaluationContext*, State*, std::string*,
     90                                 bool*, bool));
     91 
     92  protected:
     93   // Policy override.
     94   std::string PolicyName() const override { return "MockPolicy"; }
     95 
     96  private:
     97   DefaultPolicy default_policy_;
     98 
     99   DISALLOW_COPY_AND_ASSIGN(MockPolicy);
    100 };
    101 
    102 }  // namespace chromeos_update_manager
    103 
    104 #endif  // UPDATE_ENGINE_UPDATE_MANAGER_MOCK_POLICY_H_
    105