6#include "gtest/gtest.h"
17TEST(FlBasicMessageChannelTest, SendMessageWithoutResponse) {
19 gboolean called = FALSE;
22 [](FlMockBinaryMessenger* messenger, GTask* task,
FlValue*
message,
24 gboolean* called =
static_cast<gboolean*
>(
user_data);
32 return static_cast<FlValue*
>(
nullptr);
38 FL_BINARY_MESSENGER(messenger),
"test", FL_MESSAGE_CODEC(codec));
47TEST(FlBasicMessageChannelTest, SendMessageWithResponse) {
48 g_autoptr(GMainLoop) loop = g_main_loop_new(
nullptr, 0);
53 [](FlMockBinaryMessenger* messenger, GTask* task,
FlValue*
message,
65 FL_BINARY_MESSENGER(messenger),
"test", FL_MESSAGE_CODEC(codec));
69 [](GObject*
object, GAsyncResult* result, gpointer
user_data) {
72 FL_BASIC_MESSAGE_CHANNEL(
object), result, &
error);
74 EXPECT_EQ(
error,
nullptr);
79 g_main_loop_quit(
static_cast<GMainLoop*
>(
user_data));
83 g_main_loop_run(loop);
87TEST(FlBasicMessageChannelTest, SendFailure) {
88 g_autoptr(GMainLoop) loop = g_main_loop_new(
nullptr, 0);
95 FL_BINARY_MESSENGER(messenger),
"test", FL_MESSAGE_CODEC(codec));
99 [](GObject*
object, GAsyncResult* result, gpointer
user_data) {
102 FL_BASIC_MESSAGE_CHANNEL(
object), result, &
error);
104 EXPECT_NE(
error,
nullptr);
105 EXPECT_EQ(
error->code, 42);
106 EXPECT_STREQ(
error->message,
"Error");
108 g_main_loop_quit(
static_cast<GMainLoop*
>(
user_data));
112 g_main_loop_run(loop);
116TEST(FlBasicMessageChannelTest, ReceiveMessage) {
121 g_autoptr(FlBasicMessageChannel) messages_channel =
123 FL_MESSAGE_CODEC(codec));
127 FlBasicMessageChannelResponseHandle* response_handle,
137 EXPECT_EQ(
error,
nullptr);
143 gboolean called = FALSE;
146 [](FlMockBinaryMessenger* messenger,
FlValue* response,
148 gboolean* called =
static_cast<gboolean*
>(
user_data);
151 EXPECT_NE(response,
nullptr);
161TEST(FlBasicMessageChannelTest, SendNullMessageWithResponse) {
162 g_autoptr(GMainLoop) loop = g_main_loop_new(
nullptr, 0);
167 [](FlMockBinaryMessenger* messenger, GTask* task,
FlValue*
message,
173 FL_BINARY_MESSENGER(messenger),
"test", FL_MESSAGE_CODEC(codec));
176 [](GObject*
object, GAsyncResult* result, gpointer
user_data) {
179 FL_BASIC_MESSAGE_CHANNEL(
object), result, &
error);
181 EXPECT_EQ(
error,
nullptr);
185 g_main_loop_quit(
static_cast<GMainLoop*
>(
user_data));
189 g_main_loop_run(loop);
193TEST(FlBasicMessageChannelTest, CustomType) {
194 g_autoptr(GMainLoop) loop = g_main_loop_new(
nullptr, 0);
199 [](FlMockBinaryMessenger* messenger, GTask* task,
FlValue*
message,
205 FL_BINARY_MESSENGER(messenger),
"test", FL_MESSAGE_CODEC(codec));
209 [](GObject*
object, GAsyncResult* result, gpointer
user_data) {
212 FL_BASIC_MESSAGE_CHANNEL(
object), result, &
error);
214 EXPECT_NE(
error,
nullptr);
215 EXPECT_STREQ(
error->message,
"Custom value not implemented");
217 g_main_loop_quit(
static_cast<GMainLoop*
>(
user_data));
221 g_main_loop_run(loop);
G_MODULE_EXPORT FlBasicMessageChannel * fl_basic_message_channel_new(FlBinaryMessenger *messenger, const gchar *name, FlMessageCodec *codec)
G_MODULE_EXPORT void fl_basic_message_channel_set_message_handler(FlBasicMessageChannel *self, FlBasicMessageChannelMessageHandler handler, gpointer user_data, GDestroyNotify destroy_notify)
G_MODULE_EXPORT gboolean fl_basic_message_channel_respond(FlBasicMessageChannel *self, FlBasicMessageChannelResponseHandle *response_handle, FlValue *message, GError **error)
G_MODULE_EXPORT FlValue * fl_basic_message_channel_send_finish(FlBasicMessageChannel *self, GAsyncResult *result, GError **error)
G_MODULE_EXPORT void fl_basic_message_channel_send(FlBasicMessageChannel *self, FlValue *message, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
TEST(FlBasicMessageChannelTest, SendMessageWithoutResponse)
g_autoptr(GMutexLocker) locker
void fl_mock_binary_messenger_set_error_channel(FlMockBinaryMessenger *self, const gchar *channel, gint code, const gchar *message)
void fl_mock_binary_messenger_send_standard_message(FlMockBinaryMessenger *self, const gchar *channel, FlValue *message, FlMockBinaryMessengerMessageCallback callback, gpointer user_data)
FlMockBinaryMessenger * fl_mock_binary_messenger_new()
void fl_mock_binary_messenger_set_standard_message_channel(FlMockBinaryMessenger *self, const gchar *channel, FlMockBinaryMessengerMessageChannelHandler handler, gpointer user_data)
G_BEGIN_DECLS GBytes * message
const uint8_t uint32_t uint32_t GError ** error
G_MODULE_EXPORT FlStandardMessageCodec * fl_standard_message_codec_new()
G_MODULE_EXPORT FlValue * fl_value_new_custom(int type, gconstpointer value, GDestroyNotify destroy_notify)
G_MODULE_EXPORT FlValueType fl_value_get_type(FlValue *self)
G_MODULE_EXPORT FlValue * fl_value_new_null()
G_MODULE_EXPORT FlValue * fl_value_new_string(const gchar *value)
G_MODULE_EXPORT const gchar * fl_value_get_string(FlValue *self)
typedefG_BEGIN_DECLS struct _FlValue FlValue