chromium/ash/public/cpp/holding_space/mock_holding_space_model_observer.h

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

#ifndef ASH_PUBLIC_CPP_HOLDING_SPACE_MOCK_HOLDING_SPACE_MODEL_OBSERVER_H_
#define ASH_PUBLIC_CPP_HOLDING_SPACE_MOCK_HOLDING_SPACE_MODEL_OBSERVER_H_

#include <vector>

#include "ash/public/cpp/holding_space/holding_space_model_observer.h"
#include "testing/gmock/include/gmock/gmock.h"

namespace ash {

// A mock implementation of `HoldingSpaceModelObserver` for use in testing.
class MockHoldingSpaceModelObserver : public HoldingSpaceModelObserver {
 public:
  MockHoldingSpaceModelObserver();
  MockHoldingSpaceModelObserver(const MockHoldingSpaceModelObserver&) = delete;
  MockHoldingSpaceModelObserver& operator=(
      const MockHoldingSpaceModelObserver&) = delete;
  ~MockHoldingSpaceModelObserver() override;

  // HoldingSpaceModelObserver:
  MOCK_METHOD(void,
              OnHoldingSpaceItemsAdded,
              (const std::vector<const HoldingSpaceItem*>& items),
              (override));
  MOCK_METHOD(void,
              OnHoldingSpaceItemsRemoved,
              (const std::vector<const HoldingSpaceItem*>& items),
              (override));
  MOCK_METHOD(void,
              OnHoldingSpaceItemUpdated,
              (const HoldingSpaceItem* item,
               const HoldingSpaceItemUpdatedFields& updated_fields),
              (override));
  MOCK_METHOD(void,
              OnHoldingSpaceItemInitialized,
              (const HoldingSpaceItem* item),
              (override));
};

}  // namespace ash

#endif  // ASH_PUBLIC_CPP_HOLDING_SPACE_MOCK_HOLDING_SPACE_MODEL_OBSERVER_H_