typedef Cynara::PolicyKeyFeature PKF;
namespace Keys {
- static const Cynara::PolicyKey k_nun(PKF::create(""), PKF::create("u"), PKF::create(""));
- static const Cynara::PolicyKey k_cup(PKF::create("c"), PKF::create("u"), PKF::create("p"));
- static const Cynara::PolicyKey k_cup2(PKF::create("amanda"), PKF::create("to"),
- PKF::create("troll"));
- static const Cynara::PolicyKey k_wup(PKF::createWildcard(), PKF::create("u"), PKF::create("p"));
- static const Cynara::PolicyKey k_cwp(PKF::create("c"), PKF::createWildcard(), PKF::create("p"));
- static const Cynara::PolicyKey k_cuw(PKF::create("c"), PKF::create("u"), PKF::createWildcard());
- static const Cynara::PolicyKey k_cww(PKF::create("c"), PKF::createWildcard(),
- PKF::createWildcard());
- static const Cynara::PolicyKey k_wuw(PKF::createWildcard(), PKF::create("u"),
- PKF::createWildcard());
- static const Cynara::PolicyKey k_wwp(PKF::createWildcard(), PKF::createWildcard(),
- PKF::create("p"));
- static const Cynara::PolicyKey k_www(PKF::createWildcard(), PKF::createWildcard(),
- PKF::createWildcard());
- static const Cynara::PolicyKey k_aaa(PKF::createAny(), PKF::createAny(), PKF::createAny());
- static const Cynara::PolicyKey k_wua(PKF::createWildcard(), PKF::create("u"), PKF::createAny());
- static const Cynara::PolicyKey k_nua(PKF::create(""), PKF::create("u"), PKF::createAny());
- static const Cynara::PolicyKey k_wwa(PKF::createWildcard(), PKF::createWildcard(),
- PKF::createAny());
- static const Cynara::PolicyKey k_aup(PKF::createAny(), PKF::create("u"), PKF::create("p"));
+
+const Cynara::PolicyKey k_nun(PKF::create(""), PKF::create("u"), PKF::create(""));
+const Cynara::PolicyKey k_cup(PKF::create("c"), PKF::create("u"), PKF::create("p"));
+const Cynara::PolicyKey k_cup2(PKF::create("amanda"), PKF::create("to"),
+ PKF::create("troll"));
+const Cynara::PolicyKey k_wup(PKF::createWildcard(), PKF::create("u"), PKF::create("p"));
+const Cynara::PolicyKey k_cwp(PKF::create("c"), PKF::createWildcard(), PKF::create("p"));
+const Cynara::PolicyKey k_cuw(PKF::create("c"), PKF::create("u"), PKF::createWildcard());
+const Cynara::PolicyKey k_cww(PKF::create("c"), PKF::createWildcard(),
+ PKF::createWildcard());
+const Cynara::PolicyKey k_wuw(PKF::createWildcard(), PKF::create("u"),
+ PKF::createWildcard());
+const Cynara::PolicyKey k_wwp(PKF::createWildcard(), PKF::createWildcard(),
+ PKF::create("p"));
+const Cynara::PolicyKey k_www(PKF::createWildcard(), PKF::createWildcard(),
+ PKF::createWildcard());
+const Cynara::PolicyKey k_aaa(PKF::createAny(), PKF::createAny(), PKF::createAny());
+const Cynara::PolicyKey k_wua(PKF::createWildcard(), PKF::create("u"), PKF::createAny());
+const Cynara::PolicyKey k_nua(PKF::create(""), PKF::create("u"), PKF::createAny());
+const Cynara::PolicyKey k_wwa(PKF::createWildcard(), PKF::createWildcard(),
+ PKF::createAny());
+const Cynara::PolicyKey k_aup(PKF::createAny(), PKF::create("u"), PKF::create("p"));
+const Cynara::PolicyKey all[] = {
+ k_nun, k_cup, k_cup2, k_wup, k_cwp, k_cuw, k_cww, k_wuw, k_wwp, k_www, k_aaa, k_wua, k_nua,
+ k_wwa, k_aup
+};
+
} /* namespace Keys */
namespace SN {
--- /dev/null
+/*
+ * Copyright (c) 2020 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/common/protocols/admin/setpoliciesrequest.cpp
+ * @author Zofia Abramowska <z.abramowska@samsung.com>
+ * @version 1.0
+ * @brief Tests for Cynara::SetPoliciesRequest usage in Cynara::ProtocolAdmin
+ */
+
+#include <gtest/gtest.h>
+
+#include <protocol/ProtocolAdmin.h>
+#include <request/SetPoliciesRequest.h>
+
+#include <RequestTestHelper.h>
+#include <TestDataCollection.h>
+
+namespace {
+
+template<>
+void compare(const Cynara::SetPoliciesRequest &req1,
+ const Cynara::SetPoliciesRequest &req2)
+{
+ EXPECT_EQ(req1.policiesToBeInsertedOrUpdated(), req2.policiesToBeInsertedOrUpdated());
+ EXPECT_EQ(req1.policiesToBeRemoved(), req2.policiesToBeRemoved());
+ EXPECT_EQ(req1.sequenceNumber(), req2.sequenceNumber());
+}
+
+} /* namespace anonymous */
+
+using namespace Cynara;
+using namespace RequestTestHelper;
+using namespace TestDataCollection;
+
+/* *** compare by objects test cases *** */
+
+TEST(ProtocolAdmin, SetPoliciesRequestFullPositive) {
+ std::map<Cynara::PolicyBucketId, std::vector<Cynara::Policy>> policyInsert;
+ std::map<Cynara::PolicyBucketId, std::vector<Cynara::PolicyKey>> policyRemove;
+ for (auto &bucket : Buckets::all) {
+ for (auto &key: Keys::all) {
+ policyRemove[bucket].push_back(key);
+ for (auto &result : Results::all) {
+ policyInsert[bucket].push_back({key, result});
+ }
+ }
+ }
+
+ for (auto &sequenceNumber : SN::all) {
+ auto request = std::make_shared<SetPoliciesRequest>(policyInsert, policyRemove,
+ sequenceNumber);
+ auto protocol = std::make_shared<ProtocolAdmin>();
+ testRequest(request, protocol);
+ }
+}
+
+TEST(ProtocolAdmin, SetPoliciesRequestFullBinaryPositive) {
+ std::map<Cynara::PolicyBucketId, std::vector<Cynara::Policy>> policyInsert;
+ std::map<Cynara::PolicyBucketId, std::vector<Cynara::PolicyKey>> policyRemove;
+ for (auto &bucket : Buckets::all) {
+ for (auto &key: Keys::all) {
+ policyRemove[bucket].push_back(key);
+ for (auto &result : Results::all) {
+ policyInsert[bucket].push_back({key, result});
+ }
+ }
+ }
+
+ for (auto &sequenceNumber : SN::all) {
+ auto request = std::make_shared<SetPoliciesRequest>(policyInsert, policyRemove,
+ sequenceNumber);
+ auto protocol = std::make_shared<ProtocolAdmin>();
+ binaryTestRequest(request, protocol);
+ }
+}
+
+TEST(ProtocolAdmin, SetPoliciesRequestEmptyInsertPositive) {
+ std::map<Cynara::PolicyBucketId, std::vector<Cynara::Policy>> policyInsert;
+ std::map<Cynara::PolicyBucketId, std::vector<Cynara::PolicyKey>> policyRemove;
+ for (auto &bucket : Buckets::all) {
+ for (auto &key: Keys::all) {
+ policyRemove[bucket].push_back(key);
+ }
+ }
+
+ for (auto &sequenceNumber : SN::all) {
+ auto request = std::make_shared<SetPoliciesRequest>(policyInsert, policyRemove,
+ sequenceNumber);
+ auto protocol = std::make_shared<ProtocolAdmin>();
+ testRequest(request, protocol);
+ }
+}
+
+TEST(ProtocolAdmin, SetPoliciesRequestEmptyInsertBinaryPositive) {
+ std::map<Cynara::PolicyBucketId, std::vector<Cynara::Policy>> policyInsert;
+ std::map<Cynara::PolicyBucketId, std::vector<Cynara::PolicyKey>> policyRemove;
+ for (auto &bucket : Buckets::all) {
+ for (auto &key: Keys::all) {
+ policyRemove[bucket].push_back(key);
+ }
+ }
+
+ for (auto &sequenceNumber : SN::all) {
+ auto request = std::make_shared<SetPoliciesRequest>(policyInsert, policyRemove,
+ sequenceNumber);
+ auto protocol = std::make_shared<ProtocolAdmin>();
+ binaryTestRequest(request, protocol);
+ }
+}
+
+TEST(ProtocolAdmin, SetPoliciesRequestEmptyRemovePositive) {
+ std::map<Cynara::PolicyBucketId, std::vector<Cynara::Policy>> policyInsert;
+ std::map<Cynara::PolicyBucketId, std::vector<Cynara::PolicyKey>> policyRemove;
+ for (auto &bucket : Buckets::all) {
+ for (auto &key: Keys::all) {
+ for (auto &result : Results::all) {
+ policyInsert[bucket].push_back({key, result});
+ }
+ }
+ }
+
+ for (auto &sequenceNumber : SN::all) {
+ auto request = std::make_shared<SetPoliciesRequest>(policyInsert, policyRemove,
+ sequenceNumber);
+ auto protocol = std::make_shared<ProtocolAdmin>();
+ testRequest(request, protocol);
+ }
+}
+
+TEST(ProtocolAdmin, SetPoliciesRequestEmptyRemoveBinaryPositive) {
+ std::map<Cynara::PolicyBucketId, std::vector<Cynara::Policy>> policyInsert;
+ std::map<Cynara::PolicyBucketId, std::vector<Cynara::PolicyKey>> policyRemove;
+ for (auto &bucket : Buckets::all) {
+ for (auto &key: Keys::all) {
+ for (auto &result : Results::all) {
+ policyInsert[bucket].push_back({key, result});
+ }
+ }
+ }
+
+ for (auto &sequenceNumber : SN::all) {
+ auto request = std::make_shared<SetPoliciesRequest>(policyInsert, policyRemove,
+ sequenceNumber);
+ auto protocol = std::make_shared<ProtocolAdmin>();
+ binaryTestRequest(request, protocol);
+ }
+}