blob: 14470e96c83d0bb2e227bff7aa81204884e90c32 [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:
Gilad Arnold7fb6e252014-10-29 11:49:19 -070032 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, UpdateCanStart(testing::_, testing::_, testing::_,
40 testing::_, testing::_))
41 .WillByDefault(testing::Invoke(
42 &default_policy_, &DefaultPolicy::UpdateCanStart));
43 ON_CALL(*this, UpdateDownloadAllowed(testing::_, testing::_, testing::_,
44 testing::_))
45 .WillByDefault(testing::Invoke(
46 &default_policy_, &DefaultPolicy::UpdateDownloadAllowed));
47 ON_CALL(*this, P2PEnabled(testing::_, testing::_, testing::_, testing::_))
48 .WillByDefault(testing::Invoke(
49 &default_policy_, &DefaultPolicy::P2PEnabled));
50 ON_CALL(*this, P2PEnabledChanged(testing::_, testing::_, testing::_,
51 testing::_, testing::_))
52 .WillByDefault(testing::Invoke(
53 &default_policy_, &DefaultPolicy::P2PEnabledChanged));
54 }
55
56 MockPolicy() : MockPolicy(nullptr) {}
Alex Deymo610277e2014-11-11 21:18:11 -080057 ~MockPolicy() override {}
Alex Deymoc705cc82014-02-19 11:15:00 -080058
59 // Policy overrides.
Alex Deymo2de23f52014-02-26 14:30:13 -080060 MOCK_CONST_METHOD4(UpdateCheckAllowed,
61 EvalStatus(EvaluationContext*, State*, std::string*,
Alex Deymo0d11c602014-04-23 20:12:20 -070062 UpdateCheckParams*));
Alex Deymoc705cc82014-02-19 11:15:00 -080063
Gilad Arnolddc4bb262014-07-23 10:45:19 -070064 MOCK_CONST_METHOD5(UpdateCanStart,
Gilad Arnoldaf2f6ae2014-04-28 14:14:52 -070065 EvalStatus(EvaluationContext*, State*, std::string*,
Gilad Arnold78ecbfc2014-10-22 14:38:25 -070066 UpdateDownloadParams*, UpdateState));
Gilad Arnoldaf2f6ae2014-04-28 14:14:52 -070067
Gilad Arnoldd78caf92014-09-24 09:28:14 -070068 MOCK_CONST_METHOD4(UpdateDownloadAllowed,
Gilad Arnold0adbc942014-05-12 10:35:43 -070069 EvalStatus(EvaluationContext*, State*, std::string*,
70 bool*));
71
Gilad Arnold78ecbfc2014-10-22 14:38:25 -070072 MOCK_CONST_METHOD4(P2PEnabled,
73 EvalStatus(EvaluationContext*, State*, std::string*,
74 bool*));
75
76 MOCK_CONST_METHOD5(P2PEnabledChanged,
77 EvalStatus(EvaluationContext*, State*, std::string*,
78 bool*, bool));
79
Gilad Arnold7fb6e252014-10-29 11:49:19 -070080 protected:
81 // Policy override.
82 std::string PolicyName() const override { return "MockPolicy"; }
83
Alex Deymo0d11c602014-04-23 20:12:20 -070084 private:
Gilad Arnold7fb6e252014-10-29 11:49:19 -070085 DefaultPolicy default_policy_;
86
Alex Deymoc705cc82014-02-19 11:15:00 -080087 DISALLOW_COPY_AND_ASSIGN(MockPolicy);
88};
89
Alex Deymo63784a52014-05-28 10:46:14 -070090} // namespace chromeos_update_manager
Alex Deymoc705cc82014-02-19 11:15:00 -080091
Gilad Arnold48415f12014-06-27 07:10:58 -070092#endif // UPDATE_ENGINE_UPDATE_MANAGER_MOCK_POLICY_H_