From 7c7c8b4aafe91f49a3448b822dd604253545307d Mon Sep 17 00:00:00 2001 From: Aotrix <9aotrix@protonmail.com> Date: Sun, 9 Nov 2025 16:31:11 +0100 Subject: added tests --- .../battleNetApi/include/hearthstoneApi.hpp | 29 +++++++++++++++++----- subprojects/battleNetApi/src/hearthstoneApi.cpp | 22 ++++++++-------- subprojects/battleNetApi/tests/tests.cpp | 12 ++++++--- 3 files changed, 42 insertions(+), 21 deletions(-) diff --git a/subprojects/battleNetApi/include/hearthstoneApi.hpp b/subprojects/battleNetApi/include/hearthstoneApi.hpp index 6b3bbe5..0ed9b57 100644 --- a/subprojects/battleNetApi/include/hearthstoneApi.hpp +++ b/subprojects/battleNetApi/include/hearthstoneApi.hpp @@ -1,20 +1,37 @@ #pragma once #include "token.hpp" #include +#include + +class ApiUrlParameters { + public: + void setLocale(const std::string iLocale) { + aParameters["locale"] = iLocale; // aParameters; +}; class HearthstoneApi { public: HearthstoneApi(Token &&iToken); std::uint64_t numberOfCards(); - std::string getCards(const std::string &t_card_parameters); + std::string cards(const std::string &iCardParameters); private: std::string authorizationHeader(); - const std::string getUrl(const std::string &t_parameters); - const std::string getSetOfCardsUrl(const std::string &t_card_parameters); - std::string makeApiRequest(const char *t_url); - std::string makeApiRequest(const std::string &t_url); - static size_t curlCallbackStringOutput(void *t_contents, size_t t_size, size_t t_nmemb, std::string *t_s); + std::string makeApiRequest(const std::string &iUrl) const; + const std::string apiUrl(const std::string &iParameters) const; + const std::string setOfCardsUrl(const std::string &iCardParameters); + static size_t curlCallbackStringOutput(void *iContent, size_t iSize, size_t iNmemb, std::string *iS); Token mToken; std::string mAuthorizationHeader; //append(static_cast(iContent), newLength); + iS->append(static_cast(iContent), kNewLength); } catch (std::bad_alloc &e) { // handle memory problem return 0; } - return newLength; + return kNewLength; } -std::string HearthstoneApi::makeApiRequest(const std::string &iUrl) { return makeApiRequest(iUrl.c_str()); } - -std::string HearthstoneApi::getCards(const std::string &iCardParameters) { - return makeApiRequest(getSetOfCardsUrl(iCardParameters)); +std::string HearthstoneApi::cards(const std::string &iCardParameters) { + return makeApiRequest(setOfCardsUrl(iCardParameters)); } diff --git a/subprojects/battleNetApi/tests/tests.cpp b/subprojects/battleNetApi/tests/tests.cpp index d225de6..d83ea0a 100644 --- a/subprojects/battleNetApi/tests/tests.cpp +++ b/subprojects/battleNetApi/tests/tests.cpp @@ -21,6 +21,8 @@ class TokenMock { class HearthstoneApiMock { public: HearthstoneApiMock() : mHearthstoneApi(std::move(mToken.getToken())) {}; + std::string makeApiRequest(const std::string &iCardsUrl) { return mHearthstoneApi.makeApiRequest(iCardsUrl); } + const std::string apiUrl(const std::string &iParameters) { return mHearthstoneApi.apiUrl(iParameters); }; private: TokenMock mToken; @@ -39,7 +41,11 @@ TEST_CASE("Retrieve API Token", "[getApiToken]") { TEST_CASE("Retrieve number of pages", "[getPagesCount]") { HearthstoneApiMock aHearthstoneApi; // std::cout << aHearthstoneApi.numberOfCards() << '\n'; - // aHearthstoneApi.getNumberOfPages(); - // input parameters - // aHearthstoneApi.getCards +} + +TEST_CASE("Retrieve cards", "[retrieveCards]") { + HearthstoneApiMock aHearthstoneApi; + const std::string kCardParameters{"cards/?locale=fr_FR&gameMode=constructed"}; + const std::string kUrl{aHearthstoneApi.apiUrl(kCardParameters)}; + std::cout << aHearthstoneApi.makeApiRequest(kUrl) << '\n'; } -- cgit v1.2.3