#ifndef SYNCTHINGCONNECTIONMOCKHELPERS_H #define SYNCTHINGCONNECTIONMOCKHELPERS_H /*! * \file syncthingconnectionhelper.h * \brief Provides helper for mocking SyncthingConnection. * \remarks Only include from syncthingconnection.cpp! */ #include #include #include #include #include #include #include #include namespace Data { void setupTestData(); /*! * \brief The MockedReply class provides a fake QNetworkReply which will just return data from a specified buffer. */ class MockedReply : public QNetworkReply { Q_OBJECT public: ~MockedReply() override; public Q_SLOTS: void abort() override; public: // reimplemented from QNetworkReply void close() override; qint64 bytesAvailable() const override; bool isSequential() const override; qint64 size() const override; qint64 readData(char *data, qint64 maxlen) override; static MockedReply *forRequest(const QString &method, const QString &path, const QUrlQuery &query, bool rest); protected: MockedReply(const std::string &buffer, int delay, QObject *parent = nullptr); private Q_SLOTS: void emitFinished(); private: const std::string &m_buffer; const char *m_pos; qint64 m_bytesLeft; static int s_eventIndex; }; } // namespace Data #endif // SYNCTHINGCONNECTIONMOCKHELPERS_H