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)
{
<< " 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
#include <cynara-client-async.h>
+#include <string>
+
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:
~Client() noexcept(false);
void assertStatus(enum SocketStatus expectedStatus);
+ void checkCache(const CheckData &checkData, int expectedResult);
private:
struct cynara_async *m_cynara;