From a09398b0734a21c70e5ee3bc80cae49d49a70a22 Mon Sep 17 00:00:00 2001 From: Aotrix <9aotrix@protonmail.com> Date: Sat, 31 Jan 2026 06:05:02 +0100 Subject: added a test to merge two sets of cards --- battleNetApi/tests/tests.cpp | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) (limited to 'battleNetApi/tests/tests.cpp') diff --git a/battleNetApi/tests/tests.cpp b/battleNetApi/tests/tests.cpp index 39951bf..bafcdcb 100644 --- a/battleNetApi/tests/tests.cpp +++ b/battleNetApi/tests/tests.cpp @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include @@ -39,7 +40,7 @@ TEST_CASE("Retrieve number of cards", "[countCards]") { REQUIRE(kNumberOfCards == 6033); } -TEST_CASE("Retrieve cards", "[retrieveCardsOnce]") { +TEST_CASE("Retrieve page once", "[retrievePageOnce]") { const std::string kCredentialsFile{"tests/resources/credentials.json"}; Token aToken(kCredentialsFile); HearthstoneApi aHearthstoneApi(aToken); @@ -53,7 +54,7 @@ TEST_CASE("Retrieve cards", "[retrieveCardsOnce]") { REQUIRE(kApiResponse["cards"].size() == 16); } -TEST_CASE("Retrieve cards 10 times without parallelization", "[retrieveCardsNoParallel]") { +TEST_CASE("Retrieve pages 10 times without parallelization", "[retrievePagesNoParallel]") { const std::string kCredentialsFile{"tests/resources/credentials.json"}; Token aToken(kCredentialsFile); HearthstoneApi aHearthstoneApi(aToken); @@ -79,7 +80,7 @@ TEST_CASE("Retrieve cards 10 times without parallelization", "[retrieveCardsNoPa REQUIRE(kApiResponse["cards"].size() <= 16); } -TEST_CASE("Retrieve cards 30 times with parallelization", "[retrieveCardsParallel]") { +TEST_CASE("Retrieve pages 10 times with parallelization", "[retrievePagesParallel]") { const std::string kCredentialsFile{"tests/resources/credentials.json"}; Token aToken(kCredentialsFile); HearthstoneApi aHearthstoneApi(aToken); @@ -94,7 +95,7 @@ TEST_CASE("Retrieve cards 30 times with parallelization", "[retrieveCardsParalle json kFirstPageJson = aHearthstoneApi.makeApiRequest(aApiUrl()); int kNumberOfPages{kFirstPageJson["pageCount"]}; - const int kNumberOfRetrievals{30}; + const int kNumberOfRetrievals{10}; REQUIRE(kNumberOfPages >= kNumberOfRetrievals); for (int i{1}; i < kNumberOfRetrievals; ++i) { aApiUrl.setPage(std::to_string(i + 1)); @@ -107,3 +108,18 @@ TEST_CASE("Retrieve cards 30 times with parallelization", "[retrieveCardsParalle 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(card); + } + REQUIRE(aMergedCards.size() == 32); + std::ofstream aOutputJson("build/output_pages_merge.json"); + aOutputJson << aMergedCards.dump(4); +} -- cgit v1.2.3