File indexing completed on 2024-05-12 05:13:45

0001 /*
0002     SPDX-FileCopyrightText: 2023 Volker Krause <vkrause@kde.org>
0003     SPDX-License-Identifier: LGPL-2.0-or-later
0004 */
0005 #pragma once
0006 
0007 #include <QNetworkAccessManager>
0008 #include <QNetworkReply>
0009 
0010 #include <queue>
0011 #include <vector>
0012 
0013 class MockNetworkAccessManager : public QNetworkAccessManager
0014 {
0015     Q_OBJECT
0016 public:
0017     struct Request {
0018         QNetworkAccessManager::Operation op;
0019         QNetworkRequest request;
0020         QByteArray data;
0021     };
0022 
0023     std::vector<Request> requests;
0024 
0025     struct Reply {
0026         QNetworkReply::NetworkError error = QNetworkReply::NetworkSessionFailedError;
0027         int statusCode = 0;
0028         QByteArray data;
0029         QString errorMessage = QStringLiteral("no pending reply available");
0030     };
0031 
0032     std::queue<Reply> replies;
0033 
0034 protected:
0035     QNetworkReply* createRequest(QNetworkAccessManager::Operation op, const QNetworkRequest &originalReq, QIODevice *outgoingData = nullptr) override;
0036 };