#ifndef EVENTMANAGERMOCK_H_
#define EVENTMANAGERMOCK_H_

#include <fsfw/events/EventManager.h>

#include <list>

class EventManagerMock : public EventManager {
 public:
  EventManagerMock();

  virtual ReturnValue_t performOperation(uint8_t opCode) override;

  const std::list<EventMessage>* getEventList();
  void clearEventList();

  bool isEventInEventList(object_id_t object, Event event);
  bool isEventInEventList(object_id_t object, Event event, uint32_t parameter1,
                          uint32_t parameter2);

  bool isEventInEventList(object_id_t object, EventId_t eventId);
  bool isEventInEventList(object_id_t object, EventId_t eventId, uint32_t parameter1,
                          uint32_t parameter2);

 private:
  std::list<EventMessage> eventList;
};

#endif /* EVENTMANAGERMOCK_H_ */