Add cynara test admin class
[platform/core/test/security-tests.git] / tests / cynara-tests / common / cynara_test_admin.h
1 #ifndef CYNARA_TEST_ADMIN_H
2 #define CYNARA_TEST_ADMIN_H
3
4 #include <cynara-admin.h>
5 #include <vector>
6
7 class CynaraTestAdmin;
8
9 class CynaraPoliciesContainer
10 {
11 public:
12     CynaraPoliciesContainer();
13     virtual ~CynaraPoliciesContainer();
14
15     void add(const char *bucket,
16              const char *client,
17              const char *user,
18              const char *privilege,
19              const int result,
20              const char *resultExtra);
21 private:
22     friend class CynaraTestAdmin;
23
24     std::vector<struct cynara_admin_policy> m_policies;
25 };
26
27 class CynaraTestAdmin
28 {
29 public:
30     CynaraTestAdmin();
31     virtual ~CynaraTestAdmin();
32
33     void setPolicies(const CynaraPoliciesContainer &policiesContainer,
34                      int expectedResult = CYNARA_ADMIN_API_SUCCESS);
35     void setBucket(const char *bucket, int operation, const char *extra,
36                    int expectedResult = CYNARA_ADMIN_API_SUCCESS);
37 private:
38     struct cynara_admin *m_admin;
39 };
40
41 #endif // CYNARA_TEST_ADMIN_H