#include <gtest/gtest.h>
#include <memory>
#include <common/utility.hpp>
namespace
{
std::string configuration_file{"/vsomeip/0_0/vsomeip_security.json"};
}
TEST(load, No_element)
{
std::unique_ptr<vsomeip_v3::policy_manager_impl> its_manager(new vsomeip_v3::policy_manager_impl);
std::vector<vsomeip_v3::configuration_element> empty_element = {}; std::vector<vsomeip_v3::configuration_element> full_element = {};
ASSERT_TRUE(empty_element.size() == 0) << " Initial element size is not zero";
ASSERT_TRUE(full_element.size() == 0) << " Initial full element size is not zero";
std::set<std::string> its_failed;
std::vector<std::string> dir_skip;
utility::read_data(utility::get_all_files_in_dir(
utility::get_policies_path(), dir_skip),
full_element, its_failed);
for (const auto &e : full_element)
{
its_manager->load(e, false); };
ASSERT_TRUE(full_element.size() > 0) << "Full element size is zero after load, should be >0 since policy was loaded";
ASSERT_GT(full_element.size(), empty_element.size()) << "Full element is not greater than unit element";
}
TEST(load, _lazy_load)
{
std::unique_ptr<vsomeip_v3::policy_manager_impl> its_manager(new vsomeip_v3::policy_manager_impl);
std::vector<vsomeip_v3::configuration_element> element = {};
const bool lazy_load = true;
std::set<std::string> its_failed;
std::vector<std::string> dir_skip;
utility::read_data(utility::get_all_files_in_dir(
utility::get_policies_path(), dir_skip),
element, its_failed);
for (const auto &e : element)
{
its_manager->load(e, lazy_load);
EXPECT_EQ(lazy_load, true) << "Lazy load not equal true";
};
const vsomeip_v3::configuration_element &e = element.at(0);
its_manager->load(e, lazy_load);
EXPECT_EQ(lazy_load, true) << "Lazy load not equal true";
}
TEST(load, policy_enabled_and_check_credentials)
{
std::unique_ptr<vsomeip_v3::policy_manager_impl> its_manager(new vsomeip_v3::policy_manager_impl);
std::vector<vsomeip_v3::configuration_element> element = {};
ASSERT_TRUE(its_manager->is_audit()) << "policies were loaded. policy_enable should be true";
ASSERT_FALSE(its_manager->is_enabled()) << "policies were loaded. check_credentials should be false";
std::set<std::string> its_failed;
std::vector<std::string> dir_skip;
utility::read_data(utility::get_all_files_in_dir(
utility::get_policies_path(), dir_skip),
element, its_failed);
for (const auto &e : element)
{
its_manager->load(e, false); };
ASSERT_FALSE(its_manager->is_audit()) << "policies were loaded. policy_enable should be false";
ASSERT_TRUE(its_manager->is_enabled()) << "policies were loaded. check_credentials should be true";
}