1. Add unit test cases 81/247581/1 accepted/tizen_6.0_unified accepted/tizen/6.0/unified/20201116.012229 submit/tizen_6.0/20201112.173450
authorMukunth A <a.mukunth@samsung.com>
Wed, 4 Nov 2020 08:32:02 +0000 (14:02 +0530)
committerMukunth A <a.mukunth@samsung.com>
Thu, 12 Nov 2020 07:30:10 +0000 (07:30 +0000)
2. Code Coverage > 80%

Change-Id: I921ab845b4b75e07bf5af824a990c55e523cf563
Signed-off-by: Mukunth A <a.mukunth@samsung.com>
(cherry picked from commit 16cdfc768424f02a9cacf5402ceae7c097c66be5)

CMain/unittest/test_orchestration_server.cpp

index 2225da4a6bb5e211a336a38759e11e024ea479e4..04ab8ab9ab070bff8964a3a2e2b979b7462cab86 100644 (file)
@@ -51,6 +51,31 @@ int fake_request_cb(char* app_name, bool self_select, RequestServiceInfo service
     }
 }
 
+int fake_request_device_cb(char* app_name, bool self_select, RequestServiceInfo service_info[], char *ip, int count, char * client_pname)
+{
+    if (!strcmp(app_name, APP_NAME) &&
+        count == 1 &&
+        !strcmp(service_info[0].ExecutionType, EXECUTE_TYPE) &&
+        !strcmp(service_info[0].ExeCmd, EXECUTE_COMMAND))
+    {
+        requestCbResult = 1;
+        return 1;
+    }
+    else
+    {
+        requestCbResult = -1;
+        return -1;
+    }
+}
+
+DeviceList* fake_get_device_list(char* service_name, char* exec_type)
+{
+    DeviceList *devices = (DeviceList*) malloc(sizeof(DeviceList));
+    devices->Endpoints = strdup("IP1;IP2;IP3");
+    devices->Message = strdup("SUCCESS");
+    return devices;
+}
+
 int fake_update_key_pair(char* id, char* key, char* client_pname) {
 
     if (id != NULL && key != NULL && client_pname != NULL) {
@@ -60,6 +85,19 @@ int fake_update_key_pair(char* id, char* key, char* client_pname) {
     }
 }
 
+DeviceCapability* fake_read_device_capability(char* ip)
+{
+    DeviceCapability *cap = (DeviceCapability*) malloc(sizeof(DeviceCapability));
+    cap->Message = strdup("SUCCESS");
+    cap->CapabilityJson = strdup("capability1");
+    return cap;
+}
+
+char* fake_write_device_capability(char* capability)
+{
+    return strdup("SUCCESS");
+}
+
 GDBusConnection *fake_get_sync_return_NULL(GBusType bus_type, GCancellable *cancellable, GError **error)
 {
     *error = NULL;
@@ -142,6 +180,12 @@ void fake_invocation_return_value(GDBusMethodInvocation *invocation,
     g_variant_get(parameters, "(i)", &invocation_return_value);
 }
 
+void fake_invocation_return_value_1(GDBusMethodInvocation *invocation,
+                                  GVariant *parameters)
+{
+    invocation_return_value = 0;
+}
+
 void fake_error_free(GError *error)
 {
 
@@ -180,6 +224,7 @@ TEST_F(OrchestrationServerTests, WhenCalledServerInit_WithInvalidcb_ExpectedErro
 {
        dbus_funcs fake_funcs;
        fake_funcs.request_service_f = NULL;
+       fake_funcs.request_service_on_device_f = NULL;
        fake_funcs.update_key_pair_f = NULL;
     ASSERT_EQ(orchestration_server_initialize(fake_funcs), ORCH_ERROR_INVALID_PARAMETER);
 }
@@ -191,6 +236,7 @@ TEST_F(OrchestrationServerTests, WhenCalledServerInit_OccuredDbusError_ExpectedE
 
     dbus_funcs fake_funcs;
        fake_funcs.request_service_f = fake_request_cb;
+       fake_funcs.request_service_on_device_f = fake_request_device_cb;
        fake_funcs.update_key_pair_f = fake_update_key_pair;
 
     ASSERT_EQ(orchestration_server_initialize(fake_funcs), ORCH_ERROR_DBUS_FAILURE);
@@ -272,7 +318,11 @@ TEST_F(OrchestrationServerTests, WhenCalledServerInit_ExpectedSuccess)
 
     dbus_funcs fake_funcs;
        fake_funcs.request_service_f = fake_request_cb;
+       fake_funcs.request_service_on_device_f = fake_request_device_cb;
        fake_funcs.update_key_pair_f = fake_update_key_pair;
+       fake_funcs.get_device_list_f = fake_get_device_list;
+       fake_funcs.read_device_capability_f = fake_read_device_capability;
+       fake_funcs.write_device_capability_f = fake_write_device_capability;
 
     ASSERT_EQ(orchestration_server_initialize(fake_funcs), ORCH_ERROR_NONE);
 
@@ -371,6 +421,204 @@ TEST_F(OrchestrationServerTests, WhenCalledHandleMethodCall_WithRequestServiceMe
     }
 }
 
+TEST_F(OrchestrationServerTests, WhenCalledHandleMethodCall_WithRequestServiceOnDeviceMethod_WithInvalidParam_ExpectedReturnError)
+{
+    requestCbResult = false;
+    set_default_dbus_interface();
+    _gdbus.get_sync = fake_get_sync_success;
+    _gdbus.own_name_on_connection = fake_own_name_success;
+    _gdbus.node_info_new_for_xml = fake_node_info_new_for_xml_success;
+    _gdbus.connection_register_object = fake_connection_register_object_success;
+    _gdbus.invocation_return_value = fake_invocation_return_value;
+    _gdbus.error_free = fake_error_free;
+    _handle_method_call(NULL,
+                        NULL,
+                        NULL,
+                        NULL,
+                        "request_service_on_device",
+                        NULL,
+                        NULL,
+                        NULL);
+
+    EXPECT_EQ(requestCbResult, false);
+
+    if (valid_GDBusConnection != NULL)
+    {
+        free(valid_GDBusConnection);
+        valid_GDBusConnection = NULL;
+    }
+    if (valid_GDBusNodeInfo != NULL)
+    {
+        free(valid_GDBusNodeInfo);
+        valid_GDBusNodeInfo = NULL;
+    }
+}
+
+TEST_F(OrchestrationServerTests, WhenCalledHandleMethodCall_WithRequestServiceOnDeviceMethod_WithValidParam_ExpectedReturnSuccess)
+{
+    requestCbResult = false;
+    set_default_dbus_interface();
+    _gdbus.get_sync = fake_get_sync_success;
+    _gdbus.own_name_on_connection = fake_own_name_success;
+    _gdbus.node_info_new_for_xml = fake_node_info_new_for_xml_success;
+    _gdbus.connection_register_object = fake_connection_register_object_success;
+    _gdbus.invocation_return_value = fake_invocation_return_value;
+    _gdbus.error_free = fake_error_free;
+    _gdbus.connection_call_sync = fake_g_dbus_connection_call_sync;
+
+    int idx;
+    int count = 1, client_pid = 1;
+    const char* ipaddr = "IP1";
+    GVariant *services;
+    GVariantBuilder *builder;
+    builder = g_variant_builder_new (G_VARIANT_TYPE ("a(ss)"));
+    for (idx = 0; idx < count; idx++) {
+        g_variant_builder_add (
+            builder,
+            "(ss)",
+            EXECUTE_TYPE,
+            EXECUTE_COMMAND
+        );
+    }
+    services = g_variant_new ("(sia(ss)sii)", APP_NAME, 1, builder, ipaddr, count, client_pid);
+
+    _handle_method_call(NULL,
+                        "edge_orchestration_sample",
+                        NULL,
+                        NULL,
+                        "request_service_on_device",
+                        services,
+                        NULL,
+                        NULL);
+
+    EXPECT_EQ(requestCbResult, true);
+    g_variant_builder_unref (builder);
+
+    if (valid_GDBusConnection != NULL)
+    {
+        free(valid_GDBusConnection);
+        valid_GDBusConnection = NULL;
+    }
+    if (valid_GDBusNodeInfo != NULL)
+    {
+        free(valid_GDBusNodeInfo);
+        valid_GDBusNodeInfo = NULL;
+    }
+}
+
+TEST_F(OrchestrationServerTests, WhenCalledHandleMethodCall_ReadDeviceCapability_ExpectedReturnSuccess)
+{
+    set_default_dbus_interface();
+    _gdbus.get_sync = fake_get_sync_success;
+    _gdbus.own_name_on_connection = fake_own_name_success;
+    _gdbus.node_info_new_for_xml = fake_node_info_new_for_xml_success;
+    _gdbus.connection_register_object = fake_connection_register_object_success;
+    _gdbus.invocation_return_value = fake_invocation_return_value_1;
+    _gdbus.error_free = fake_error_free;
+    _gdbus.connection_call_sync = fake_g_dbus_connection_call_sync;
+
+    int client_pid = 1;
+    GVariant *services;
+    services = g_variant_new("(si)", "IP1", client_pid);
+    _handle_method_call(NULL,
+                        "edge_orchestration_sample",
+                        NULL,
+                        NULL,
+                        "read_capability",
+                        services,
+                        NULL,
+                        NULL);
+
+    EXPECT_EQ(invocation_return_value, ORCH_ERROR_NONE);
+
+    if (valid_GDBusConnection != NULL)
+    {
+        free(valid_GDBusConnection);
+        valid_GDBusConnection = NULL;
+    }
+    if (valid_GDBusNodeInfo != NULL)
+    {
+        free(valid_GDBusNodeInfo);
+        valid_GDBusNodeInfo = NULL;
+    }
+}
+
+TEST_F(OrchestrationServerTests, WhenCalledHandleMethodCall_WriteDeviceCapability_ExpectedReturnSuccess)
+{
+     set_default_dbus_interface();
+    _gdbus.get_sync = fake_get_sync_success;
+    _gdbus.own_name_on_connection = fake_own_name_success;
+    _gdbus.node_info_new_for_xml = fake_node_info_new_for_xml_success;
+    _gdbus.connection_register_object = fake_connection_register_object_success;
+    _gdbus.invocation_return_value = fake_invocation_return_value;
+    _gdbus.error_free = fake_error_free;
+    _gdbus.connection_call_sync = fake_g_dbus_connection_call_sync;
+
+    int client_pid = 1;
+    GVariant *services;
+    services = g_variant_new("(si)", "CAPABILITY1", client_pid);
+    _handle_method_call(NULL,
+                        "edge_orchestration_sample",
+                        NULL,
+                        NULL,
+                        "write_capability",
+                        services,
+                        NULL,
+                        NULL);
+
+    EXPECT_EQ(invocation_return_value, ORCH_ERROR_NONE);
+
+    if (valid_GDBusConnection != NULL)
+    {
+        free(valid_GDBusConnection);
+        valid_GDBusConnection = NULL;
+    }
+    if (valid_GDBusNodeInfo != NULL)
+    {
+        free(valid_GDBusNodeInfo);
+        valid_GDBusNodeInfo = NULL;
+    }
+}
+
+TEST_F(OrchestrationServerTests, WhenCalledHandleMethodCall_GetDeviceList_ExpectedReturnSuccess)
+{
+    set_default_dbus_interface();
+    _gdbus.get_sync = fake_get_sync_success;
+    _gdbus.own_name_on_connection = fake_own_name_success;
+    _gdbus.node_info_new_for_xml = fake_node_info_new_for_xml_success;
+    _gdbus.connection_register_object = fake_connection_register_object_success;
+    _gdbus.invocation_return_value = fake_invocation_return_value_1;
+    _gdbus.error_free = fake_error_free;
+    _gdbus.connection_call_sync = fake_g_dbus_connection_call_sync;
+
+    int client_pid = 1;
+    GVariant *services;
+    services = g_variant_new ("(ssi)", "SERVICE_NAME", "SERVICE_TYPE", client_pid);
+
+    _handle_method_call(NULL,
+                       "edge_orchestration_sample",
+                       NULL,
+                       NULL,
+                       "get_device_list",
+                       services,
+                       NULL,
+                       NULL);
+
+
+    EXPECT_EQ(invocation_return_value, ORCH_ERROR_NONE);
+
+    if (valid_GDBusConnection != NULL)
+    {
+        free(valid_GDBusConnection);
+        valid_GDBusConnection = NULL;
+    }
+    if (valid_GDBusNodeInfo != NULL)
+    {
+        free(valid_GDBusNodeInfo);
+        valid_GDBusNodeInfo = NULL;
+    }
+}
+
 TEST_F(OrchestrationServerTests, WhenCalledHandleMethodCall_WithUpdateKeyPair_WithInvalidParam_ExpectedReturnError)
 {
     set_default_dbus_interface();
@@ -451,4 +699,5 @@ int main(int argc, char **argv)
 {
     testing::InitGoogleTest(&argc, argv);
     return RUN_ALL_TESTS();
+
 }