fake_host_status_provider.h 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. // Copyright 2018 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. #ifndef ASH_SERVICES_MULTIDEVICE_SETUP_FAKE_HOST_STATUS_PROVIDER_H_
  5. #define ASH_SERVICES_MULTIDEVICE_SETUP_FAKE_HOST_STATUS_PROVIDER_H_
  6. #include <vector>
  7. #include "ash/services/multidevice_setup/host_status_provider.h"
  8. namespace ash {
  9. namespace multidevice_setup {
  10. // Test HostStatusProvider implementation.
  11. class FakeHostStatusProvider : public HostStatusProvider {
  12. public:
  13. FakeHostStatusProvider();
  14. FakeHostStatusProvider(const FakeHostStatusProvider&) = delete;
  15. FakeHostStatusProvider& operator=(const FakeHostStatusProvider&) = delete;
  16. ~FakeHostStatusProvider() override;
  17. void SetHostWithStatus(
  18. mojom::HostStatus host_status,
  19. const absl::optional<multidevice::RemoteDeviceRef>& host_device);
  20. // HostStatusProvider:
  21. HostStatusWithDevice GetHostWithStatus() const override;
  22. private:
  23. mojom::HostStatus host_status_ = mojom::HostStatus::kNoEligibleHosts;
  24. absl::optional<multidevice::RemoteDeviceRef> host_device_;
  25. };
  26. // Test HostStatusProvider::Observer implementation.
  27. class FakeHostStatusProviderObserver : public HostStatusProvider::Observer {
  28. public:
  29. FakeHostStatusProviderObserver();
  30. FakeHostStatusProviderObserver(const FakeHostStatusProviderObserver&) =
  31. delete;
  32. FakeHostStatusProviderObserver& operator=(
  33. const FakeHostStatusProviderObserver&) = delete;
  34. ~FakeHostStatusProviderObserver() override;
  35. const std::vector<HostStatusProvider::HostStatusWithDevice>&
  36. host_status_updates() const {
  37. return host_status_updates_;
  38. }
  39. private:
  40. // HostStatusProvider::Observer:
  41. void OnHostStatusChange(const HostStatusProvider::HostStatusWithDevice&
  42. host_status_with_device) override;
  43. std::vector<HostStatusProvider::HostStatusWithDevice> host_status_updates_;
  44. };
  45. } // namespace multidevice_setup
  46. } // namespace ash
  47. #endif // ASH_SERVICES_MULTIDEVICE_SETUP_FAKE_HOST_STATUS_PROVIDER_H_