1 /*!
2  * \brief Mock a QNetworkReply for tests.
3  *
4  * \copyright Copyright (c) 2015-2021 Governikus GmbH & Co. KG, Germany
5  */
6 
7 #pragma once
8 
9 #include "MockSocket.h"
10 
11 #include <http_parser.h>
12 #include <QNetworkReply>
13 
14 class test_StateCheckRefreshAddress;
15 class test_StateGetSelfAuthenticationData;
16 
17 namespace governikus
18 {
19 
20 class MockNetworkReply
21 	: public QNetworkReply
22 {
23 	Q_OBJECT
24 
25 	private:
26 		friend class ::test_StateCheckRefreshAddress;
27 		friend class ::test_StateGetSelfAuthenticationData;
28 		MockSocket mSocket;
29 
30 	public:
31 		MockNetworkReply(const QByteArray& pData = QByteArray(), http_status pStatusCode = HTTP_STATUS_OK, QObject* pParent = nullptr);
32 		~MockNetworkReply() override;
abort()33 		void abort() override
34 		{
35 			qDebug() << "Operation aborted";
36 		}
37 
38 
setRequest(const QNetworkRequest & pRequest)39 		void setRequest(const QNetworkRequest& pRequest)
40 		{
41 			QNetworkReply::setRequest(pRequest);
42 		}
43 
44 
45 		qint64 readData(char* pDst, qint64 pMaxSize) override;
46 
fireFinished()47 		void fireFinished()
48 		{
49 			Q_EMIT finished();
50 		}
51 
52 
setNetworkError(NetworkError pErrorCode,const QString & pErrorString)53 		void setNetworkError(NetworkError pErrorCode, const QString& pErrorString)
54 		{
55 			setError(pErrorCode, pErrorString);
56 		}
57 
58 
setFileModificationTimestamp(const QVariant & pTimestamp)59 		void setFileModificationTimestamp(const QVariant& pTimestamp)
60 		{
61 			setHeader(QNetworkRequest::KnownHeaders::LastModifiedHeader, pTimestamp);
62 		}
63 
64 
65 };
66 
67 } // namespace governikus
68