Let Cynara's admin API be tested in online and offline mode 39/35339/4
authorAleksander Zdyb <a.zdyb@samsung.com>
Thu, 12 Feb 2015 09:21:36 +0000 (10:21 +0100)
committerRadoslaw Bartosiak <r.bartosiak@samsung.com>
Mon, 11 May 2015 11:51:55 +0000 (13:51 +0200)
Change-Id: I7698188997ac2f7a7902c1edce8d87151d2a1ab4

src/cynara-tests/common/cynara_test_admin.cpp
src/cynara-tests/common/cynara_test_admin.h
src/security-manager-tests/CMakeLists.txt

index 2ba519c29d174bce8dbc40b4ddefd0aa920e605e..b066e83e82a262a05d286b93325913d61b9998a2 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);
index 6d58afd2ba33bc06e79a8278d06716d0dfc7ea54..7920d4dbdf9d794dd7c0d29994a5fc6a64404191 100644 (file)
@@ -68,8 +68,8 @@ private:
 class Admin
 {
 public:
-    Admin();
-    virtual ~Admin();
+    Admin(bool isOnline = true);
+    virtual ~Admin()  noexcept(false);
 
     void setPolicies(const CynaraPoliciesContainer &policiesContainer,
                      int expectedResult = CYNARA_API_SUCCESS);
@@ -90,6 +90,7 @@ public:
                                   int expectedResult = CYNARA_API_SUCCESS);
 private:
     struct cynara_admin *m_admin;
+    bool m_online;
 };
 
 } // namespace CynaraTestAdmin
index 7f1d234cba9211a8c9b22dbc827f81e94e960fa3..c56763e4e4f21d5b1b6bda250d1158d83b88ea15 100644 (file)
@@ -37,6 +37,9 @@ PKG_CHECK_MODULES(SEC_MGR_TESTS_DEP
 SET(TARGET_SEC_MGR_TESTS "security-manager-tests")
 
 SET(SEC_MGR_SOURCES
+    ${PROJECT_SOURCE_DIR}/src/cynara-tests/common/cynara_test_cynara_mask.cpp
+    ${PROJECT_SOURCE_DIR}/src/cynara-tests/common/cynara_test_commons.cpp
+    ${PROJECT_SOURCE_DIR}/src/cynara-tests/common/cynara_test_file_operations.cpp
     ${PROJECT_SOURCE_DIR}/src/security-manager-tests/security_manager_tests.cpp
     ${PROJECT_SOURCE_DIR}/src/security-manager-tests/common/sm_api.cpp
     ${PROJECT_SOURCE_DIR}/src/security-manager-tests/common/sm_db.cpp