#pragma once #include #include #include #include #include #include "core_response_generator.hpp" #include "rublon/sign.hpp" namespace { rublon::Configuration conf{rublon::Configuration::Parameters{// "320BAB778C4D4262B54CD243CDEFFAFD", "39e8d771d83a2ed3cc728811911c25", "https://staging-core.rublon.net", 1, true, true, false}}; } // namespace class HttpHandlerMock : public CoreResponseGenerator{ 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() { status = "pending"; return *this; } HttpHandlerMock & brokenBody() { generateBrokenData = true; return *this; } HttpHandlerMock & brokenSignature() { skipSignatureGeneration = true; return *this; } operator rublon::Response() { rublon::Response res; res.body = generateBody(); signResponse(res); return res; } bool skipSignatureGeneration; };