diff options
author | Mukunth A <a.mukunth@samsung.com> | 2020-11-04 14:02:02 +0530 |
---|---|---|
committer | Mukunth A <a.mukunth@samsung.com> | 2020-11-12 07:30:10 +0000 |
commit | 428621912cf87117d5813115af47e2e63954a5d3 (patch) | |
tree | 757631c259b1615af33aec848f719c1b8ffc10af | |
parent | 4b05087383365de910f116c17078edf04d15fc1b (diff) | |
download | edge-orchestration-428621912cf87117d5813115af47e2e63954a5d3.tar.gz edge-orchestration-428621912cf87117d5813115af47e2e63954a5d3.tar.bz2 edge-orchestration-428621912cf87117d5813115af47e2e63954a5d3.zip |
1. Add unit test casessubmit/tizen_6.0/20201112.173450accepted/tizen/6.0/unified/20201116.012229accepted/tizen_6.0_unified
2. Code Coverage > 80%
Change-Id: I921ab845b4b75e07bf5af824a990c55e523cf563
Signed-off-by: Mukunth A <a.mukunth@samsung.com>
(cherry picked from commit 16cdfc768424f02a9cacf5402ceae7c097c66be5)
-rw-r--r-- | CMain/unittest/test_orchestration_server.cpp | 249 |
1 files changed, 249 insertions, 0 deletions
diff --git a/CMain/unittest/test_orchestration_server.cpp b/CMain/unittest/test_orchestration_server.cpp index 2225da4..04ab8ab 100644 --- a/CMain/unittest/test_orchestration_server.cpp +++ b/CMain/unittest/test_orchestration_server.cpp @@ -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(); + } |