--- /dev/null
+/*
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/**
+ * @file src/cyad/AdminApiWrapper.cpp
+ * @author Aleksander Zdyb <a.zdyb@samsung.com>
+ * @version 1.0
+ * @brief Wrapper around cynara-admin API
+ */
+
+#include <cynara-admin.h>
+
+#include "AdminApiWrapper.h"
+
+namespace Cynara {
+
+AdminApiWrapper::AdminApiWrapper() {}
+
+AdminApiWrapper::~AdminApiWrapper() {}
+
+int AdminApiWrapper::cynara_admin_initialize(struct cynara_admin **pp_cynara_admin) {
+ return ::cynara_admin_initialize(pp_cynara_admin);
+}
+
+int AdminApiWrapper::cynara_admin_finish(struct cynara_admin *p_cynara_admin) {
+ return ::cynara_admin_finish(p_cynara_admin);
+}
+
+int AdminApiWrapper::cynara_admin_set_policies(struct cynara_admin *p_cynara_admin,
+ const struct cynara_admin_policy *const *policies) {
+ return ::cynara_admin_set_policies(p_cynara_admin, policies);
+}
+
+int AdminApiWrapper::cynara_admin_set_bucket(struct cynara_admin *p_cynara_admin,
+ const char *bucket, int operation, const char *extra) {
+ return ::cynara_admin_set_bucket(p_cynara_admin, bucket, operation, extra);
+}
+
+int AdminApiWrapper::cynara_admin_check(struct cynara_admin *p_cynara_admin,
+ const char *start_bucket, const int recursive,
+ const char *client, const char *user, const char *privilege,
+ int *result, char **result_extra) {
+ return ::cynara_admin_check(p_cynara_admin, start_bucket, recursive, client, user, privilege,
+ result, result_extra);
+}
+
+} /* namespace Cynara */
--- /dev/null
+/*
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/**
+ * @file src/cyad/AdminApiWrapper.h
+ * @author Aleksander Zdyb <a.zdyb@samsung.com>
+ * @version 1.0
+ * @brief Wrapper around cynara-admin API
+ */
+
+#ifndef SRC_CYAD_ADMINAPIWRAPPER_H_
+#define SRC_CYAD_ADMINAPIWRAPPER_H_
+
+#include "BaseAdminApiWrapper.h"
+
+struct cynara_admin;
+struct cynara_admin_policy;
+
+namespace Cynara {
+
+class AdminApiWrapper : public BaseAdminApiWrapper {
+public:
+ AdminApiWrapper();
+ virtual ~AdminApiWrapper();
+
+ virtual int cynara_admin_initialize(struct cynara_admin **pp_cynara_admin);
+ virtual int cynara_admin_finish(struct cynara_admin *p_cynara_admin);
+ virtual int cynara_admin_set_policies(struct cynara_admin *p_cynara_admin,
+ const struct cynara_admin_policy *const *policies);
+ virtual int cynara_admin_set_bucket(struct cynara_admin *p_cynara_admin, const char *bucket,
+ int operation, const char *extra);
+ virtual int cynara_admin_check(struct cynara_admin *p_cynara_admin,
+ const char *start_bucket, const int recursive,
+ const char *client, const char *user, const char *privilege,
+ int *result, char **result_extra);
+};
+
+} /* namespace Cynara */
+
+#endif /* SRC_CYAD_ADMINAPIWRAPPER_H_ */
--- /dev/null
+/*
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/**
+ * @file src/cyad/BaseAdminApiWrapper.h
+ * @author Aleksander Zdyb <a.zdyb@samsung.com>
+ * @version 1.0
+ * @brief Wrapper around cynara-admin API (base)
+ */
+
+#ifndef SRC_CYAD_BASEADMINAPIWRAPPER_H_
+#define SRC_CYAD_BASEADMINAPIWRAPPER_H_
+
+struct cynara_admin;
+struct cynara_admin_policy;
+
+namespace Cynara {
+
+class BaseAdminApiWrapper {
+public:
+ virtual ~BaseAdminApiWrapper() {};
+ virtual int cynara_admin_initialize(struct cynara_admin **pp_cynara_admin) = 0;
+ virtual int cynara_admin_finish(struct cynara_admin *p_cynara_admin) = 0;
+ virtual int cynara_admin_set_policies(struct cynara_admin *p_cynara_admin,
+ const struct cynara_admin_policy *const *policies) = 0;
+ virtual int cynara_admin_set_bucket(struct cynara_admin *p_cynara_admin, const char *bucket,
+ int operation, const char *extra) = 0;
+ virtual int cynara_admin_check(struct cynara_admin *p_cynara_admin,
+ const char *start_bucket, const int recursive,
+ const char *client, const char *user, const char *privilege,
+ int *result, char **result_extra) = 0;
+};
+
+} /* namespace Cynara */
+
+#endif /* SRC_CYAD_BASEADMINAPIWRAPPER_H_ */
SET(CYAD_PATH ${CYNARA_PATH}/cyad)
SET(CYAD_SOURCES
+ ${CYAD_PATH}/AdminApiWrapper.cpp
${CYAD_PATH}/main.cpp
)
--- /dev/null
+/*
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/**
+ * @file test/cyad/FakeAdminApiWrapper.h
+ * @author Aleksander Zdyb <a.zdyb@samsung.com>
+ * @version 1.0
+ * @brief Wrapper around cynara-admin API (mock)
+ */
+
+#ifndef TEST_CYAD_FAKEADMINAPIWRAPPER_H_
+#define TEST_CYAD_FAKEADMINAPIWRAPPER_H_
+
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
+
+#include <cyad/BaseAdminApiWrapper.h>
+
+class FakeAdminApiWrapper : public Cynara::BaseAdminApiWrapper {
+public:
+ using BaseAdminApiWrapper::BaseAdminApiWrapper;
+
+ MOCK_METHOD1(cynara_admin_initialize, int(struct cynara_admin **pp_cynara_admin));
+ MOCK_METHOD1(cynara_admin_finish, int(struct cynara_admin *p_cynara_admin));
+ MOCK_METHOD2(cynara_admin_set_policies, int(struct cynara_admin *p_cynara_admin,
+ const struct cynara_admin_policy *const *policies));
+ MOCK_METHOD4(cynara_admin_set_bucket, int(struct cynara_admin *p_cynara_admin,
+ const char *bucket, int operation, const char *extra));
+ MOCK_METHOD8(cynara_admin_check, int(struct cynara_admin *p_cynara_admin,
+ const char *start_bucket, const int recursive,
+ const char *client, const char *user, const char *privilege,
+ int *result, char **result_extra));
+};
+
+#endif /* TEST_CYAD_FAKEADMINAPIWRAPPER_H_ */