Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(59)

Side by Side Diff: chromeos/disks/mock_disk_mount_manager_observer.cc

Issue 2292473002: Add a mock class for DiskMountManagerObserver. disk_mount_manager_observer_unittests will be rewrit… (Closed)
Patch Set: Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright (c) 2016 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 #include "mock_disk_mount_manager_observer.h"
6 #include <assert.h>
7 #include <sstream>
8 #include <string>
9
10 namespace chromeos {
11 namespace disks {
12
13 MockDiskMountManagerObserver::MockDiskMountManagerObserver(
14 const DiskMountManager* manager)
15 : manager_(manager) {}
16
17 MockDiskMountManagerObserver::~MockDiskMountManagerObserver() {}
18
19 void MockDiskMountManagerObserver::OnDeviceEvent(
20 DiskMountManager::DeviceEvent event,
21 const std::string& device_path) {
22 events_.push_back(
23 ObserverEvent::FromDeviceEvent(DeviceEvent(event, device_path)));
24 }
25
26 void MockDiskMountManagerObserver::OnDiskEvent(
27 DiskMountManager::DiskEvent event,
28 const DiskMountManager::Disk* disk) {
29 // Take a snapshot (copy) of the Disk object at the time of invocation for
30 // later verification.
31 events_.push_back(ObserverEvent::FromDiskEvent(
32 DiskEvent(event, new DiskMountManager::Disk(*disk))));
33 }
34
35 void MockDiskMountManagerObserver::OnFormatEvent(
36 DiskMountManager::FormatEvent event,
37 chromeos::FormatError error_code,
38 const std::string& device_path) {
39 events_.push_back(ObserverEvent::FromFormatEvent(
40 FormatEvent(event, error_code, device_path)));
41 }
42
43 void MockDiskMountManagerObserver::OnMountEvent(
44 DiskMountManager::MountEvent event,
45 chromeos::MountError error_code,
46 const DiskMountManager::MountPointInfo& mount_point) {
47 // Take a snapshot (copy) of a Disk object at the time of invocation.
48 // It can be verified later besides the arguments.
49 events_.push_back(ObserverEvent::FromMountEvent(MountEvent(
50 event, error_code, mount_point,
51 std::shared_ptr<DiskMountManager::Disk>(new DiskMountManager::Disk(
52 *manager_->disks().find(mount_point.source_path)->second)))));
53 }
54
55 DeviceEvent MockDiskMountManagerObserver::GetDeviceEvent(size_t index) {
56 assert(events_.size() >= index + 1);
57 assert(ObserverEvent::DEVICE_EVENT == events_.at(index).GetType());
58 return events_[index].GetEvent().device;
59 }
60
61 DiskEvent MockDiskMountManagerObserver::GetDiskEvent(size_t index) {
62 assert(events_.size() >= index + 1);
63 assert(ObserverEvent::DISK_EVENT == events_.at(index).GetType());
64 return events_[index].GetEvent().disk;
65 }
66
67 FormatEvent MockDiskMountManagerObserver::GetFormatEvent(size_t index) {
68 assert(events_.size() >= index + 1);
69 assert(ObserverEvent::FORMAT_EVENT == events_.at(index).GetType());
70 return events_[index].GetEvent().format;
71 }
72
73 MountEvent MockDiskMountManagerObserver::GetMountEvent(size_t index) {
74 assert(events_.size() >= index + 1);
75 assert(ObserverEvent::MOUNT_EVENT == events_.at(index).GetType());
76 return events_[index].GetEvent().mount;
77 }
78
79 ObserverEvent ObserverEvent::FromDeviceEvent(DeviceEvent event) {
80 ObserverEvent result;
81 result.type_ = DEVICE_EVENT;
82 result.event_.device = event;
83 return result;
84 }
85
86 ObserverEvent ObserverEvent::FromDiskEvent(DiskEvent event) {
87 ObserverEvent result;
88 result.type_ = DISK_EVENT;
89 result.event_.disk = event;
90 return result;
91 }
92
93 ObserverEvent ObserverEvent::FromFormatEvent(FormatEvent event) {
94 ObserverEvent result;
95 result.type_ = FORMAT_EVENT;
96 result.event_.format = event;
97 return result;
98 }
99
100 ObserverEvent ObserverEvent::FromMountEvent(MountEvent event) {
101 ObserverEvent result;
102 result.type_ = MOUNT_EVENT;
103 result.event_.mount = event;
104 return result;
105 }
106
107 MountEvent::MountEvent()
108 : mount_point_("",
109 "",
110 MountType::MOUNT_TYPE_INVALID,
111 MountCondition::MOUNT_CONDITION_NONE) {}
112
113 MountEvent::~MountEvent() {}
114
115 MountEvent::MountEvent(DiskMountManager::MountEvent event,
116 chromeos::MountError error_code,
117 const DiskMountManager::MountPointInfo& mount_point,
118 std::shared_ptr<DiskMountManager::Disk> disk)
119 : event_(event),
120 error_code_(error_code),
121 mount_point_(mount_point),
122 disk_(disk) {}
123
124 MountEvent::MountEvent(const MountEvent& other)
125 : event_(other.event_),
126 error_code_(other.error_code_),
127 mount_point_(other.mount_point_),
128 disk_(other.disk_) {}
129
130 ObserverEvent::Event::Event() {}
131
132 ObserverEvent::Event::Event(const Event& other)
133 : device(other.device),
134 disk(other.disk),
135 format(other.format),
136 mount(other.mount) {}
137
138 std::string DeviceEvent::DebugString() const {
139 std::stringstream ss;
140 ss << "OnDeviceEvent(" << event_ << ", " << device_path_ << ")";
141 return ss.str();
142 }
143
144 std::string DiskEvent::DebugString() const {
145 std::stringstream ss;
146 ss << "OnDiskEvent(event=" << event_
147 << ", device_path=" << disk_->device_path()
148 << ", mount_path=" << disk_->mount_path() << ")";
149 return ss.str();
150 }
151
152 std::string FormatEvent::DebugString() const {
153 std::stringstream ss;
154 ss << "OnFormatEvent(" << event_ << ", " << error_code_ << ", "
155 << device_path_ << ")";
156 return ss.str();
157 }
158
159 std::string MountEvent::DebugString() const {
160 std::stringstream ss;
161 ss << "OnMountEvent(" << event_ << ", " << error_code_ << ", "
162 << mount_point_.source_path << ", " << mount_point_.mount_path << ", "
163 << mount_point_.mount_type << ", " << mount_point_.mount_condition << ")";
164 return ss.str();
165 }
166
167 std::ostream& operator<<(std::ostream& stream,
168 const DeviceEvent& device_event) {
169 return stream << device_event.DebugString();
170 }
171
172 std::ostream& operator<<(std::ostream& stream, const DiskEvent& disk_event) {
173 return stream << disk_event.DebugString();
174 }
175
176 std::ostream& operator<<(std::ostream& stream,
177 const FormatEvent& format_event) {
178 return stream << format_event.DebugString();
179 }
180
181 std::ostream& operator<<(std::ostream& stream, const MountEvent& mount_event) {
182 return stream << mount_event.DebugString();
183 }
184
185 } // namespace disks
186 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698