chromium/chrome/browser/ash/policy/enrollment/psm/fake_rlwe_dmserver_client.h

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

#ifndef CHROME_BROWSER_ASH_POLICY_ENROLLMENT_PSM_FAKE_RLWE_DMSERVER_CLIENT_H_
#define CHROME_BROWSER_ASH_POLICY_ENROLLMENT_PSM_FAKE_RLWE_DMSERVER_CLIENT_H_

#include "chrome/browser/ash/policy/enrollment/psm/rlwe_dmserver_client.h"

namespace policy::psm {

class FakeRlweDmserverClient : public RlweDmserverClient {
 public:
  FakeRlweDmserverClient();

  // Disallow copy constructor and assignment operator.
  FakeRlweDmserverClient(const FakeRlweDmserverClient&) = delete;
  FakeRlweDmserverClient& operator=(const FakeRlweDmserverClient&) = delete;

  ~FakeRlweDmserverClient() override = default;

  // Executes the `callback` immediately with `completion_params_`;
  void CheckMembership(CompletionCallback callback) override;

  // Always returns false.
  bool IsCheckMembershipInProgress() const override;

  // Overrides the `result_holder_` values.
  void WillReplyWith(ResultHolder new_result_holder);

 private:
  // Final PSM result that is used for tests.
  ResultHolder result_holder_;
};

}  // namespace policy::psm

#endif  // CHROME_BROWSER_ASH_POLICY_ENROLLMENT_PSM_FAKE_RLWE_DMSERVER_CLIENT_H_