Change PolicyType enum to PredefinedPolicyType for consts
authorAleksander Zdyb <a.zdyb@partner.samsung.com>
Fri, 20 Jun 2014 09:54:56 +0000 (11:54 +0200)
committerRafal Krypa <r.krypa@samsung.com>
Thu, 3 Jul 2014 12:19:09 +0000 (14:19 +0200)
PolicyType cannot be an enum, because it needs
to hold values other than just those predefined

Change-Id: I9038b57a1fc80c6c3eb3b87e74037073e9342ebd

src/common/types/Policy.h
src/common/types/PolicyBucket.h
src/common/types/PolicyType.h
src/service/storage/InMemoryStorageBackend.cpp
src/service/storage/Storage.cpp
test/storage/inmemorystoragebackend/buckets.cpp
test/storage/inmemorystoragebackend/inmemorystoragebackend.cpp
test/storage/inmemorystoragebackend/search.cpp
test/storage/storage/buckets.cpp
test/storage/storage/check.cpp
test/storage/storage/policies.cpp

index 47faad9..3c0d974 100644 (file)
@@ -46,7 +46,7 @@ public:
     }
 
     static PolicyPtr bucketWithKey(const PolicyKey &key, const PolicyBucketId &bucketId) {
-        auto result = PolicyResult(PolicyType::BUCKET, bucketId);
+        auto result = PolicyResult(PredefinedPolicyType::BUCKET, bucketId);
         return std::make_shared<Policy>(key, result);
     }
 
index 6cdb51c..3b3efa0 100644 (file)
@@ -45,10 +45,10 @@ const PolicyBucketId defaultPolicyBucketId("");
 class PolicyBucket {
 public:
 
-    PolicyBucket() : m_defaultPolicy(PolicyResult(PolicyType::DENY)) {}
+    PolicyBucket() : m_defaultPolicy(PolicyResult(PredefinedPolicyType::DENY)) {}
     PolicyBucket(const PolicyCollection &policies)
         : m_policyCollection(policies),
-          m_defaultPolicy(PolicyResult(PolicyType::DENY)) {}
+          m_defaultPolicy(PolicyResult(PredefinedPolicyType::DENY)) {}
 
     PolicyBucket filtered(const PolicyKey &key) const;
 
index 5336746..82d4740 100644 (file)
  */
 /*
  * @file        PolicyType.h
- * @author      Lukasz Wojciechowski <l.wojciechowski@partner.samsung.com>
+ * @author      Lukasz Wojciechowski <l.wojciechow@partner.samsung.com>
  * @author      Aleksander Zdyb <a.zdyb@partner.samsung.com>
  * @version     1.0
  * @brief       This file defines PolicyType e.g. ALLOW or DENY
  */
 
-#ifndef CYNARA_COMMON_TYPES_POLICYTYPE_H
-#define CYNARA_COMMON_TYPES_POLICYTYPE_H
+#ifndef SRC_COMMON_TYPES_POLICYTYPE_H_
+#define SRC_COMMON_TYPES_POLICYTYPE_H_
+
+#include <cstdint>
+#include <string>
 
 namespace Cynara {
 
-enum class PolicyType : std::uint16_t {
-    DENY = 0,
-    BUCKET = 0xFFFE,
-    ALLOW = 0xFFFF
+typedef std::uint16_t PolicyType;
+
+namespace PredefinedPolicyType  {
+    const PolicyType DENY = 0;
+    const PolicyType BUCKET = 0xFFFE;
+    const PolicyType ALLOW = 0xFFFF;
 };
 
 }  // namespace Cynara
 
-#endif /* CYNARA_COMMON_TYPES_POLICYTYPE_H */
+#endif /* SRC_COMMON_TYPES_POLICYTYPE_H_ */
index 538952a..212c13a 100644 (file)
@@ -85,7 +85,7 @@ void InMemoryStorageBackend::deleteLinking(const PolicyBucketId &bucketId) {
 
         // Check bucket id only if policy is a bucket policy
         // TODO: Maybe move the test to PolicyResult
-        if (policyResult.policyType() == PolicyType::BUCKET) {
+        if (policyResult.policyType() == PredefinedPolicyType::BUCKET) {
             return policyResult.metadata() == bucketId;
         }
         return false;
index 5c14299..6dc462d 100644 (file)
@@ -49,20 +49,20 @@ PolicyResult Storage::minimalPolicy(const PolicyBucket &bucket) {
     auto proposeMinimal = [&minimal, &hasMinimal](const PolicyResult &candidate) {
         if(hasMinimal == false) {
             minimal = candidate;
-        } else if(candidate < minimal) {
+        } else if (candidate < minimal) {
             minimal = candidate;
         }
         hasMinimal = true;
     };
 
-    for(const auto &policyRecord : policies) {
+    for (const auto &policyRecord : policies) {
         const auto &policyResult = policyRecord->result();
 
-        switch(policyResult.policyType()) {
-        case PolicyType::DENY:
+        switch (policyResult.policyType()) {
+        case PredefinedPolicyType::DENY:
             return policyResult; // Do not expect lower value than DENY
             break;
-        case PolicyType::BUCKET: {
+        case PredefinedPolicyType::BUCKET: {
                 auto bucketResults = m_backend.searchBucket(policyResult.metadata(),
                         policyRecord->key());
                 auto minimumOfBucket = minimalPolicy(bucketResults);
@@ -70,7 +70,7 @@ PolicyResult Storage::minimalPolicy(const PolicyBucket &bucket) {
                 continue;
             }
             break;
-        case PolicyType::ALLOW:
+        case PredefinedPolicyType::ALLOW:
         default:
             break;
         }
index 9ca7403..bcdca54 100644 (file)
@@ -38,7 +38,7 @@ TEST_F(InMemeoryStorageBackendFixture, addBucket) {
     EXPECT_CALL(backend, buckets())
         .WillOnce(ReturnRef(m_buckets));
 
-    PolicyResult defaultPolicy(PolicyType::ALLOW);
+    PolicyResult defaultPolicy(PredefinedPolicyType::ALLOW);
     PolicyBucketId bucketId = "new-bucket";
     backend.createBucket(bucketId, defaultPolicy);
 
index 92e0e4a..9cfe8cb 100644 (file)
@@ -52,7 +52,7 @@ TEST_F(InMemeoryStorageBackendFixture, defaultPolicyIsDeny) {
     auto filteredBucket = backend.searchDefaultBucket(Helpers::generatePolicyKey());
     auto defaultPolicy = filteredBucket.defaultPolicy();
 
-    ASSERT_EQ(PolicyType::DENY, defaultPolicy.policyType());
+    ASSERT_EQ(PredefinedPolicyType::DENY, defaultPolicy.policyType());
 }
 
 TEST_F(InMemeoryStorageBackendFixture, deleteLinking) {
@@ -70,16 +70,16 @@ TEST_F(InMemeoryStorageBackendFixture, deleteLinking) {
     const PolicyBucketId testBucket3 = "test-bucket-3";
 
     // Create 2 buckets
-    for(const auto &bucketId : { testBucket1, testBucket2, testBucket3 }) {
-        PolicyResult defaultPolicy(PolicyType::DENY);
+    for (const auto &bucketId : { testBucket1, testBucket2, testBucket3 }) {
+        PolicyResult defaultPolicy(PredefinedPolicyType::DENY);
         backend.createBucket(bucketId, defaultPolicy);
     }
 
     // These policies do not link to buckets, so should stay untouched
     PolicyCollection policiesToStay = {
-        Policy::simpleWithKey(Helpers::generatePolicyKey("1"), PolicyType::DENY),
-        Policy::simpleWithKey(Helpers::generatePolicyKey("1"), PolicyType::DENY),
-        Policy::simpleWithKey(Helpers::generatePolicyKey("2"), PolicyType::ALLOW),
+        Policy::simpleWithKey(Helpers::generatePolicyKey("1"), PredefinedPolicyType::DENY),
+        Policy::simpleWithKey(Helpers::generatePolicyKey("1"), PredefinedPolicyType::DENY),
+        Policy::simpleWithKey(Helpers::generatePolicyKey("2"), PredefinedPolicyType::ALLOW),
     };
 
     // Add some policies to 1st bucket, which link to 2nd bucket
@@ -122,7 +122,7 @@ TEST_F(InMemeoryStorageBackendFixture, insertPolicy) {
     PolicyBucketId bucketId = "test-bucket";
     createBucket(bucketId);
 
-    auto policyToAdd = Policy::simpleWithKey(Helpers::generatePolicyKey(), PolicyType::ALLOW);
+    auto policyToAdd = Policy::simpleWithKey(Helpers::generatePolicyKey(), PredefinedPolicyType::ALLOW);
     backend.insertPolicy(bucketId, policyToAdd);
 
     ASSERT_THAT(m_buckets.at(bucketId).policyCollection(), UnorderedElementsAre(policyToAdd));
@@ -153,12 +153,12 @@ TEST_F(InMemeoryStorageBackendFixture, deletePolicy) {
     PolicyBucketId bucketId = "test-bucket";
     createBucket(bucketId);
 
-    auto policyToDelete = Policy::simpleWithKey(Helpers::generatePolicyKey(), PolicyType::ALLOW);
+    auto policyToDelete = Policy::simpleWithKey(Helpers::generatePolicyKey(), PredefinedPolicyType::ALLOW);
 
     PolicyCollection otherPolicies = {
-        Policy::simpleWithKey(Helpers::generatePolicyKey("other-policy-1"), PolicyType::ALLOW),
-        Policy::simpleWithKey(Helpers::generatePolicyKey("other-policy-2"), PolicyType::ALLOW),
-        Policy::simpleWithKey(Helpers::generatePolicyKey("other-policy-3"), PolicyType::ALLOW),
+        Policy::simpleWithKey(Helpers::generatePolicyKey("other-policy-1"), PredefinedPolicyType::ALLOW),
+        Policy::simpleWithKey(Helpers::generatePolicyKey("other-policy-2"), PredefinedPolicyType::ALLOW),
+        Policy::simpleWithKey(Helpers::generatePolicyKey("other-policy-3"), PredefinedPolicyType::ALLOW),
     };
 
     addToBucket(bucketId, {
index 5463bc1..705c075 100644 (file)
@@ -46,9 +46,9 @@ TEST_F(InMemeoryStorageBackendFixture, searchDefault) {
     const auto &defaultBucket = createBucket(defaultPolicyBucketId);
 
     addToBucket(defaultPolicyBucketId, {
-       Policy::simpleWithKey(pk1, PolicyType::ALLOW),
-       Policy::simpleWithKey(pk2, PolicyType::DENY),
-       Policy::simpleWithKey(pk1, PolicyType::DENY),
+       Policy::simpleWithKey(pk1, PredefinedPolicyType::ALLOW),
+       Policy::simpleWithKey(pk2, PredefinedPolicyType::DENY),
+       Policy::simpleWithKey(pk1, PredefinedPolicyType::DENY),
     });
 
     // Just override buckets() accessor
index 51e7b39..e34c67a 100644 (file)
@@ -48,7 +48,7 @@ TEST(storage, addBucket) {
     Cynara::Storage storage(backend);
 
     PolicyBucketId bucketId = "test-bucket";
-    PolicyResult defaultPolicy(PolicyType::DENY);
+    PolicyResult defaultPolicy(PredefinedPolicyType::DENY);
 
     EXPECT_CALL(backend, createBucket(bucketId, defaultPolicy));
 
@@ -59,7 +59,7 @@ TEST(storage, addBucket) {
 TEST(storage, addDefaultBucket) {
     FakeStorageBackend backend;
     Cynara::Storage storage(backend);
-    PolicyResult defaultPolicy(PolicyType::DENY);
+    PolicyResult defaultPolicy(PredefinedPolicyType::DENY);
 
     ASSERT_THROW(
         storage.createBucket(defaultPolicyBucketId, defaultPolicy),
index f463db3..426c9f3 100644 (file)
@@ -55,7 +55,7 @@ TEST(storage, checkEmpty) {
 
     // Default bucket empty -- return DENY
     auto policyAnswer = storage.checkPolicy(pk);
-    ASSERT_EQ(PolicyType::DENY, policyAnswer.policyType());
+    ASSERT_EQ(PredefinedPolicyType::DENY, policyAnswer.policyType());
 }
 
 TEST(storage, checkSimple) {
@@ -71,15 +71,15 @@ TEST(storage, checkSimple) {
         .WillRepeatedly(ReturnPointee(&bucket));
 
     // Default bucket empty -- return DENY
-    ASSERT_EQ(PolicyType::DENY, storage.checkPolicy(pk).policyType());
+    ASSERT_EQ(PredefinedPolicyType::DENY, storage.checkPolicy(pk).policyType());
 
     // Add ALLOW to default bucket -- return ALLOW
-    bucket.policyCollection().push_back(Policy::simpleWithKey(pk, PolicyType::ALLOW));
-    ASSERT_EQ(PolicyType::ALLOW, storage.checkPolicy(pk).policyType());
+    bucket.policyCollection().push_back(Policy::simpleWithKey(pk, PredefinedPolicyType::ALLOW));
+    ASSERT_EQ(PredefinedPolicyType::ALLOW, storage.checkPolicy(pk).policyType());
 
     // Add DENY to default bucket -- return DENY
-    bucket.policyCollection().push_back(Policy::simpleWithKey(pk, PolicyType::DENY));
-    ASSERT_EQ(PolicyType::DENY, storage.checkPolicy(pk).policyType());
+    bucket.policyCollection().push_back(Policy::simpleWithKey(pk, PredefinedPolicyType::DENY));
+    ASSERT_EQ(PredefinedPolicyType::DENY, storage.checkPolicy(pk).policyType());
 }
 
 TEST(storage, checkBucket) {
@@ -92,7 +92,7 @@ TEST(storage, checkBucket) {
     PolicyKey pk = Helpers::generatePolicyKey();
 
     PolicyBucket defaultBucket(PolicyCollection({
-        Policy::simpleWithKey(pk, PolicyType::ALLOW),
+        Policy::simpleWithKey(pk, PredefinedPolicyType::ALLOW),
         Policy::bucketWithKey(pk, additionalBucketId)
     }));
 
@@ -109,13 +109,13 @@ TEST(storage, checkBucket) {
 
 
     // Bucket empty -- should return DENY as default bucket value
-    ASSERT_EQ(PolicyType::DENY, storage.checkPolicy(pk).policyType());
+    ASSERT_EQ(PredefinedPolicyType::DENY, storage.checkPolicy(pk).policyType());
 
     // Add ALLOW to bucket, so return ALLOW
-    additionalBucket.policyCollection().push_back(Policy::simpleWithKey(pk, PolicyType::ALLOW));
-    ASSERT_EQ(PolicyType::ALLOW, storage.checkPolicy(pk).policyType());
+    additionalBucket.policyCollection().push_back(Policy::simpleWithKey(pk, PredefinedPolicyType::ALLOW));
+    ASSERT_EQ(PredefinedPolicyType::ALLOW, storage.checkPolicy(pk).policyType());
 
     // Add DENY to default bucket -- return DENY, even though ALLOW in other bucket
-    defaultBucket.policyCollection().push_back(Policy::simpleWithKey(pk, PolicyType::DENY));
-    ASSERT_EQ(PolicyType::DENY, storage.checkPolicy(pk).policyType());
+    defaultBucket.policyCollection().push_back(Policy::simpleWithKey(pk, PredefinedPolicyType::DENY));
+    ASSERT_EQ(PredefinedPolicyType::DENY, storage.checkPolicy(pk).policyType());
 }
index 777ca83..fc067be 100644 (file)
@@ -89,14 +89,14 @@ TEST(storage, insertPolicies) {
     PolicyBucketId testBucket2 = "test-bucket-2";
 
     std::vector<Storage::PolicyPolicyBucket> policiesToInsert = {
-        std::make_tuple(Policy::simpleWithKey(Helpers::generatePolicyKey("1"), PolicyType::ALLOW), testBucket1),
-        std::make_tuple(Policy::simpleWithKey(Helpers::generatePolicyKey("2"), PolicyType::DENY), testBucket1),
-        std::make_tuple(Policy::simpleWithKey(Helpers::generatePolicyKey("3"), PolicyType::DENY), testBucket1),
-        std::make_tuple(Policy::simpleWithKey(Helpers::generatePolicyKey("4"), PolicyType::ALLOW), testBucket2),
-        std::make_tuple(Policy::simpleWithKey(Helpers::generatePolicyKey("5"), PolicyType::ALLOW), testBucket2),
+        std::make_tuple(Policy::simpleWithKey(Helpers::generatePolicyKey("1"), PredefinedPolicyType::ALLOW), testBucket1),
+        std::make_tuple(Policy::simpleWithKey(Helpers::generatePolicyKey("2"), PredefinedPolicyType::DENY), testBucket1),
+        std::make_tuple(Policy::simpleWithKey(Helpers::generatePolicyKey("3"), PredefinedPolicyType::DENY), testBucket1),
+        std::make_tuple(Policy::simpleWithKey(Helpers::generatePolicyKey("4"), PredefinedPolicyType::ALLOW), testBucket2),
+        std::make_tuple(Policy::simpleWithKey(Helpers::generatePolicyKey("5"), PredefinedPolicyType::ALLOW), testBucket2),
     };
 
-    for(const auto &policy : policiesToInsert) {
+    for (const auto &policy : policiesToInsert) {
         PolicyBucketId bucketId;
         PolicyPtr policyPtr;
         std::tie(policyPtr, bucketId) = policy;
@@ -117,17 +117,17 @@ TEST(storage, updatePolicies) {
     PolicyBucketId testBucket2 = "test-bucket-2";
 
     std::vector<Storage::PolicyPolicyBucket> policiesToInsert = {
-        std::make_tuple(Policy::simpleWithKey(Helpers::generatePolicyKey("1"), PolicyType::ALLOW), testBucket1),
-        std::make_tuple(Policy::simpleWithKey(Helpers::generatePolicyKey("2"), PolicyType::DENY), testBucket1),
-        std::make_tuple(Policy::simpleWithKey(Helpers::generatePolicyKey("3"), PolicyType::DENY), testBucket1),
-        std::make_tuple(Policy::simpleWithKey(Helpers::generatePolicyKey("4"), PolicyType::ALLOW), testBucket2),
-        std::make_tuple(Policy::simpleWithKey(Helpers::generatePolicyKey("5"), PolicyType::ALLOW), testBucket2),
+        std::make_tuple(Policy::simpleWithKey(Helpers::generatePolicyKey("1"), PredefinedPolicyType::ALLOW), testBucket1),
+        std::make_tuple(Policy::simpleWithKey(Helpers::generatePolicyKey("2"), PredefinedPolicyType::DENY), testBucket1),
+        std::make_tuple(Policy::simpleWithKey(Helpers::generatePolicyKey("3"), PredefinedPolicyType::DENY), testBucket1),
+        std::make_tuple(Policy::simpleWithKey(Helpers::generatePolicyKey("4"), PredefinedPolicyType::ALLOW), testBucket2),
+        std::make_tuple(Policy::simpleWithKey(Helpers::generatePolicyKey("5"), PredefinedPolicyType::ALLOW), testBucket2),
     };
 
 
     PolicyCollection pc({std::get<0>(policiesToInsert.at(0))});
 
-    for(const auto &policy : policiesToInsert) {
+    for (const auto &policy : policiesToInsert) {
         PolicyBucketId bucketId;
         PolicyPtr policyPtr;
         std::tie(policyPtr, bucketId) = policy;