summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMukunth A <a.mukunth@samsung.com>2020-11-04 14:02:02 +0530
committerMukunth A <a.mukunth@samsung.com>2020-11-12 07:30:10 +0000
commit428621912cf87117d5813115af47e2e63954a5d3 (patch)
tree757631c259b1615af33aec848f719c1b8ffc10af
parent4b05087383365de910f116c17078edf04d15fc1b (diff)
downloadedge-orchestration-428621912cf87117d5813115af47e2e63954a5d3.tar.gz
edge-orchestration-428621912cf87117d5813115af47e2e63954a5d3.tar.bz2
edge-orchestration-428621912cf87117d5813115af47e2e63954a5d3.zip
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.cpp249
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();
+
}