chromium/chromeos/ash/services/assistant/test_support/fully_initialized_assistant_state.h

// 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 CHROMEOS_ASH_SERVICES_ASSISTANT_TEST_SUPPORT_FULLY_INITIALIZED_ASSISTANT_STATE_H_
#define CHROMEOS_ASH_SERVICES_ASSISTANT_TEST_SUPPORT_FULLY_INITIALIZED_ASSISTANT_STATE_H_

#include "ash/public/cpp/assistant/assistant_state.h"

namespace ash::assistant {

// Instance of |AssistantState| where every std::optional value has a non-null
// value. All values will be set to their equivalent of enabled.
class FullyInitializedAssistantState : public AssistantState {
 public:
  FullyInitializedAssistantState();

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

  ~FullyInitializedAssistantState() override = default;

  void SetAssistantEnabled(bool enabled);

  void SetContextEnabled(bool enabled);

 private:
  void InitializeAllValues();
};

}  // namespace ash::assistant

#endif  // CHROMEOS_ASH_SERVICES_ASSISTANT_TEST_SUPPORT_FULLY_INITIALIZED_ASSISTANT_STATE_H_