Add CynaraTestAsync::Client::checkCache() method 82/28982/6
authorLukasz Wojciechowski <l.wojciechow@partner.samsung.com>
Fri, 17 Oct 2014 16:44:02 +0000 (18:44 +0200)
committerLukasz Wojciechowski <l.wojciechow@partner.samsung.com>
Thu, 30 Oct 2014 12:29:36 +0000 (13:29 +0100)
Method can be used to test cynara_async_check_cache() API function.

Change-Id: Ibc7009362bec2cfdc90472299d3bfdf155f186c3

tests/cynara-tests/common/cynara_test_client_async_client.cpp
tests/cynara-tests/common/cynara_test_client_async_client.h

index d19a1c2..1cfe391 100644 (file)
 
 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
index e3cecdb..0e1f90e 100644 (file)
 
 #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:
@@ -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;