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

#ifndef COMPONENTS_METRICS_TEST_TEST_ENABLED_STATE_PROVIDER_H_
#define COMPONENTS_METRICS_TEST_TEST_ENABLED_STATE_PROVIDER_H_

#include "components/metrics/enabled_state_provider.h"

namespace metrics {

// A simple concrete implementation of the EnabledStateProvider interface, for
// use in tests.
class TestEnabledStateProvider : public EnabledStateProvider {
 public:
  TestEnabledStateProvider(bool consent, bool enabled)
      : consent_(consent), enabled_(enabled) {}

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

  ~TestEnabledStateProvider() override {}

  // EnabledStateProvider
  bool IsConsentGiven() const override;
  bool IsReportingEnabled() const override;

  void set_consent(bool consent) { consent_ = consent; }
  void set_enabled(bool enabled) { enabled_ = enabled; }

 private:
  bool consent_;
  bool enabled_;
};

}  // namespace metrics

#endif  // COMPONENTS_METRICS_TEST_TEST_ENABLED_STATE_PROVIDER_H_
