diff options
Diffstat (limited to 'battleNetApi/tests')
| -rw-r--r-- | battleNetApi/tests/tests.cpp | 43 |
1 files changed, 40 insertions, 3 deletions
diff --git a/battleNetApi/tests/tests.cpp b/battleNetApi/tests/tests.cpp index 062608e..39951bf 100644 --- a/battleNetApi/tests/tests.cpp +++ b/battleNetApi/tests/tests.cpp @@ -1,5 +1,12 @@ #include "apiUrl.hpp" #include "hearthstoneApi.hpp" +#include <catch2/benchmark/catch_benchmark.hpp> +#include <catch2/benchmark/catch_chronometer.hpp> +#include <catch2/benchmark/detail/catch_analyse.hpp> +#include <catch2/benchmark/detail/catch_benchmark_function.hpp> +#include <catch2/benchmark/detail/catch_estimate_clock.hpp> +#include <catch2/catch_approx.hpp> +#include <catch2/catch_config.hpp> #include <catch2/catch_test_macros.hpp> #include <cstdint> #include <iostream> @@ -46,7 +53,7 @@ TEST_CASE("Retrieve cards", "[retrieveCardsOnce]") { REQUIRE(kApiResponse["cards"].size() == 16); } -TEST_CASE("Retrieve cards", "[retrieveCardsFourTimes]") { +TEST_CASE("Retrieve cards 10 times without parallelization", "[retrieveCardsNoParallel]") { const std::string kCredentialsFile{"tests/resources/credentials.json"}; Token aToken(kCredentialsFile); HearthstoneApi aHearthstoneApi(aToken); @@ -60,9 +67,10 @@ TEST_CASE("Retrieve cards", "[retrieveCardsFourTimes]") { json kApiResponse = aHearthstoneApi.makeApiRequest(aApiUrl()); // Retrieve number of pages + const int kNumberOfRetrievals{10}; const int kNumberOfPages{kApiResponse["pageCount"]}; - REQUIRE(kNumberOfPages >= 4); - for (int i{1}; i < 4; ++i) { + REQUIRE(kNumberOfPages >= kNumberOfRetrievals); + for (int i{1}; i < kNumberOfRetrievals; ++i) { REQUIRE(kApiResponse["cards"].size() == 16); aApiUrl.setPage(std::to_string(i + 1)); kApiResponse = aHearthstoneApi.makeApiRequest(aApiUrl()); @@ -70,3 +78,32 @@ TEST_CASE("Retrieve cards", "[retrieveCardsFourTimes]") { REQUIRE(kApiResponse["cards"].size() >= 1); REQUIRE(kApiResponse["cards"].size() <= 16); } + +TEST_CASE("Retrieve cards 30 times with parallelization", "[retrieveCardsParallel]") { + const std::string kCredentialsFile{"tests/resources/credentials.json"}; + Token aToken(kCredentialsFile); + HearthstoneApi aHearthstoneApi(aToken); + 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<std::string> aRequests; + json kFirstPageJson = aHearthstoneApi.makeApiRequest(aApiUrl()); + + int kNumberOfPages{kFirstPageJson["pageCount"]}; + const int kNumberOfRetrievals{30}; + REQUIRE(kNumberOfPages >= kNumberOfRetrievals); + for (int i{1}; i < kNumberOfRetrievals; ++i) { + aApiUrl.setPage(std::to_string(i + 1)); + aRequests.push_back(aApiUrl()); + } + std::vector<json> kApiResponses = aHearthstoneApi.makeApiRequest(aRequests); + kApiResponses.emplace(kApiResponses.begin(), kFirstPageJson); + REQUIRE(kApiResponses.size() == kNumberOfRetrievals); + for (const json &kApiResponse : kApiResponses) { + REQUIRE(kApiResponse["cards"].size() == 16); + } +} |
