#ifndef AUTOTEST_COD_CPP
#define AUTOTEST_COD_CPP

#include <QtTest/QtTest>

#define FILE_MAX 3

class AutoTest_COD : public QObject {
    Q_OBJECT

protected:
    QList<QPair<QString, bool>> m_subtestResults;

public:
    const QList<QPair<QString, bool>>& getCollectedTestResults() const;
    void recordResult(const QString& name, bool passed);
    void setFastFileDirectory(const QString aFastFileDir);
    QString getFastFileDirectory();

    void setZoneFileDirectory(const QString aZoneFileDir);
    QString getZoneFileDirectory();

    void createDirectory(const QString aDir);
    QStringList findZoneFiles(const QString &aBaseDir, int aMaxIter = FILE_MAX);

    QStringList findFastFiles(const QString &aBaseDir, int aMaxIter = FILE_MAX);

    virtual void initTestCase() = 0;

    void testDecompression_data();
    virtual void testDecompression() = 0;

    void testCompression_data();
    virtual void testCompression() = 0;

    void testFactory_data();
    virtual void testFactory() = 0;

    virtual void cleanupTestCase() = 0;

private:
    QString mFastFileDirectory;
    QString mZoneFileDirectory;
};

#endif // AUTOTEST_COD_CPP
