Let Cynara's admin API be tested in online and offline mode
[platform/core/test/security-tests.git] / src / cynara-tests / common / cynara_test_admin.cpp
index 2ba519c..b066e83 100644 (file)
  */
 
 #include <cynara_test_admin.h>
+#include <cynara_test_cynara_mask.h>
 #include <memory.h>
 #include <plugins.h>
 #include <tests_common.h>
 
+
 #include <algorithm>
 #include <cstring>
 #include <cstdlib>
+#include <memory>
 #include <ostream>
 #include <string>
 #include <sstream>
@@ -179,23 +182,29 @@ std::ostream& operator<<(std::ostream& os, const CynaraPoliciesContainer &polici
     return os;
 }
 
-Admin::Admin()
-    : m_admin(nullptr)
+Admin::Admin(bool isOnline)
+    : m_admin(nullptr), m_online(isOnline)
 {
+    std::unique_ptr<CynaraMask>(m_online ? nullptr : new CynaraMask());
+
+
     int ret = cynara_admin_initialize(&m_admin);
     RUNNER_ASSERT_MSG(ret == CYNARA_API_SUCCESS,
                          "cynara_admin_initialize failed. ret: " << ret);
     RUNNER_ASSERT_MSG(m_admin != nullptr, "cynara_admin struct was not initialized");
 }
 
-Admin::~Admin()
+Admin::~Admin() noexcept(false)
 {
+    std::unique_ptr<CynaraMask>(m_online ? nullptr : new CynaraMask());
     cynara_admin_finish(m_admin);
 }
 
 void Admin::setPolicies(const CynaraPoliciesContainer &policiesContainer,
                         int expectedResult)
 {
+    std::unique_ptr<CynaraMask>(m_online ? nullptr : new CynaraMask());
+
     const cynara_admin_policy *policies[policiesContainer.m_policies.size()+1];
 
     for (size_t i = 0; i < policiesContainer.m_policies.size(); ++i) {
@@ -213,6 +222,8 @@ void Admin::setPolicies(const CynaraPoliciesContainer &policiesContainer,
 void Admin::setBucket(const char *bucket, int operation, const char *extra,
                       int expectedResult)
 {
+    std::unique_ptr<CynaraMask>(m_online ? nullptr : new CynaraMask());
+
     int ret = cynara_admin_set_bucket(m_admin, bucket, operation, extra);
     RUNNER_ASSERT_MSG(ret == expectedResult,
                          "cynara_admin_set_bucket returned wrong value: "
@@ -227,6 +238,8 @@ void Admin::adminCheck(const char *startBucket, int recursive,
                        int expectedCheckResult, const char *expectedCheckResultExtra,
                        int expectedResult)
 {
+    std::unique_ptr<CynaraMask>(m_online ? nullptr : new CynaraMask());
+
     int checkResult;
     char *checkResultExtra = nullptr;
 
@@ -277,6 +290,8 @@ void Admin::listPolicies(const char *startBucket,
                          CynaraPoliciesContainer &expectedPolicyList,
                          int expectedResult) {
 
+    std::unique_ptr<CynaraMask>(m_online ? nullptr : new CynaraMask());
+
     struct cynara_admin_policy **policies = nullptr;
 
     int ret = cynara_admin_list_policies(m_admin,
@@ -328,6 +343,8 @@ void Admin::erasePolicies(const char *startBucket, int recursive,
                           const char *client, const char *user, const char *privilege,
                           int expectedResult)
 {
+    std::unique_ptr<CynaraMask>(m_online ? nullptr : new CynaraMask());
+
     int ret = cynara_admin_erase(m_admin,
                                  startBucket, recursive,
                                  client, user, privilege);
@@ -373,6 +390,8 @@ CynaraTestPlugins::Descriptions parseAndRelease(cynara_admin_policy_descr **desc
 void Admin::listPoliciesDescriptions(CynaraTestPlugins::Descriptions &expectedDescriptions,
                                      int expectedResult)
 {
+    std::unique_ptr<CynaraMask>(m_online ? nullptr : new CynaraMask());
+
     struct cynara_admin_policy_descr **descriptions = nullptr;
 
     int ret = cynara_admin_list_policies_descriptions(m_admin, &descriptions);