• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2017 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 #include <gmock/gmock.h>
18 
19 #include "utils.h"
20 
21 using ::testing::_;
22 using ::testing::AtLeast;
23 using ::testing::Invoke;
24 using ::testing::Return;
25 
26 namespace android {
27 namespace vintf {
28 namespace details {
29 
30 class MockFileFetcher : public FileFetcher {
31    public:
MockFileFetcher()32     MockFileFetcher() {
33         // By default call through to the original.
34         ON_CALL(*this, fetch(_, _)).WillByDefault(Invoke(&real_, &FileFetcher::fetch));
35     }
36 
37     MOCK_METHOD2(fetch, status_t(const std::string& path, std::string& fetched));
38 
39    private:
40     FileFetcher real_;
41 };
42 
43 class MockPartitionMounter : public PartitionMounter {
44    public:
MockPartitionMounter()45     MockPartitionMounter() {
46         ON_CALL(*this, mountSystem()).WillByDefault(Invoke([&] {
47             systemMounted_ = true;
48             return OK;
49         }));
50         ON_CALL(*this, umountSystem()).WillByDefault(Invoke([&] {
51             systemMounted_ = false;
52             return OK;
53         }));
54         ON_CALL(*this, mountVendor()).WillByDefault(Invoke([&] {
55             vendorMounted_ = true;
56             return OK;
57         }));
58         ON_CALL(*this, umountVendor()).WillByDefault(Invoke([&] {
59             vendorMounted_ = false;
60             return OK;
61         }));
62     }
63     MOCK_CONST_METHOD0(mountSystem, status_t());
64     MOCK_CONST_METHOD0(umountSystem, status_t());
65     MOCK_CONST_METHOD0(mountVendor, status_t());
66     MOCK_CONST_METHOD0(umountVendor, status_t());
67 
systemMounted()68     bool systemMounted() const { return systemMounted_; }
vendorMounted()69     bool vendorMounted() const { return vendorMounted_; }
70 
71    private:
72      bool systemMounted_;
73      bool vendorMounted_;
74 };
75 
76 }  // namespace details
77 }  // namespace vintf
78 }  // namespace android
79