diff options
| author | Aotrix <[email protected]> | 2026-07-24 00:31:27 +0200 |
|---|---|---|
| committer | Aotrix <[email protected]> | 2026-07-24 00:31:27 +0200 |
| commit | 2c286a812a3bdaa2531e8f87f5503988bb331a78 (patch) | |
| tree | 9fb8b2a64e434ca4b7b93caf31034d4173108367 | |
| parent | 552017342ed077ec9a516b02ea4b6855a7c17007 (diff) | |
Added new tests for Token
| -rw-r--r-- | battleNetApi/include/token.hpp | 11 | ||||
| -rw-r--r-- | battleNetApi/src/hearthstoneTokenBuilder.cpp | 2 | ||||
| -rw-r--r-- | battleNetApi/src/token.cpp | 13 | ||||
| -rw-r--r-- | battleNetApi/tests/src/tokenTests.cpp | 13 |
4 files changed, 24 insertions, 15 deletions
diff --git a/battleNetApi/include/token.hpp b/battleNetApi/include/token.hpp index 8b9f95e..4a66c53 100644 --- a/battleNetApi/include/token.hpp +++ b/battleNetApi/include/token.hpp @@ -5,13 +5,20 @@ class Token { public: - explicit Token(const std::string &iTokenText, const std::chrono::seconds &iExpirationTime); + explicit Token(const std::string &iTokenText, const std::chrono::seconds &iLifetime); std::string text() const; void setText(const std::string &iTokenText); - void setExpirationTime(const std::chrono::seconds &iExpirationTime); + void setLifetime(const std::chrono::seconds &iLifetime); bool isExpired(); private: std::string _tokenText; std::chrono::seconds _expirationTime; }; + +namespace { +auto currentTime = [] { + return std::chrono::duration_cast<std::chrono::seconds>( + std::chrono::steady_clock::now().time_since_epoch()); +}; +} // namespace diff --git a/battleNetApi/src/hearthstoneTokenBuilder.cpp b/battleNetApi/src/hearthstoneTokenBuilder.cpp index 9509aa6..89466a5 100644 --- a/battleNetApi/src/hearthstoneTokenBuilder.cpp +++ b/battleNetApi/src/hearthstoneTokenBuilder.cpp @@ -26,7 +26,9 @@ HearthstoneTokenBuilder &HearthstoneTokenBuilder::buildToken() { // mCurrentToken = std::make_unique<Token>(...); return *this; } + std::shared_ptr<Token> HearthstoneTokenBuilder::getToken() { return mCurrentToken; } + HearthstoneTokenBuilder &HearthstoneTokenBuilder::allowUpdateSourceFile() { mUpdateSourceFile = true; return *this; diff --git a/battleNetApi/src/token.cpp b/battleNetApi/src/token.cpp index 6fcef1a..276c334 100644 --- a/battleNetApi/src/token.cpp +++ b/battleNetApi/src/token.cpp @@ -1,17 +1,14 @@ #include "token.hpp" -Token::Token(const std::string &iTokenText, const std::chrono::seconds &iExpirationTime) - : _tokenText{iTokenText}, _expirationTime{iExpirationTime} {} +Token::Token(const std::string &iTokenText, const std::chrono::seconds &iLifetime) + : _tokenText{iTokenText}, _expirationTime{iLifetime + currentTime()} {} std::string Token::text() const { return _tokenText; } void Token::setText(const std::string &iTokenText) { _tokenText = iTokenText; } -void Token::setExpirationTime(const std::chrono::seconds &iExpirationTime) { - _expirationTime = iExpirationTime; +void Token::setLifetime(const std::chrono::seconds &iExpirationTime) { + _expirationTime = iExpirationTime + currentTime(); } -bool Token::isExpired() { - return _expirationTime <= std::chrono::duration_cast<std::chrono::seconds>( - std::chrono::steady_clock::now().time_since_epoch()); -} +bool Token::isExpired() { return _expirationTime <= currentTime(); } diff --git a/battleNetApi/tests/src/tokenTests.cpp b/battleNetApi/tests/src/tokenTests.cpp index 89e4039..2e2d5b4 100644 --- a/battleNetApi/tests/src/tokenTests.cpp +++ b/battleNetApi/tests/src/tokenTests.cpp @@ -10,11 +10,14 @@ #include <string> #include <tokenBuilder.hpp> -TEST_CASE("Retrieve API Token", "[generateApiToken]") { +TEST_CASE("Token", "[Token is expired]") { const std::string aCredentialsFile{"../tests/resources/credentials.json"}; Token aToken(aCredentialsFile, std::chrono::seconds(0)); - const std::string aTokenContent{aToken.text()}; - const std::string::size_type aTokenSize{aTokenContent.size()}; - REQUIRE(aTokenSize >= 30); - REQUIRE(aTokenSize <= 40); + REQUIRE(aToken.isExpired()); +} + +TEST_CASE("Token", "[Token is not expired]") { + const std::string aCredentialsFile{"../tests/resources/credentials.json"}; + Token aToken(aCredentialsFile, std::chrono::seconds(20)); + REQUIRE_FALSE(aToken.isExpired()); } |
