--- /dev/null
+#include <gtest/gtest.h>
+
+#include "action/plugin_manager_proxy.h"
+#include "action/utils/action_model_converter.hh"
+#include "common/action_model.h"
+
+class ActionModelConverterTest : public ::testing::Test {
+protected:
+ void SetUp() override {}
+};
+
+TEST_F(ActionModelConverterTest, ConvertToAction_ValidInput) {
+ common::ActionModel model;
+ model.SetActionId("test_action");
+ model.SetAppId("test_app");
+ model.SetDescription("test_desc");
+ model.SetPrivileges({"priv1", "priv2"});
+ model.SetType(common::ActionType::AppControl);
+
+ common::ActionParameter param1;
+ param1.SetName("param1");
+ param1.SetType(common::ParameterType::StringType);
+ param1.SetValue("value1");
+ param1.SetDescription("param_desc");
+ param1.SetIsRequired(true);
+ model.SetParameters({param1});
+
+ ActionModelConverter converter;
+
+ rpc_port::plugin_manager_proxy::Action action = converter.ConvertToAction(model);
+
+ EXPECT_EQ(action.Getaction_id(), "test_action");
+ EXPECT_EQ(action.Getapp_id(), "test_app");
+ EXPECT_EQ(action.Getdescription(), "test_desc");
+ EXPECT_EQ(action.Getprivileges().size(), 2);
+ EXPECT_EQ(action.Gettype(), "app_control");
+ EXPECT_EQ(action.Getparameters().size(), 1);
+
+ const auto& param = action.Getparameters()[0];
+ EXPECT_EQ(param.Getkey(), "param1");
+ EXPECT_EQ(param.Gettype(), "string");
+ EXPECT_EQ(param.Getvalue(), "value1");
+ EXPECT_EQ(param.Getdescription(), "param_desc");
+ EXPECT_TRUE(param.Getis_requied());
+}
+
+TEST_F(ActionModelConverterTest, ConvertToAction_EmptyParameters) {
+ common::ActionModel model;
+ model.SetActionId("test_action");
+ ActionModelConverter converter;
+ rpc_port::plugin_manager_proxy::Action action = converter.ConvertToAction(model);
+ EXPECT_EQ(action.Getparameters().size(), 0);
+}
+
+TEST_F(ActionModelConverterTest, ConvertToAction_RequiredParameter) {
+ common::ActionModel model;
+ common::ActionParameter param;
+ param.SetIsRequired(false);
+ model.SetParameters({param});
+ rpc_port::plugin_manager_proxy::Action action = ActionModelConverter().ConvertToAction(model);
+ EXPECT_FALSE(action.Getparameters()[0].Getis_requied());
+}
+
+TEST_F(ActionModelConverterTest, ActionTypeToString_AllTypes) {
+ ActionModelConverter converter;
+ EXPECT_EQ(converter.ActionTypeToString(common::ActionType::AppControl), "app_control");
+ EXPECT_EQ(converter.ActionTypeToString(common::ActionType::Plugin), "plugin");
+ EXPECT_EQ(converter.ActionTypeToString(static_cast<common::ActionType>(-1)), "InvalidType");
+}
+
+TEST_F(ActionModelConverterTest, ActionParameterTypeToString_AllTypes) {
+ ActionModelConverter converter;
+ EXPECT_EQ(converter.ActionParameterTypeToString(common::ParameterType::IntType), "integer");
+ EXPECT_EQ(converter.ActionParameterTypeToString(common::ParameterType::StringType), "string");
+ EXPECT_EQ(converter.ActionParameterTypeToString(common::ParameterType::DoubleType), "double");
+ EXPECT_EQ(converter.ActionParameterTypeToString(common::ParameterType::BoolType), "bool");
+ EXPECT_EQ(converter.ActionParameterTypeToString(static_cast<common::ParameterType>(-1)), "InvalidType");
+}