blob: 3c6313fd18514fb9c12f9f07360af656b06593aa [file] [log] [blame]
Alex Deymoaea4c1c2015-08-19 20:24:43 -07001//
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//
Alex Deymoc705cc82014-02-19 11:15:00 -080016
Gilad Arnold48415f12014-06-27 07:10:58 -070017#ifndef UPDATE_ENGINE_UPDATE_MANAGER_MOCK_POLICY_H_
18#define UPDATE_ENGINE_UPDATE_MANAGER_MOCK_POLICY_H_
19
20#include <string>
Alex Deymoc705cc82014-02-19 11:15:00 -080021
22#include <gmock/gmock.h>
23
Gilad Arnold7fb6e252014-10-29 11:49:19 -070024#include "update_engine/update_manager/default_policy.h"
Alex Deymo63784a52014-05-28 10:46:14 -070025#include "update_engine/update_manager/policy.h"
Alex Deymoc705cc82014-02-19 11:15:00 -080026
Alex Deymo63784a52014-05-28 10:46:14 -070027namespace chromeos_update_manager {
Alex Deymoc705cc82014-02-19 11:15:00 -080028
29// A mocked implementation of Policy.
30class MockPolicy : public Policy {
Alex Deymo0d11c602014-04-23 20:12:20 -070031 public:
Amin Hassani0468a762020-11-17 23:53:48 -080032 MockPolicy() {
Gilad Arnold7fb6e252014-10-29 11:49:19 -070033 // We defer to the corresponding DefaultPolicy methods, by default.
Amin Hassani4b717432019-01-14 16:24:20 -080034 ON_CALL(*this,
35 UpdateCheckAllowed(testing::_, testing::_, testing::_, testing::_))
36 .WillByDefault(testing::Invoke(&default_policy_,
37 &DefaultPolicy::UpdateCheckAllowed));
Aaron Wood23bd3392017-10-06 14:48:25 -070038 ON_CALL(*this,
39 UpdateCanBeApplied(
40 testing::_, testing::_, testing::_, testing::_, testing::_))
41 .WillByDefault(testing::Invoke(&default_policy_,
42 &DefaultPolicy::UpdateCanBeApplied));
Amin Hassani4b717432019-01-14 16:24:20 -080043 ON_CALL(*this,
44 UpdateCanStart(
45 testing::_, testing::_, testing::_, testing::_, testing::_))
46 .WillByDefault(
47 testing::Invoke(&default_policy_, &DefaultPolicy::UpdateCanStart));
Gilad Arnold7fb6e252014-10-29 11:49:19 -070048 ON_CALL(*this, P2PEnabled(testing::_, testing::_, testing::_, testing::_))
Amin Hassani4b717432019-01-14 16:24:20 -080049 .WillByDefault(
50 testing::Invoke(&default_policy_, &DefaultPolicy::P2PEnabled));
51 ON_CALL(*this,
52 P2PEnabledChanged(
53 testing::_, testing::_, testing::_, testing::_, testing::_))
54 .WillByDefault(testing::Invoke(&default_policy_,
55 &DefaultPolicy::P2PEnabledChanged));
Gilad Arnold7fb6e252014-10-29 11:49:19 -070056 }
Alex Deymo610277e2014-11-11 21:18:11 -080057 ~MockPolicy() override {}
Alex Deymoc705cc82014-02-19 11:15:00 -080058
59 // Policy overrides.
Amin Hassani4b717432019-01-14 16:24:20 -080060 MOCK_CONST_METHOD4(
61 UpdateCheckAllowed,
62 EvalStatus(EvaluationContext*, State*, std::string*, UpdateCheckParams*));
Alex Deymoc705cc82014-02-19 11:15:00 -080063
Aaron Wood23bd3392017-10-06 14:48:25 -070064 MOCK_CONST_METHOD5(UpdateCanBeApplied,
65 EvalStatus(EvaluationContext*,
66 State*,
67 std::string*,
68 chromeos_update_engine::ErrorCode*,
69 chromeos_update_engine::InstallPlan*));
70
Gilad Arnolddc4bb262014-07-23 10:45:19 -070071 MOCK_CONST_METHOD5(UpdateCanStart,
Amin Hassani4b717432019-01-14 16:24:20 -080072 EvalStatus(EvaluationContext*,
73 State*,
74 std::string*,
75 UpdateDownloadParams*,
76 UpdateState));
Gilad Arnoldaf2f6ae2014-04-28 14:14:52 -070077
Amin Hassani4b717432019-01-14 16:24:20 -080078 MOCK_CONST_METHOD4(
79 UpdateDownloadAllowed,
80 EvalStatus(EvaluationContext*, State*, std::string*, bool*));
Gilad Arnold0adbc942014-05-12 10:35:43 -070081
Amin Hassani4b717432019-01-14 16:24:20 -080082 MOCK_CONST_METHOD4(
83 P2PEnabled, EvalStatus(EvaluationContext*, State*, std::string*, bool*));
Gilad Arnold78ecbfc2014-10-22 14:38:25 -070084
Amin Hassani4b717432019-01-14 16:24:20 -080085 MOCK_CONST_METHOD5(
86 P2PEnabledChanged,
87 EvalStatus(EvaluationContext*, State*, std::string*, bool*, bool));
Gilad Arnold78ecbfc2014-10-22 14:38:25 -070088
Gilad Arnold7fb6e252014-10-29 11:49:19 -070089 protected:
90 // Policy override.
91 std::string PolicyName() const override { return "MockPolicy"; }
92
Alex Deymo0d11c602014-04-23 20:12:20 -070093 private:
Gilad Arnold7fb6e252014-10-29 11:49:19 -070094 DefaultPolicy default_policy_;
95
Alex Deymoc705cc82014-02-19 11:15:00 -080096 DISALLOW_COPY_AND_ASSIGN(MockPolicy);
97};
98
Alex Deymo63784a52014-05-28 10:46:14 -070099} // namespace chromeos_update_manager
Alex Deymoc705cc82014-02-19 11:15:00 -0800100
Gilad Arnold48415f12014-06-27 07:10:58 -0700101#endif // UPDATE_ENGINE_UPDATE_MANAGER_MOCK_POLICY_H_