From 552017342ed077ec9a516b02ea4b6855a7c17007 Mon Sep 17 00:00:00 2001 From: Aotrix <9aotrix@protonmail.com> Date: Mon, 13 Jul 2026 00:23:36 +0200 Subject: Added test file for Token --- battleNetApi/tests/tests.cpp | 149 ------------------------------------------- 1 file changed, 149 deletions(-) delete mode 100644 battleNetApi/tests/tests.cpp (limited to 'battleNetApi/tests/tests.cpp') diff --git a/battleNetApi/tests/tests.cpp b/battleNetApi/tests/tests.cpp deleted file mode 100644 index 10c6f23..0000000 --- a/battleNetApi/tests/tests.cpp +++ /dev/null @@ -1,149 +0,0 @@ -#include "apiUrl.hpp" -#include "hearthstoneApi.hpp" -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -TEST_CASE("Retrieve API Token", "[generateApiToken]") { - const std::string kCredentialsFile{"tests/resources/credentials.json"}; - Token aToken(kCredentialsFile); - const std::string kTokenContent{aToken.text()}; - const std::string::size_type kTokenSize{kTokenContent.size()}; - REQUIRE(kTokenSize >= 30); - REQUIRE(kTokenSize <= 40); -} - -TEST_CASE("Retrieve number of cards", "[countCards]") { - const std::string kCredentialsFile{}; - const std::string kContentType{"cards"}; - const std::string kRegion{"eu"}; - ApiUrl aApiUrl(kContentType, kRegion); - aApiUrl.setLocale("fr_FR"); - aApiUrl.setGameMode("constructed"); - aApiUrl.setPageSize("1"); - TokenPool::feedTokenSource("tests/resources/credentials.json"); - const json kResponse = HearthstoneApi::makeApiRequest( - aApiUrl, TokenPool::build().value().text()); - REQUIRE(kResponse.size() > 0); - REQUIRE(kResponse.contains("pageCount")); - std::uint64_t kNumberOfCards{kResponse["pageCount"]}; - std::uint64_t kExpectedNumberOfCards{6178}; - REQUIRE(kNumberOfCards == kExpectedNumberOfCards); -} - -TEST_CASE("Retrieve page once", "[retrievePageOnce]") { - const std::string kCredentialsFile{"tests/resources/credentials.json"}; - Token aToken(kCredentialsFile); - const std::string kContentType{"cards"}; - const std::string kRegion{"eu"}; - ApiUrl aApiUrl(kContentType, kRegion); - aApiUrl.setLocale("fr_FR"); - aApiUrl.setGameMode("constructed"); - aApiUrl.setPageSize("16"); - TokenPool::feedTokenSource("tests/resources/credentials.json"); - const json kApiResponse = HearthstoneApi::makeApiRequest( - aApiUrl, TokenPool::build().value().text()); - REQUIRE(kApiResponse["cards"].size() == 16); -} - -TEST_CASE("Retrieve pages 10 times without parallelization", - "[retrievePagesNoParallel]") { - const std::string kCredentialsFile{"tests/resources/credentials.json"}; - Token aToken(kCredentialsFile); - const std::string kContentType{"cards"}; - const std::string kRegion{"eu"}; - ApiUrl aApiUrl(kContentType, kRegion); - aApiUrl.setLocale("fr_FR"); - aApiUrl.setGameMode("constructed"); - aApiUrl.setPageSize("16"); - aApiUrl.setPage("1"); - TokenPool::feedTokenSource("tests/resources/credentials.json"); - std::string kTokenText{TokenPool::build().value().text()}; - json kApiResponse = HearthstoneApi::makeApiRequest(aApiUrl, kTokenText); - - // Retrieve number of pages - const int kNumberOfRetrievals{10}; - const int kNumberOfPages{kApiResponse["pageCount"]}; - REQUIRE(kNumberOfPages >= kNumberOfRetrievals); - for (int i{1}; i < kNumberOfRetrievals; ++i) { - REQUIRE(kApiResponse["cards"].size() == 16); - aApiUrl.setPage(std::to_string(i + 1)); - kApiResponse = HearthstoneApi::makeApiRequest(aApiUrl, kTokenText); - } - REQUIRE(kApiResponse["cards"].size() >= 1); - REQUIRE(kApiResponse["cards"].size() <= 16); -} - -TEST_CASE("Retrieve pages 10 times with parallelization", - "[retrievePagesParallel]") { - const std::string kCredentialsFile{"tests/resources/credentials.json"}; - Token aToken(kCredentialsFile); - const std::string kContentType{"cards"}; - const std::string kRegion{"eu"}; - ApiUrl aApiUrl(kContentType, kRegion); - aApiUrl.setLocale("fr_FR"); - aApiUrl.setGameMode("constructed"); - aApiUrl.setPageSize("16"); - aApiUrl.setPage("1"); - std::vector aRequests; - TokenPool::feedTokenSource("tests/resources/credentials.json"); - std::string kTokenText{TokenPool::build().value().text()}; - json kFirstPageJson = HearthstoneApi::makeApiRequest(aApiUrl, kTokenText); - - int kNumberOfPages{kFirstPageJson["pageCount"]}; - const int kNumberOfRetrievals{10}; - REQUIRE(kNumberOfPages >= kNumberOfRetrievals); - for (int i{1}; i < kNumberOfRetrievals; ++i) { - aApiUrl.setPage(std::to_string(i + 1)); - aRequests.push_back(aApiUrl.text()); - } - std::vector kApiResponses = - HearthstoneApi::makeApiRequest(aRequests, kTokenText); - kApiResponses.emplace(kApiResponses.begin(), kFirstPageJson); - REQUIRE(kApiResponses.size() == kNumberOfRetrievals); - for (const json &kApiResponse : kApiResponses) { - REQUIRE(kApiResponse["cards"].size() == 16); - } -} - -TEST_CASE("Merge two card lists from two page requests", "[Merge pages]") { - std::ifstream aFirstPage{"tests/resources/page_merge_00.json"}; - json kFirstPage = json::parse(aFirstPage); - std::ifstream aSecondPage{"tests/resources/page_merge_01.json"}; - const json kSecondPage = json::parse(aSecondPage); - - json::reference aMergedCards = kFirstPage["cards"]; - for (auto &card : kSecondPage["cards"]) { - aMergedCards.push_back(std::move(card)); - } - REQUIRE(aMergedCards.size() == 32); - std::ofstream aOutputJson("build/output_pages_merge.json"); - aOutputJson << aMergedCards.dump(4); -} - -TEST_CASE("Retrieve a single page with HearthstoneApi::downloadCards", - "[retrievePageOnceHearthstoneApi]") { - const std::string kContentType{"cards"}; - const std::string kRegion{"eu"}; - ApiUrl aApiUrl(kContentType, kRegion); - aApiUrl.setPage(3); - TokenPool::feedTokenSource("tests/resources/credentials.json"); - json kApiResponse = HearthstoneApi::makeApiRequest( - aApiUrl, TokenPool::build().value().text()); - const json::size_type kExpectedNumberOfCards{kApiResponse["cards"].size()}; - TokenPool::feedTokenSource("tests/resources/credentials.json"); - kApiResponse = - HearthstoneApi::downloadCards(aApiUrl, TokenPool::build().value()); - const json::size_type kCurrentNumberOfCards{kApiResponse["cards"].size()}; - REQUIRE(kCurrentNumberOfCards == kExpectedNumberOfCards); -} -- cgit v1.2.3