61 lines
1.3 KiB
C++
61 lines
1.3 KiB
C++
#pragma once
|
|
|
|
#include <gmock/gmock.h>
|
|
|
|
#include <set>
|
|
#include <string>
|
|
|
|
#include "../src/curl.hpp"
|
|
#include "../src/configuration.hpp"
|
|
|
|
#include "core_response_generator.hpp"
|
|
|
|
namespace {
|
|
rublon::Configuration conf{rublon::Configuration::Parameters{//
|
|
"320BAB778C4D4262B54CD243CDEFFAFD",
|
|
"39e8d771d83a2ed3cc728811911c25",
|
|
"https://staging-core.rublon.net",
|
|
1,
|
|
true,
|
|
true,
|
|
false}};
|
|
} // namespace
|
|
|
|
class HttpHandlerMock {
|
|
auto signResponse(rublon::Response & res) {
|
|
const auto & sign =
|
|
skipSignatureGeneration ? std::array< char, 64 >{} : rublon::signData(res.body, conf.parameters.secretKey.c_str());
|
|
res.headers["x-rublon-signature"] = sign.data();
|
|
}
|
|
|
|
public:
|
|
MOCK_METHOD(std::optional< rublon::Response >, request, ( std::string_view, const rublon::Request & ), (const));
|
|
|
|
HttpHandlerMock & statusPending() {
|
|
gen.status = "pending";
|
|
return *this;
|
|
}
|
|
|
|
HttpHandlerMock & brokenBody() {
|
|
gen.generateBrokenData = true;
|
|
return *this;
|
|
}
|
|
|
|
HttpHandlerMock & brokenSignature() {
|
|
skipSignatureGeneration = true;
|
|
return *this;
|
|
}
|
|
|
|
operator rublon::Response() {
|
|
rublon::Response res;
|
|
res.body = gen.generateBody();
|
|
|
|
signResponse(res);
|
|
|
|
return res;
|
|
}
|
|
|
|
bool skipSignatureGeneration;
|
|
CoreResponseGenerator gen;
|
|
};
|