Privilege implementation change

- privilege_registry.json has been removed
- PrivilegeProvider class has been removed
- default privileges for nodes are now hard-coded
- privilege overriding feature is not yet implemented

Change-Id: Ic9fdfa1c692c1abd26e339e2a8c702fc4aebd19f
Signed-off-by: Borawski.Lukasz <lukasz.borawski@intel.com>
diff --git a/redfish-core/ut/privileges_test.cpp b/redfish-core/ut/privileges_test.cpp
index 9d0d156..193fd7d 100644
--- a/redfish-core/ut/privileges_test.cpp
+++ b/redfish-core/ut/privileges_test.cpp
@@ -6,521 +6,135 @@
 
 using namespace redfish;
 
-class PrivilegeTest : public testing::Test {
- protected:
-  nlohmann::json privilegeRegistryMockJson;
+TEST(PrivilegeTest, PrivilegeConstructor) {
+  Privileges privileges = {"Login", "ConfigureManager"};
 
-  std::vector<std::string> expectedBasePrivileges{
-      "Login", "ConfigureManager", "ConfigureUsers", "ConfigureComponents",
-      "ConfigureSelf"};
+  auto activePrivileges =
+      privileges.getActivePrivilegeNames(PrivilegeType::BASE);
+  std::vector<std::string> expectedPrivileges{"Login", "ConfigureManager"};
 
-  std::vector<std::string> expectedOEMPrivileges{"OEMRoot", "OEMDummy"};
+  std::sort(expectedPrivileges.begin(), expectedPrivileges.end());
+  std::sort(activePrivileges.begin(), activePrivileges.end());
 
-  PrivilegeTest() {
-    crow::logger::setLogLevel(crow::LogLevel::CRITICAL);
-
-    std::ofstream privilegeRegistryMockOfstream("privilege_registry_mock.json");
-    privilegeRegistryMockJson = nlohmann::json::parse(
-        "{\
-                  \"@Redfish.Copyright\": \"Dummy copyright\",\
-                  \"@odata.type\": \"#PrivilegeRegistry.v1_0_0.PrivilegeRegistry\",\
-                  \"Id\": \"Dummy id\",\
-                  \"Name\": \"Dummy name\",\
-                  \"PrivilegesUsed\": [\
-                        \"Login\",\
-                        \"ConfigureManager\",\
-                        \"ConfigureUsers\",\
-                        \"ConfigureComponents\",\
-                        \"ConfigureSelf\"],\
-                  \"OEMPrivilegesUsed\": [\
-                        \"OEMRoot\",\
-                        \"OEMDummy\"],\
-                  \"Mappings\": [\
-                  {\
-                      \"Entity\": \"TestEntity\",\
-                      \"OperationMap\": {\
-                          \"GET\": [\
-                              {\
-                                  \"Privilege\": [\
-                                      \"Login\"\
-                                  ]\
-                              }\
-                          ],\
-                          \"PATCH\": [\
-                              {\
-                                  \"Privilege\": [\
-                                      \"ConfigureManager\"\
-                                  ]\
-                              },\
-                              {\
-                                  \"Privilege\": [\
-                                      \"ConfigureUser\",\
-                                      \"ConfigureDummy\",\
-                                      \"OEMRoot\"\
-                                  ]\
-                              }\
-                          ],\
-                          \"POST\": [\
-                              {\
-                                  \"Privilege\": [\
-                                      \"ConfigureManager\",\
-                                      \"OEMDummy\"\
-                                  ]\
-                              }\
-                          ],\
-                          \"DELETE\": [\
-                              {\
-                                  \"Privilege\": [\
-                                      \"ConfigureManager\"\
-                                  ]\
-                              }\
-                          ]\
-                      }\
-                  },\
-                  {\
-                      \"Entity\": \"EntityWithNonStringPrivilege\",\
-                      \"OperationMap\": {\
-                          \"GET\": [\
-                              {\
-                                  \"Privilege\": [\"Login\"]\
-                              }\
-                          ],\
-                          \"POST\": [\
-                              {\
-                                  \"Privilege\": [1]\
-                              }\
-                          ]\
-                      }\
-                  }\
-                  ]\
-            }");
-    privilegeRegistryMockOfstream << std::setw(4) << privilegeRegistryMockJson
-                                  << std::endl;
-    privilegeRegistryMockOfstream.close();
-  }
-
-  virtual ~PrivilegeTest() { std::remove("privilege_registry_mock.json"); }
-
-  void removeFieldFromRegistry(const std::string& field) {
-    std::ifstream in("privilege_registry_mock.json");
-    nlohmann::json tempJson = nlohmann::json::parse(in);
-    in.close();
-
-    tempJson.erase(field);
-
-    std::ofstream out("privilege_registry_mock.json");
-    out << std::setw(4) << tempJson << std::endl;
-    out.close();
-  }
-
-  void removeFieldFromMappings(const std::string& field) {
-    std::ifstream in("privilege_registry_mock.json");
-    nlohmann::json tempJson = nlohmann::json::parse(in);
-    in.close();
-
-    tempJson.at("Mappings")[0].erase(field);
-
-    std::ofstream out("privilege_registry_mock.json");
-    out << std::setw(4) << tempJson << std::endl;
-    out.close();
-  }
-
-  void clearArryInJson(const std::string& key) {
-    std::ifstream in("privilege_registry_mock.json");
-    nlohmann::json tempJson = nlohmann::json::parse(in);
-    in.close();
-
-    tempJson[key].clear();
-
-    std::ofstream out("privilege_registry_mock.json");
-    out << std::setw(4) << tempJson << std::endl;
-    out.close();
-  }
-
-  template <typename T>
-  void fillPrivilegeArray(const std::string& key,
-                          const std::vector<T>& values) {
-    std::ifstream in("privilege_registry_mock.json");
-    nlohmann::json tempJson = nlohmann::json::parse(in);
-    in.close();
-
-    tempJson[key].clear();
-    for (const auto& value : values) {
-      tempJson[key].push_back(value);
-    }
-
-    std::ofstream out("privilege_registry_mock.json");
-    out << std::setw(4) << tempJson << std::endl;
-    out.close();
-  }
-
-  template <typename T>
-  void addRequiredPrivilege(const T& value) {
-    std::ifstream in("privilege_registry_mock.json");
-    nlohmann::json tempJson = nlohmann::json::parse(in);
-    in.close();
-
-    tempJson["Mappings"][0]["OperationMap"]["GET"][0]["Privilege"].push_back(
-        value);
-
-    std::ofstream out("privilege_registry_mock.json");
-    out << std::setw(4) << tempJson << std::endl;
-    out.close();
-  }
-
-  bool isPrivilegeRegistryParsed(const EntityPrivileges& entityPrivileges) {
-    auto userPrivileges = Privileges();
-    userPrivileges.setSinglePrivilege("Login");
-    // given the privileges_registry_mock.json, GET should be allowed with Login
-    // if the file got parsed successfully
-    return entityPrivileges.isMethodAllowedWithPrivileges(crow::HTTPMethod::GET,
-                                                          userPrivileges);
-  }
-};
-
-TEST_F(PrivilegeTest, PrivilegeRegistryJsonSuccessfullParse) {
-  PrivilegeProvider privilegeProvider("privilege_registry_mock.json");
-  auto entityPrivileges =
-      privilegeProvider.getPrivilegesRequiredByEntity("", "foo.bar.TestEntity");
-  EXPECT_TRUE(isPrivilegeRegistryParsed(entityPrivileges));
+  EXPECT_EQ(expectedPrivileges, activePrivileges);
 }
 
-TEST_F(PrivilegeTest, PrivilegeRegistryJsonNotFound) {
-  std::remove("privilege_registry_mock.json");
-  PrivilegeProvider privilegeProvider("privilege_registry_mock.json");
-  auto entityPrivileges =
-      privilegeProvider.getPrivilegesRequiredByEntity("", "foo.bar.TestEntity");
-  EXPECT_FALSE(isPrivilegeRegistryParsed(entityPrivileges));
-}
+TEST(PrivilegeTest, PrivilegeCheckForNoPrivilegesRequired) {
+  auto userPrivileges = Privileges{"Login"};
+  OperationMap operationMap = {{crow::HTTPMethod::GET, {{}}}};
+  auto entityPrivileges = EntityPrivileges(std::move(operationMap));
 
-TEST_F(PrivilegeTest, PrivilegeRegistryMissingCopyright) {
-  removeFieldFromRegistry("@Redfish.Copyright");
-  PrivilegeProvider privilegeProvider("privilege_registry_mock.json");
-  auto entityPrivileges =
-      privilegeProvider.getPrivilegesRequiredByEntity("", "foo.bar.TestEntity");
-  EXPECT_FALSE(isPrivilegeRegistryParsed(entityPrivileges));
-}
-
-TEST_F(PrivilegeTest, PrivilegeRegistryMissingOdataType) {
-  removeFieldFromRegistry("@odata.type");
-  PrivilegeProvider privilegeProvider("privilege_registry_mock.json");
-  auto entityPrivileges =
-      privilegeProvider.getPrivilegesRequiredByEntity("", "foo.bar.TestEntity");
-  EXPECT_FALSE(isPrivilegeRegistryParsed(entityPrivileges));
-}
-
-TEST_F(PrivilegeTest, PrivilegeRegistryMissingId) {
-  removeFieldFromRegistry("Id");
-  PrivilegeProvider privilegeProvider("privilege_registry_mock.json");
-  auto entityPrivileges =
-      privilegeProvider.getPrivilegesRequiredByEntity("", "foo.bar.TestEntity");
-  EXPECT_FALSE(isPrivilegeRegistryParsed(entityPrivileges));
-}
-
-TEST_F(PrivilegeTest, PrivilegeRegistryMissingName) {
-  removeFieldFromRegistry("Name");
-  PrivilegeProvider privilegeProvider("privilege_registry_mock.json");
-  auto entityPrivileges =
-      privilegeProvider.getPrivilegesRequiredByEntity("", "foo.bar.TestEntity");
-  EXPECT_FALSE(isPrivilegeRegistryParsed(entityPrivileges));
-}
-
-TEST_F(PrivilegeTest, PrivilegeRegistryMissingMappings) {
-  removeFieldFromRegistry("Mappings");
-  PrivilegeProvider privilegeProvider("privilege_registry_mock.json");
-  auto entityPrivileges =
-      privilegeProvider.getPrivilegesRequiredByEntity("", "foo.bar.TestEntity");
-  EXPECT_FALSE(isPrivilegeRegistryParsed(entityPrivileges));
-}
-
-TEST_F(PrivilegeTest, PrivilegeRegistryMissingPrivilegesUsed) {
-  removeFieldFromRegistry("PrivilegesUsed");
-  PrivilegeProvider privilegeProvider("privilege_registry_mock.json");
-  auto entityPrivileges =
-      privilegeProvider.getPrivilegesRequiredByEntity("", "foo.bar.TestEntity");
-  EXPECT_FALSE(isPrivilegeRegistryParsed(entityPrivileges));
-}
-
-TEST_F(PrivilegeTest, PrivilegeRegistryMissingOEMPrivilegesUsed) {
-  removeFieldFromRegistry("OEMPrivilegesUsed");
-  PrivilegeProvider privilegeProvider("privilege_registry_mock.json");
-  auto entityPrivileges =
-      privilegeProvider.getPrivilegesRequiredByEntity("", "foo.bar.TestEntity");
-  EXPECT_FALSE(isPrivilegeRegistryParsed(entityPrivileges));
-}
-
-TEST_F(PrivilegeTest, PrivilegeRegistryMissingOperationMap) {
-  removeFieldFromMappings("OperationMap");
-  PrivilegeProvider privilegeProvider("privilege_registry_mock.json");
-
-  auto entityPrivileges =
-      privilegeProvider.getPrivilegesRequiredByEntity("", "foo.bar.TestEntity");
-  EXPECT_FALSE(isPrivilegeRegistryParsed(entityPrivileges));
-}
-
-TEST_F(PrivilegeTest, PrivilegeRegistryPrivilegesUsedMayNotBeEmpty) {
-  clearArryInJson("PrivilegesUsed");
-  PrivilegeProvider privilegeProvider("privilege_registry_mock.json");
-  auto entityPrivileges =
-      privilegeProvider.getPrivilegesRequiredByEntity("", "foo.bar.TestEntity");
-  EXPECT_FALSE(isPrivilegeRegistryParsed(entityPrivileges));
-}
-
-TEST_F(PrivilegeTest, PrivilegeRegistryOEMPrivilegesUsedMayByEmpty) {
-  clearArryInJson("OEMPrivilegesUsed");
-  PrivilegeProvider privilegeProvider("privilege_registry_mock.json");
-  auto entityPrivileges =
-      privilegeProvider.getPrivilegesRequiredByEntity("", "foo.bar.TestEntity");
-  EXPECT_TRUE(isPrivilegeRegistryParsed(entityPrivileges));
-}
-
-TEST_F(PrivilegeTest, PrivilegeValuesMayOnlyBeStrings) {
-  std::vector<int> privilegesUsed = {1, 3, 4};
-  fillPrivilegeArray("PrivilegesUsed", privilegesUsed);
-
-  PrivilegeProvider privilegeProvider("privilege_registry_mock.json");
-  auto entityPrivileges =
-      privilegeProvider.getPrivilegesRequiredByEntity("", "foo.bar.TestEntity");
-  EXPECT_FALSE(isPrivilegeRegistryParsed(entityPrivileges));
-}
-
-TEST_F(PrivilegeTest, OnlyMaxNoOfBasePrivilegesGetsLoaded) {
-  const std::string excessivePrivilege("ExcessivePrivilege");
-  std::vector<std::string> privilegesUsed;
-
-  for (int i = 0; i < MAX_PRIVILEGE_COUNT; i++) {
-    privilegesUsed.push_back(std::to_string(i));
-  }
-  privilegesUsed.push_back(excessivePrivilege);
-
-  fillPrivilegeArray("PrivilegesUsed", privilegesUsed);
-  addRequiredPrivilege(excessivePrivilege);
-
-  PrivilegeProvider privilegeProvider("privilege_registry_mock.json");
-
-  Privileges privileges;
-  privileges.setSinglePrivilege(excessivePrivilege);
-
-  EXPECT_EQ(privileges.getBasePrivilegeBitset(), 0);
-}
-
-TEST_F(PrivilegeTest, OnlyMaxNoOfOEMPrivilegesGetsLoaded) {
-  const std::string excessivePrivilege("ExcessivePrivilege");
-  std::vector<std::string> privilegesUsed;
-
-  for (int i = 0; i < MAX_PRIVILEGE_COUNT; i++) {
-    privilegesUsed.push_back(std::to_string(i));
-  }
-  privilegesUsed.push_back(excessivePrivilege);
-
-  fillPrivilegeArray("OEMPrivilegesUsed", privilegesUsed);
-  addRequiredPrivilege(excessivePrivilege);
-
-  PrivilegeProvider privilegeProvider("privilege_registry_mock.json");
-
-  Privileges privileges;
-  privileges.setSinglePrivilege(excessivePrivilege);
-
-  EXPECT_EQ(privileges.getOEMPrivilegeBitset(), 0);
-}
-
-TEST_F(PrivilegeTest, LoadEntityPrivilegesForExistingEntity) {
-  PrivilegeProvider privilegeProvider("privilege_registry_mock.json");
-  auto entityPrivileges =
-      privilegeProvider.getPrivilegesRequiredByEntity("", "foo.bar.TestEntity");
-  EXPECT_TRUE(isPrivilegeRegistryParsed(entityPrivileges));
-}
-
-TEST_F(PrivilegeTest, LoadEntityPrivilegesForNonExistingEntity) {
-  PrivilegeProvider privilegeProvider("privilege_registry_mock.json");
-  auto entityPrivileges =
-      privilegeProvider.getPrivilegesRequiredByEntity("", "foo.bar.NotExists");
-  EXPECT_FALSE(isPrivilegeRegistryParsed(entityPrivileges));
-}
-
-TEST_F(PrivilegeTest, LoadEntityPrivilegesForEntityWithNonStringPrivilege) {
-  PrivilegeProvider privilegeProvider("privilege_registry_mock.json");
-  auto entityPrivileges = privilegeProvider.getPrivilegesRequiredByEntity(
-      "", "foo.bar.EntityWithNonStringPrivilege");
-  EXPECT_FALSE(isPrivilegeRegistryParsed(entityPrivileges));
-}
-
-TEST_F(PrivilegeTest, DefaultEntityPrivilegesDenyAccess) {
-  auto entityPrivileges = EntityPrivileges();
-
-  auto res =
-      entityPrivileges.isMethodAllowedForUser(crow::HTTPMethod::GET, "user");
-  EXPECT_FALSE(res);
-}
-
-TEST_F(PrivilegeTest, PrivilegeCheckForSingleCaseSuccess) {
-  PrivilegeProvider privilegeProvider("privilege_registry_mock.json");
-
-  auto entityPrivileges = EntityPrivileges();
-  auto userPrivileges = Privileges();
-  auto requiredPrivileges = Privileges();
-
-  userPrivileges.setSinglePrivilege("Login");
-  requiredPrivileges.setSinglePrivilege("Login");
-  entityPrivileges.addPrivilegesRequiredByMethod(crow::HTTPMethod::GET,
-                                                 requiredPrivileges);
   EXPECT_TRUE(entityPrivileges.isMethodAllowedWithPrivileges(
       crow::HTTPMethod::GET, userPrivileges));
 }
 
-TEST_F(PrivilegeTest, PrivilegeCheckForSingleCaseFailure) {
-  PrivilegeProvider privilegeProvider("privilege_registry_mock.json");
+TEST(PrivilegeTest, PrivilegeCheckForSingleCaseSuccess) {
+  auto userPrivileges = Privileges{"Login"};
+  OperationMap operationMap = {{crow::HTTPMethod::GET, {{"Login"}}}};
+  auto entityPrivileges = EntityPrivileges(std::move(operationMap));
 
-  auto entityPrivileges = EntityPrivileges();
-  auto userPrivileges = Privileges();
-  auto requiredPrivileges = Privileges();
-
-  userPrivileges.setSinglePrivilege("Login");
-  requiredPrivileges.setSinglePrivilege("ConfigureManager");
-  entityPrivileges.addPrivilegesRequiredByMethod(crow::HTTPMethod::GET,
-                                                 requiredPrivileges);
-  EXPECT_FALSE(entityPrivileges.isMethodAllowedWithPrivileges(
-      crow::HTTPMethod::GET, userPrivileges));
-}
-
-TEST_F(PrivilegeTest, PrivilegeCheckForANDCaseSuccess) {
-  PrivilegeProvider privilegeProvider("privilege_registry_mock.json");
-
-  auto entityPrivileges = EntityPrivileges();
-  auto userPrivileges = Privileges();
-  auto requiredPrivileges = Privileges();
-
-  userPrivileges.setSinglePrivilege("Login");
-  userPrivileges.setSinglePrivilege("ConfigureManager");
-  userPrivileges.setSinglePrivilege("OEMRoot");
-  requiredPrivileges.setSinglePrivilege("Login");
-  requiredPrivileges.setSinglePrivilege("ConfigureManager");
-  requiredPrivileges.setSinglePrivilege("OEMRoot");
-  entityPrivileges.addPrivilegesRequiredByMethod(crow::HTTPMethod::GET,
-                                                 requiredPrivileges);
   EXPECT_TRUE(entityPrivileges.isMethodAllowedWithPrivileges(
       crow::HTTPMethod::GET, userPrivileges));
 }
 
-TEST_F(PrivilegeTest, PrivilegeCheckForANDCaseFailure) {
-  PrivilegeProvider privilegeProvider("privilege_registry_mock.json");
+TEST(PrivilegeTest, PrivilegeCheckForSingleCaseFailure) {
+  auto userPrivileges = Privileges{"Login"};
+  OperationMap operationMap = {{crow::HTTPMethod::GET, {{"ConfigureManager"}}}};
+  auto entityPrivileges = EntityPrivileges(std::move(operationMap));
 
-  auto entityPrivileges = EntityPrivileges();
-  auto userPrivileges = Privileges();
-  auto requiredPrivileges = Privileges();
-
-  userPrivileges.setSinglePrivilege("Login");
-  userPrivileges.setSinglePrivilege("ConfigureUsers");
-  requiredPrivileges.setSinglePrivilege("Login");
-  requiredPrivileges.setSinglePrivilege("OEMDummy");
-  requiredPrivileges.setSinglePrivilege("ConfigureUsers");
-  entityPrivileges.addPrivilegesRequiredByMethod(crow::HTTPMethod::GET,
-                                                 requiredPrivileges);
   EXPECT_FALSE(entityPrivileges.isMethodAllowedWithPrivileges(
       crow::HTTPMethod::GET, userPrivileges));
 }
 
-TEST_F(PrivilegeTest, PrivilegeCheckForORCaseSuccess) {
-  PrivilegeProvider privilegeProvider("privilege_registry_mock.json");
+TEST(PrivilegeTest, PrivilegeCheckForANDCaseSuccess) {
+  auto userPrivileges =
+      Privileges{"Login", "ConfigureManager", "ConfigureSelf"};
+  OperationMap operationMap = {
+      {crow::HTTPMethod::GET,
+       {{"Login", "ConfigureManager", "ConfigureSelf"}}}};
+  auto entityPrivileges = EntityPrivileges(std::move(operationMap));
 
-  auto entityPrivileges = EntityPrivileges();
-  auto userPrivileges = Privileges();
-  auto requiredPrivileges = Privileges();
-
-  userPrivileges.setSinglePrivilege("OEMRoot");
-  requiredPrivileges.setSinglePrivilege("Login");
-  entityPrivileges.addPrivilegesRequiredByMethod(crow::HTTPMethod::GET,
-                                                 requiredPrivileges);
-  requiredPrivileges = Privileges();
-  requiredPrivileges.setSinglePrivilege("OEMRoot");
-  entityPrivileges.addPrivilegesRequiredByMethod(crow::HTTPMethod::GET,
-                                                 requiredPrivileges);
   EXPECT_TRUE(entityPrivileges.isMethodAllowedWithPrivileges(
       crow::HTTPMethod::GET, userPrivileges));
 }
 
-TEST_F(PrivilegeTest, PrivilegeCheckForORCaseFailure) {
-  PrivilegeProvider privilegeProvider("privilege_registry_mock.json");
+TEST(PrivilegeTest, PrivilegeCheckForANDCaseFailure) {
+  auto userPrivileges = Privileges{"Login", "ConfigureManager"};
+  OperationMap operationMap = {
+      {crow::HTTPMethod::GET,
+       {{"Login", "ConfigureManager", "ConfigureSelf"}}}};
+  auto entityPrivileges = EntityPrivileges(std::move(operationMap));
 
-  auto entityPrivileges = EntityPrivileges();
-  auto userPrivileges = Privileges();
-  auto requiredPrivileges = Privileges();
-
-  userPrivileges.setSinglePrivilege("ConfigureComponents");
-  requiredPrivileges.setSinglePrivilege("Login");
-  entityPrivileges.addPrivilegesRequiredByMethod(crow::HTTPMethod::GET,
-                                                 requiredPrivileges);
-  requiredPrivileges = Privileges();
-  requiredPrivileges.setSinglePrivilege("ConfigureManager");
-  entityPrivileges.addPrivilegesRequiredByMethod(crow::HTTPMethod::GET,
-                                                 requiredPrivileges);
   EXPECT_FALSE(entityPrivileges.isMethodAllowedWithPrivileges(
       crow::HTTPMethod::GET, userPrivileges));
 }
 
-TEST_F(PrivilegeTest, DefaultPrivilegeBitsetsAreEmpty) {
+TEST(PrivilegeTest, PrivilegeCheckForORCaseSuccess) {
+  auto userPrivileges = Privileges{"ConfigureManager"};
+  OperationMap operationMap = {
+      {crow::HTTPMethod::GET, {{"Login"}, {"ConfigureManager"}}}};
+  auto entityPrivileges = EntityPrivileges(std::move(operationMap));
+
+  EXPECT_TRUE(entityPrivileges.isMethodAllowedWithPrivileges(
+      crow::HTTPMethod::GET, userPrivileges));
+}
+
+TEST(PrivilegeTest, PrivilegeCheckForORCaseFailure) {
+  auto userPrivileges = Privileges{"ConfigureComponents"};
+  OperationMap operationMap = {
+      {crow::HTTPMethod::GET, {{"Login"}, {"ConfigureManager"}}}};
+  auto entityPrivileges = EntityPrivileges(std::move(operationMap));
+
+  EXPECT_FALSE(entityPrivileges.isMethodAllowedWithPrivileges(
+      crow::HTTPMethod::GET, userPrivileges));
+}
+
+TEST(PrivilegeTest, DefaultPrivilegeBitsetsAreEmpty) {
   Privileges privileges;
   EXPECT_TRUE(privileges.getBasePrivilegeBitset() == 0);
   EXPECT_TRUE(privileges.getOEMPrivilegeBitset() == 0);
 }
 
-TEST_F(PrivilegeTest, UniqueBitsAssignedForAllPrivilegeNames) {
-  PrivilegeProvider privilegeProvider("privilege_registry_mock.json");
-
+TEST(PrivilegeTest, UniqueBitsAssignedForAllPrivilegeNames) {
   Privileges privileges;
+  std::vector<std::string> expectedPrivileges{
+      "Login", "ConfigureManager", "ConfigureUsers", "ConfigureComponents",
+      "ConfigureSelf"};
 
-  for (const auto& privilege : expectedBasePrivileges) {
-    privileges.setSinglePrivilege(privilege);
-  }
-
-  for (const auto& privilege : expectedOEMPrivileges) {
+  for (const auto& privilege : expectedPrivileges) {
     privileges.setSinglePrivilege(privilege);
   }
 
   EXPECT_EQ(privileges.getBasePrivilegeBitset().count(),
-            expectedBasePrivileges.size());
-  EXPECT_EQ(privileges.getOEMPrivilegeBitset().count(),
-            expectedOEMPrivileges.size());
+            expectedPrivileges.size());
 }
 
-TEST_F(PrivilegeTest, GetActiveBasePrivilegeNames) {
+TEST(PrivilegeTest, GetActivePrivilegeNames) {
   Privileges privileges;
 
   EXPECT_EQ(privileges.getActivePrivilegeNames(PrivilegeType::BASE),
             std::vector<std::string>());
 
-  PrivilegeProvider privilegeProvider("privilege_registry_mock.json");
+  std::vector<std::string> expectedPrivileges{
+      "Login", "ConfigureManager", "ConfigureUsers", "ConfigureComponents",
+      "ConfigureSelf"};
 
-  for (const auto& privilege : expectedBasePrivileges) {
+  for (const auto& privilege : expectedPrivileges) {
     privileges.setSinglePrivilege(privilege);
   }
 
   std::vector<std::string> activePrivileges =
       privileges.getActivePrivilegeNames(PrivilegeType::BASE);
 
-  std::sort(expectedBasePrivileges.begin(), expectedBasePrivileges.end());
+  std::sort(expectedPrivileges.begin(), expectedPrivileges.end());
   std::sort(activePrivileges.begin(), activePrivileges.end());
 
-  EXPECT_EQ(activePrivileges, expectedBasePrivileges);
+  EXPECT_EQ(activePrivileges, expectedPrivileges);
 }
 
-TEST_F(PrivilegeTest, GetActiveOEMPrivilegeNames) {
-  Privileges privileges;
-
-  EXPECT_EQ(privileges.getActivePrivilegeNames(PrivilegeType::OEM),
-            std::vector<std::string>());
-
-  PrivilegeProvider privilegeProvider("privilege_registry_mock.json");
-
-  for (const auto& privilege : expectedOEMPrivileges) {
-    privileges.setSinglePrivilege(privilege);
-  }
-
-  std::vector<std::string> activePrivileges =
-      privileges.getActivePrivilegeNames(PrivilegeType::OEM);
-
-  std::sort(expectedOEMPrivileges.begin(), expectedOEMPrivileges.end());
-  std::sort(activePrivileges.begin(), activePrivileges.end());
-
-  EXPECT_EQ(activePrivileges, expectedOEMPrivileges);
+TEST(PrivilegeTest, PropertyOverrideConstructor) {
+  OperationMap operationMap = {
+      {crow::HTTPMethod::GET, {{"Login"}, {"ConfigureManager"}}}};
+  PropertyOverride propertyOverride(std::move(operationMap),
+                                    {"Password", "Id"});
 }