| OLD | NEW |
| (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 |
| OLD | NEW |