From a007aae717e9b7bafdcd08e287406bc8ed02c292 Mon Sep 17 00:00:00 2001 From: "hyunuk.tak" Date: Tue, 22 Mar 2022 12:53:27 +0900 Subject: [PATCH] Add core test case for reset Change-Id: I49830c414098c2cbe24c4007cbe507e180e95d58 Signed-off-by: hyunuk.tak --- tests/unittest/mocks/thread-mock-dbus.cpp | 14 +++++++++ tests/unittest/mocks/thread-mock-dummy.cpp | 46 +++++++++++++++++++++++++++--- tests/unittest/mocks/thread-mock-dummy.h | 3 ++ tests/unittest/thread-unittest-core.cpp | 17 +++++++++++ 4 files changed, 76 insertions(+), 4 deletions(-) diff --git a/tests/unittest/mocks/thread-mock-dbus.cpp b/tests/unittest/mocks/thread-mock-dbus.cpp index bed2d02..be8d356 100644 --- a/tests/unittest/mocks/thread-mock-dbus.cpp +++ b/tests/unittest/mocks/thread-mock-dbus.cpp @@ -16,6 +16,7 @@ #include #include +#include "thread-private.h" #include "thread-mock-dummy.h" GDBusConnection *g_bus_get_sync(GBusType bus_type, @@ -61,6 +62,19 @@ void g_dbus_connection_signal_unsubscribe(GDBusConnection *connection, { } +GVariant *g_dbus_proxy_call_sync(GDBusProxy *proxy, + const gchar *method_name, + GVariant *parameters, + GDBusCallFlags flags, + gint timeout_msec, + GCancellable *cancellable, + GError **error) +{ + retv_if(proxy == NULL, NULL); + + return _handle_sync_method(method_name, parameters); +} + void g_object_unref(gpointer object) { } \ No newline at end of file diff --git a/tests/unittest/mocks/thread-mock-dummy.cpp b/tests/unittest/mocks/thread-mock-dummy.cpp index 726cf3c..3c6d4ed 100644 --- a/tests/unittest/mocks/thread-mock-dummy.cpp +++ b/tests/unittest/mocks/thread-mock-dummy.cpp @@ -14,13 +14,20 @@ * limitations under the License. */ +#include "thread-private.h" +#include "thread-dbus-handler.h" #include "thread-mock-dummy.h" -static GVariant * __properties_changed() +static GVariant * __signal_properties_changed() { return nullptr; } +static GVariant *__method_reset(GVariant *parameters) +{ + return g_variant_new("(i)", THREAD_ERROR_NONE); +} + struct { const gchar *interface_name; const gchar *signal_name; @@ -29,9 +36,9 @@ struct { gpointer user_data; } thread_gdbus_signal_list[] = { [PROPERTIES_CHANGED] = { - "org.freedesktop.DBus.Properties", - "PropertiesChanged", - __properties_changed, + THREAD_EVENT_INTERFACE, + THREAD_EVENT_NAME, + __signal_properties_changed, NULL, NULL, }, @@ -44,12 +51,31 @@ struct { }, }; +struct { + const gchar *method_name; + GVariant *(*sync_handler)(GVariant *parameters); +} thread_gdbus_method_list[] = { + { + THREAD_DBUS_RESET_METHOD, + __method_reset, + }, + { + NULL, + NULL, + } +}; + static bool __is_same_signal(int i, const char *interface_name, const char *signal_name) { return (g_strcmp0(thread_gdbus_signal_list[i].interface_name, interface_name) == 0 && g_strcmp0(thread_gdbus_signal_list[i].signal_name, signal_name) == 0); } +static bool __is_same_method(int i, const char *method_name) +{ + return (g_strcmp0(thread_gdbus_method_list[i].method_name, method_name) == 0); +} + guint _subscribe_signal(const char *interface_name, const char *member, GDBusSignalCallback callback, gpointer user_data) @@ -63,4 +89,16 @@ guint _subscribe_signal(const char *interface_name, } } return DUMMY_SIGNAL_ID; +} + +GVariant *_handle_sync_method(const gchar *method_name, + GVariant *parameters) +{ + for (int i = 0; ; ++i) { + if (thread_gdbus_method_list[i].method_name == NULL) + return nullptr; + + if (__is_same_method(i, method_name)) + return thread_gdbus_method_list[i].sync_handler(parameters); + } } \ No newline at end of file diff --git a/tests/unittest/mocks/thread-mock-dummy.h b/tests/unittest/mocks/thread-mock-dummy.h index 54df057..0cae601 100644 --- a/tests/unittest/mocks/thread-mock-dummy.h +++ b/tests/unittest/mocks/thread-mock-dummy.h @@ -28,3 +28,6 @@ typedef enum { guint _subscribe_signal(const char *interface_name, const char *member, GDBusSignalCallback callback, gpointer user_data); + +GVariant *_handle_sync_method(const gchar *method_name, + GVariant *parameters); diff --git a/tests/unittest/thread-unittest-core.cpp b/tests/unittest/thread-unittest-core.cpp index b9e9908..29f763d 100644 --- a/tests/unittest/thread-unittest-core.cpp +++ b/tests/unittest/thread-unittest-core.cpp @@ -97,4 +97,21 @@ TEST_F(ThreadCoreTest, StopErrorNone) EXPECT_EQ(THREAD_ERROR_NONE, thread_enable(&instance)); EXPECT_EQ(THREAD_ERROR_NONE, thread_start(instance)); EXPECT_EQ(THREAD_ERROR_NONE, thread_stop(instance)); +} + +TEST_F(ThreadCoreTest, ResetNotInitialized) +{ + EXPECT_EQ(THREAD_ERROR_NONE, thread_deinitialize()); + EXPECT_EQ(THREAD_ERROR_NOT_INITIALIZED, thread_reset(instance)); +} + +TEST_F(ThreadCoreTest, ResetInvalidParameter) +{ + EXPECT_EQ(THREAD_ERROR_INVALID_PARAMETER, thread_reset(instance)); +} + +TEST_F(ThreadCoreTest, ResetErrorNone) +{ + EXPECT_EQ(THREAD_ERROR_NONE, thread_enable(&instance)); + EXPECT_EQ(THREAD_ERROR_NONE, thread_reset(instance)); } \ No newline at end of file -- 2.7.4