#ifndef TEST_TESTTASKS_LIBGPIODTEST_H_
#define TEST_TESTTASKS_LIBGPIODTEST_H_

#include "TestTask.h"
#include <fsfw_hal/common/gpio/GpioIF.h>
#include <fsfw_hal/common/gpio/GpioCookie.h>
#include <fsfw/objectmanager/SystemObject.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
    };

    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_ */