| // Copyright 2018 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef CHROMECAST_DEVICE_BLUETOOTH_LE_MOCK_LE_SCAN_MANAGER_H_ |
| #define CHROMECAST_DEVICE_BLUETOOTH_LE_MOCK_LE_SCAN_MANAGER_H_ |
| |
| #include <vector> |
| |
| #include "base/memory/scoped_refptr.h" |
| #include "base/single_thread_task_runner.h" |
| #include "chromecast/device/bluetooth/le/le_scan_manager.h" |
| #include "chromecast/device/bluetooth/le/scan_filter.h" |
| #include "testing/gmock/include/gmock/gmock.h" |
| |
| namespace chromecast { |
| namespace bluetooth { |
| |
| class MockLeScanManager : public LeScanManager { |
| public: |
| class MockScanHandle : public ScanHandle { |
| public: |
| MockScanHandle() = default; |
| ~MockScanHandle() override = default; |
| }; |
| |
| MockLeScanManager(); |
| ~MockLeScanManager(); |
| |
| void AddObserver(Observer* o) override { |
| DCHECK(o && !observer_); |
| observer_ = o; |
| } |
| void RemoveObserver(Observer* o) override { |
| DCHECK(o && o == observer_); |
| observer_ = nullptr; |
| } |
| |
| MOCK_METHOD(void, |
| Initialize, |
| (scoped_refptr<base::SingleThreadTaskRunner> io_task_runner), |
| (override)); |
| MOCK_METHOD(void, Finalize, (), (override)); |
| MOCK_METHOD(std::unique_ptr<ScanHandle>, RequestScan, ()); |
| void RequestScan(RequestScanCallback cb) override { |
| std::move(cb).Run(RequestScan()); |
| } |
| |
| MOCK_METHOD(std::vector<LeScanResult>, |
| GetScanResults, |
| (base::Optional<ScanFilter> scan_filter)); |
| void GetScanResults(GetScanResultsCallback cb, |
| base::Optional<ScanFilter> scan_filter) override { |
| std::move(cb).Run(GetScanResults(std::move(scan_filter))); |
| } |
| MOCK_METHOD(void, ClearScanResults, (), (override)); |
| |
| Observer* observer_ = nullptr; |
| }; |
| |
| } // namespace bluetooth |
| } // namespace chromecast |
| |
| #endif // CHROMECAST_DEVICE_BLUETOOTH_LE_MOCK_LE_SCAN_MANAGER_H_ |