// services/device/public/mojom/usb_manager_test.mojom-test-utils.h is auto generated by mojom_bindings_generator.py, do not edit

// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef SERVICES_DEVICE_PUBLIC_MOJOM_USB_MANAGER_TEST_MOJOM_TEST_UTILS_H_
#define SERVICES_DEVICE_PUBLIC_MOJOM_USB_MANAGER_TEST_MOJOM_TEST_UTILS_H_

#include "services/device/public/mojom/usb_manager_test.mojom.h"


namespace device::mojom {


class  UsbDeviceManagerTestInterceptorForTesting : public UsbDeviceManagerTest {
  virtual UsbDeviceManagerTest* GetForwardingInterface() = 0;
  void AddDeviceForTesting(const std::string& name, const std::string& serial_number, const std::string& landing_page, AddDeviceForTestingCallback callback) override;
  void RemoveDeviceForTesting(const std::string& guid, RemoveDeviceForTestingCallback callback) override;
  void GetTestDevices(GetTestDevicesCallback callback) override;
};
class  UsbDeviceManagerTestAsyncWaiter {
 public:
  explicit UsbDeviceManagerTestAsyncWaiter(UsbDeviceManagerTest* proxy);

  UsbDeviceManagerTestAsyncWaiter(const UsbDeviceManagerTestAsyncWaiter&) = delete;
  UsbDeviceManagerTestAsyncWaiter& operator=(const UsbDeviceManagerTestAsyncWaiter&) = delete;

  ~UsbDeviceManagerTestAsyncWaiter();
  void AddDeviceForTesting(
      const std::string& name, const std::string& serial_number, const std::string& landing_page, bool* out_success, std::string* out_message);
  
  void RemoveDeviceForTesting(
      const std::string& guid);
  
  void GetTestDevices(
      std::vector<TestDeviceInfoPtr>* out_devices);
  std::vector<TestDeviceInfoPtr> GetTestDevices();

 private:
  UsbDeviceManagerTest* const proxy_;
};




}  // device::mojom

#endif  // SERVICES_DEVICE_PUBLIC_MOJOM_USB_MANAGER_TEST_MOJOM_TEST_UTILS_H_