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

#ifndef SHILL_TEST_EVENT_DISPATCHER_H_
#define SHILL_TEST_EVENT_DISPATCHER_H_

#include <base/macros.h>
#include <base/test/task_environment.h>
#include <brillo/message_loops/base_message_loop.h>

#include "shill/event_dispatcher.h"

namespace shill {

// Event dispatcher with base::test::TaskEnvironment for testing.
class EventDispatcherForTest : public EventDispatcher {
 public:
  EventDispatcherForTest() = default;
  ~EventDispatcherForTest() override = default;

  base::test::TaskEnvironment& task_environment() { return task_environment_; }

 private:
  base::test::TaskEnvironment task_environment_{
      base::test::TaskEnvironment::TimeSource::MOCK_TIME,
      base::test::TaskEnvironment::MainThreadType::IO};

  DISALLOW_COPY_AND_ASSIGN(EventDispatcherForTest);
};

}  // namespace shill

#endif  // SHILL_TEST_EVENT_DISPATCHER_H_
