#include "apiUrl.hpp" #include "hearthstoneApi.hpp" #include #include #include class TokenMock { public: TokenMock() : mTokenFilePath{"resources/token_info"}, mUsername{"2b50f1123b424d5e9c21971a110fdd04"}, mPassword{"MrMkhVMNdOeqPL4Q4XVQAsRPR14J7Yq6"}, mToken{mTokenFilePath, mUsername, mPassword} {} std::string toString() const { return mToken.toString(); } Token &getToken() { return mToken; } private: const std::string mTokenFilePath; const std::string mUsername; const std::string mPassword; Token mToken; }; class HearthstoneApiMock { public: HearthstoneApiMock() : mHearthstoneApi(std::move(mToken.getToken())) {}; std::string makeApiRequest(const std::string &iCardsUrl) { return mHearthstoneApi.makeApiRequest(iCardsUrl); } private: TokenMock mToken; const HearthstoneApi mHearthstoneApi; }; TEST_CASE("Retrieve API Token", "[getApiToken]") { TokenMock aToken; const std::string kTokenContent{aToken.toString()}; std::cout << kTokenContent << '\n'; const std::string::size_type kTokenSize{kTokenContent.size()}; REQUIRE(kTokenSize >= 30); REQUIRE(kTokenSize <= 40); } TEST_CASE("Retrieve number of pages", "[getPagesCount]") { HearthstoneApiMock aHearthstoneApi; // std::cout << aHearthstoneApi.numberOfCards() << '\n'; } TEST_CASE("Retrieve cards", "[retrieveCards]") { HearthstoneApiMock aHearthstoneApi; ApiUrl aApiUrl("cards"); aApiUrl.setLocale("fr_FR"); aApiUrl.setGameMode("constructed"); std::cout << aHearthstoneApi.makeApiRequest(aApiUrl()) << '\n'; }