#ifndef TEST_TESTTASKS_LIBGPIODTEST_H_
#define TEST_TESTTASKS_LIBGPIODTEST_H_

#include <fsfw/objectmanager/SystemObject.h>
#include <fsfw_hal/common/gpio/GpioCookie.h>
#include <fsfw_hal/common/gpio/GpioIF.h>

#include "TestTask.h"

/**
 * @brief   Test for the GPIO read implementation of the LinuxLibgpioIF.
 * @author  J. Meier
 */
class LibgpiodTest : public TestTask {
 public:
  enum TestCases { READ = 0, LOOPBACK = 1, BLINK };

  TestCases testCase;

  LibgpiodTest(object_id_t objectId, object_id_t gpioIfobjectId, GpioCookie* gpioCookie);
  virtual ~LibgpiodTest();

 protected:
  ReturnValue_t performOneShotAction() override;
  ReturnValue_t performPeriodicAction() override;

 private:
  GpioIF* gpioInterface;
};

#endif /* TEST_TESTTASKS_LIBGPIODTEST_H_ */