diff options
Diffstat (limited to 'battleNetApi/tests/tests.cpp')
| -rw-r--r-- | battleNetApi/tests/tests.cpp | 24 |
1 files changed, 20 insertions, 4 deletions
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 <catch2/catch_config.hpp> #include <catch2/catch_test_macros.hpp> #include <cstdint> +#include <fstream> #include <iostream> #include <nlohmann/json.hpp> #include <string> @@ -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); +} |
