Fix Execute failure issue
authorChanggyu Choi <changyu.choi@samsung.com>
Thu, 13 Mar 2025 07:31:20 +0000 (16:31 +0900)
committerChanggyu Choi <changyu.choi@samsung.com>
Thu, 13 Mar 2025 07:52:09 +0000 (16:52 +0900)
Signed-off-by: Changgyu Choi <changyu.choi@samsung.com>
src/action/action_executor_factory.cc
src/action/utils/action_model_converter.cc
src/action/utils/action_model_converter.hh
test/unit_tests/action_model_converter_test.cc [new file with mode: 0644]

index 71af248dd4d192dcdb746e822c4105de1713404d..965b700f4d381b696eeb5b800d53ee32b5e770db 100644 (file)
@@ -1,6 +1,7 @@
 #include "action_executor_factory.hh"
 
 #include "app_control_executor.hh"
+#include "common/utils/logging.hh"
 #include "plugin_executor.hh"
 
 namespace action {
@@ -10,8 +11,13 @@ class DefaultActionExecutor : public common::AbstractActionExecutor {
   explicit DefaultActionExecutor() : AbstractActionExecutor("") {}
   ~DefaultActionExecutor() = default;
 
-  int Execute(const common::ActionModel& model) override { return -1; }
-  void SetResultHandler(common::IResultHandler* handler) override {}
+  int Execute(const common::ActionModel& model) override {
+    LOG(ERROR) << "DefaultActionExecutor::Execute";
+    return -1;
+  }
+  void SetResultHandler(common::IResultHandler* handler) override {
+    LOG(ERROR) << "DefaultActionExecutor::SetResultHandler";
+  }
 };
 
 std::unique_ptr<common::AbstractActionExecutor>
index cb9d7268eef702bb08c22c38f1815eed3e946e97..529ebc17dd12ccfc2d597b94b198b8076e799f6a 100644 (file)
@@ -32,9 +32,9 @@ plugin_proxy::Action ActionModelConverter::ConvertToAction(
 std::string ActionModelConverter::ActionTypeToString(common::ActionType type) {
   switch (type) {
   case common::ActionType::AppControl:
-    return "AppControl";
+    return "app_control";
   case common::ActionType::Plugin:
-    return "Plugin";
+    return "plugin";
   default:
     return "InvalidType";
   }
@@ -44,13 +44,13 @@ std::string ActionModelConverter::ActionParameterTypeToString(
     common::ParameterType type) {
   switch (type) {
   case common::ParameterType::IntType:
-    return "IntType";
+    return "integer";
   case common::ParameterType::StringType:
-    return "StringType";
+    return "string";
   case common::ParameterType::DoubleType:
-    return "DoubleType";
+    return "double";
   case common::ParameterType::BoolType:
-    return "BoolType";
+    return "bool";
   default:
     return "InvalidType";
   }
index 774d350a0ff70233a3e43267f5c011ae749d9163..1fd1de13a0f603e154ec0762b611e70487ea3841 100644 (file)
@@ -5,8 +5,6 @@ class ActionModelConverter {
  public:
   ActionModelConverter() = default;
   rpc_port::plugin_manager_proxy::Action ConvertToAction(const common::ActionModel& model);
-
- private:
   std::string ActionTypeToString(common::ActionType type);
   std::string ActionParameterTypeToString(common::ParameterType type);
 };
diff --git a/test/unit_tests/action_model_converter_test.cc b/test/unit_tests/action_model_converter_test.cc
new file mode 100644 (file)
index 0000000..87f8b10
--- /dev/null
@@ -0,0 +1,78 @@
+#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");
+}