2 * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 #ifndef CYNARA_TEST_ADMIN_H
18 #define CYNARA_TEST_ADMIN_H
20 #include <cynara_test_commons.h>
23 #include <cynara-admin.h>
27 namespace CynaraTestAdmin {
31 class CynaraPoliciesContainer
34 CynaraPoliciesContainer();
38 * A special constructor stealing all data from all structures cynara_admin_policy
39 * arranged in a null-terminated list.
40 * It moves all data from inside structures to own vector,
41 * but release input list by freeing memory of list elements and list itself.
43 CynaraPoliciesContainer(struct cynara_admin_policy **policies);
44 CynaraPoliciesContainer(const CynaraPoliciesContainer&) = delete;
45 CynaraPoliciesContainer(const CynaraPoliciesContainer&&) = delete;
46 virtual ~CynaraPoliciesContainer();
48 void add(const char *bucket,
51 const char *privilege,
53 const char *resultExtra);
54 void add(const char *bucket,
55 const CheckKey &checkKey,
57 const char *resultExtra = nullptr);
60 friend std::ostream& operator<<(std::ostream& os, const CynaraPoliciesContainer &policies);
65 std::vector<struct cynara_admin_policy> m_policies;
74 void setPolicies(const CynaraPoliciesContainer &policiesContainer,
75 int expectedResult = CYNARA_API_SUCCESS);
76 void setBucket(const char *bucket, int operation, const char *extra,
77 int expectedResult = CYNARA_API_SUCCESS);
78 void adminCheck(const char *startBucket, int recursive,
79 const char *client, const char *user, const char *privilege,
80 int expectedCheckResult, const char *expectedCheckResultExtra,
81 int expectedResult = CYNARA_API_SUCCESS);
82 void listPolicies(const char *startBucket,
83 const char *client, const char *user, const char *privilege,
84 CynaraPoliciesContainer &expectedPolicyList,
85 int expectedResult = CYNARA_API_SUCCESS);
86 void erasePolicies(const char *startBucket, int recursive,
87 const char *client, const char *user, const char *privilege,
88 int expectedResult = CYNARA_API_SUCCESS);
89 void listPoliciesDescriptions(CynaraTestPlugins::Descriptions &expectedDescriptions,
90 int expectedResult = CYNARA_API_SUCCESS);
92 struct cynara_admin *m_admin;
95 } // namespace CynaraTestAdmin
97 #endif // CYNARA_TEST_ADMIN_H