From c17a31855afcf66066a356a238b26ee4686bef9d Mon Sep 17 00:00:00 2001 From: Lukasz Wojciechowski Date: Fri, 17 Oct 2014 18:44:02 +0200 Subject: [PATCH] Add CynaraTestAsync::Client::checkCache() method Method can be used to test cynara_async_check_cache() API function. Change-Id: Ibc7009362bec2cfdc90472299d3bfdf155f186c3 --- .../common/cynara_test_client_async_client.cpp | 34 ++++++++++++++++++++++ .../common/cynara_test_client_async_client.h | 14 +++++++++ 2 files changed, 48 insertions(+) diff --git a/tests/cynara-tests/common/cynara_test_client_async_client.cpp b/tests/cynara-tests/common/cynara_test_client_async_client.cpp index d19a1c2..1cfe391 100644 --- a/tests/cynara-tests/common/cynara_test_client_async_client.cpp +++ b/tests/cynara-tests/common/cynara_test_client_async_client.cpp @@ -24,6 +24,25 @@ namespace CynaraTestClientAsync { +static std::string suffix(const std::string &major, const std::string &minor) +{ + if (minor.empty()) + return major; + return "_" + major + "_" + minor; +} + +CheckData::CheckData(const std::string &major, const std::string &minor) : + m_client("client" + suffix(major, minor)), + m_session("session" + suffix(major, minor)), + m_user("user" + suffix(major, minor)), + m_privilege("privilege" + suffix(major, minor)) +{ +} + +CheckData::CheckData(const std::string &major, int minor) : CheckData(major, std::to_string(minor)) +{ +} + Client::Client() : m_cynara(nullptr) { @@ -58,4 +77,19 @@ void Client::assertStatus(enum SocketStatus expectedStatus) << " expectedStatus = " << expectedStatus << "."); } +void Client::checkCache(const CheckData &checkData, int expectedResult) +{ + int ret = cynara_async_check_cache(m_cynara, checkData.m_client.c_str(), + checkData.m_session.c_str(), checkData.m_user.c_str(), + checkData.m_privilege.c_str()); + RUNNER_ASSERT_MSG(ret == expectedResult, + "Cache check returned unexpected value: " + << " returned value = " << ret << "," + << " expected value = " << expectedResult << "," + << " client = " << checkData.m_client << "," + << " sesion = " << checkData.m_session << "," + << " user = " << checkData.m_user << "," + << " privilege = " << checkData.m_privilege << "."); +} + }// namespace CynaraTestClientAsync diff --git a/tests/cynara-tests/common/cynara_test_client_async_client.h b/tests/cynara-tests/common/cynara_test_client_async_client.h index e3cecdb..0e1f90e 100644 --- a/tests/cynara-tests/common/cynara_test_client_async_client.h +++ b/tests/cynara-tests/common/cynara_test_client_async_client.h @@ -22,8 +22,21 @@ #include +#include + namespace CynaraTestClientAsync { +struct CheckData +{ + std::string m_client; + std::string m_session; + std::string m_user; + std::string m_privilege; + + CheckData(const std::string &major, const std::string &minor = ""); + CheckData(const std::string &major, int minor); +}; + class Client { public: @@ -31,6 +44,7 @@ public: ~Client() noexcept(false); void assertStatus(enum SocketStatus expectedStatus); + void checkCache(const CheckData &checkData, int expectedResult); private: struct cynara_async *m_cynara; -- 2.7.4