Expand CheckData and PoliciesContainer for easier use 56/29356/15
authorLukasz Wojciechowski <l.wojciechow@partner.samsung.com>
Fri, 24 Oct 2014 17:17:24 +0000 (19:17 +0200)
committerLukasz Wojciechowski <l.wojciechow@partner.samsung.com>
Mon, 8 Dec 2014 10:18:28 +0000 (11:18 +0100)
New CynaraPoliciesContainer::add allows adding policies with {client,
user, privilege} tripple passed as single vector parameter.
CheckData class is expanded with toAdminPolicy() method for converting
ChackData object into such vector.

Change-Id: I3cc34fc7801a81e6a9f4a456013653b1ef0d3323

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

index 86b5658..9bafbb7 100644 (file)
@@ -85,6 +85,14 @@ void CynaraPoliciesContainer::add(const char *bucket,
         policy.result_extra = strdup(resultExtra);
 }
 
+void CynaraPoliciesContainer::add(const char *bucket,
+                                  const CheckKey &checkKey,
+                                  const int result,
+                                  const char *resultExtra)
+{
+    add(bucket, checkKey.m_client, checkKey.m_user, checkKey.m_privilege, result, resultExtra);
+}
+
 CynaraTestAdmin::CynaraTestAdmin()
     : m_admin(nullptr)
 {
index 5a7a008..5116bc3 100644 (file)
@@ -17,6 +17,8 @@
 #ifndef CYNARA_TEST_ADMIN_H
 #define CYNARA_TEST_ADMIN_H
 
+#include <cynara_test_commons.h>
+
 #include <cynara-admin.h>
 #include <vector>
 
@@ -34,6 +36,11 @@ public:
              const char *privilege,
              const int result,
              const char *resultExtra);
+    void add(const char *bucket,
+             const CheckKey &checkKey,
+             const int result,
+             const char *resultExtra = nullptr);
+
 private:
     friend class CynaraTestAdmin;
 
index b6159c5..3201f97 100644 (file)
@@ -44,6 +44,11 @@ CheckData::CheckData(const std::string &major, int minor) : CheckData(major, std
 {
 }
 
+CheckKey CheckData::toAdminPolicy()
+{
+    return {m_client.c_str(), m_user.c_str(), m_privilege.c_str()};
+}
+
 Client::Client(const StatusFunction &userFunction)
     : m_cynara(nullptr), m_statusMonitor(userFunction)
 {
index 77f891f..37abdc5 100644 (file)
@@ -19,6 +19,7 @@
 
 #include <cynara_test_client_async_request_monitor.h>
 #include <cynara_test_client_async_status_monitor.h>
+#include <cynara_test_commons.h>
 
 #include <cynara-client-async.h>
 
@@ -36,6 +37,8 @@ struct CheckData
 
     CheckData(const std::string &major, const std::string &minor = "");
     CheckData(const std::string &major, int minor);
+
+    CheckKey toAdminPolicy();
 };
 
 class Client
index 6622ffb..d56b6eb 100644 (file)
@@ -26,6 +26,7 @@
 
 #include <functional>
 #include <string>
+#include <vector>
 
 namespace CynaraTestConsts
 {
@@ -37,6 +38,13 @@ extern const std::string SERVICE;
 
 }
 
+struct CheckKey
+{
+    const char *m_client;
+    const char *m_user;
+    const char *m_privilege;
+};
+
 void environmentWrap(const char *testName, const std::function<void(void)> &func);
 
 #define RUN_CYNARA_TEST(Proc)                \