Add SetPoliciesRequest unit tests 88/234788/5
authorZofia Abramowska <z.abramowska@samsung.com>
Thu, 28 May 2020 16:17:05 +0000 (18:17 +0200)
committerZofia Abramowska <z.abramowska@samsung.com>
Thu, 9 Jul 2020 18:06:21 +0000 (20:06 +0200)
Change-Id: Ia4c6d8c9a48650ac472adc613c1c70707e71285b

test/CMakeLists.txt
test/common/protocols/TestDataCollection.h
test/common/protocols/admin/setpoliciesrequest.cpp [new file with mode: 0644]

index 552ebde7ba396a69d19cc11f8171e256ebbbdabc..3fe948fa9ec35a32dc645106687622d6da56f51c 100644 (file)
@@ -125,6 +125,7 @@ SET(CYNARA_TESTS_SOURCES
     common/protocols/admin/listrequest.cpp
     common/protocols/admin/listresponse.cpp
     common/protocols/admin/removebucketrequest.cpp
+    common/protocols/admin/setpoliciesrequest.cpp
     common/protocols/monitor/flushrequest.cpp
     common/protocols/monitor/getentriesrequest.cpp
     common/protocols/monitor/getentriesresponse.cpp
index d784bed07ab016e03e0f9d2581a07ec23494ba50..a5310d6fe7ca938441567255aba0317c0230bd87 100644 (file)
@@ -37,27 +37,33 @@ namespace TestDataCollection {
 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 {
diff --git a/test/common/protocols/admin/setpoliciesrequest.cpp b/test/common/protocols/admin/setpoliciesrequest.cpp
new file mode 100644 (file)
index 0000000..c9bbc3e
--- /dev/null
@@ -0,0 +1,160 @@
+/*
+ * 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);
+    }
+}