summaryrefslogtreecommitdiff
path: root/battleNetApi/tests/tests.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'battleNetApi/tests/tests.cpp')
-rw-r--r--battleNetApi/tests/tests.cpp24
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);
+}