6#include "gtest/gtest.h"
14TEST(FlEventChannelTest, Listen) {
18 FL_BINARY_MESSENGER(messenger),
"test", FL_METHOD_CODEC(codec));
24 return static_cast<FlMethodErrorResponse*
>(
nullptr);
26 nullptr,
nullptr,
nullptr);
28 gboolean called = FALSE;
30 messenger,
"test",
"listen",
nullptr,
31 [](FlMockBinaryMessenger* messenger, FlMethodResponse* response,
33 gboolean* called =
static_cast<gboolean*
>(
user_data);
36 EXPECT_TRUE(FL_IS_METHOD_SUCCESS_RESPONSE(response));
38 FL_METHOD_SUCCESS_RESPONSE(response));
46TEST(FlEventChannelTest, ListenException) {
50 FL_BINARY_MESSENGER(messenger),
"test", FL_METHOD_CODEC(codec));
55 "LISTEN-ERROR-MESSAGE",
nullptr);
57 nullptr,
nullptr,
nullptr);
59 gboolean called = FALSE;
61 messenger,
"test",
"listen",
nullptr,
62 [](FlMockBinaryMessenger* messenger, FlMethodResponse* response,
64 gboolean* called =
static_cast<gboolean*
>(
user_data);
67 EXPECT_TRUE(FL_IS_METHOD_ERROR_RESPONSE(response));
69 FL_METHOD_ERROR_RESPONSE(response)),
72 FL_METHOD_ERROR_RESPONSE(response)),
73 "LISTEN-ERROR-MESSAGE");
80TEST(FlEventChannelTest, Cancel) {
84 FL_BINARY_MESSENGER(messenger),
"test", FL_METHOD_CODEC(codec));
90 return static_cast<FlMethodErrorResponse*
>(
nullptr);
95 messenger,
"test",
"listen",
nullptr,
96 [](FlMockBinaryMessenger* messenger, FlMethodResponse* response,
99 gboolean called = FALSE;
101 messenger,
"test",
"cancel",
nullptr,
102 [](FlMockBinaryMessenger* messenger, FlMethodResponse* response,
104 gboolean* called =
static_cast<gboolean*
>(
user_data);
107 EXPECT_TRUE(FL_IS_METHOD_SUCCESS_RESPONSE(response));
109 FL_METHOD_SUCCESS_RESPONSE(response));
117TEST(FlEventChannelTest, CancelException) {
121 FL_BINARY_MESSENGER(messenger),
"test", FL_METHOD_CODEC(codec));
126 "CANCEL-ERROR-MESSAGE",
nullptr);
131 messenger,
"test",
"listen",
nullptr,
132 [](FlMockBinaryMessenger* messenger, FlMethodResponse* response,
135 gboolean called = FALSE;
137 messenger,
"test",
"cancel",
nullptr,
138 [](FlMockBinaryMessenger* messenger, FlMethodResponse* response,
140 gboolean* called =
static_cast<gboolean*
>(
user_data);
143 EXPECT_TRUE(FL_IS_METHOD_ERROR_RESPONSE(response));
145 FL_METHOD_ERROR_RESPONSE(response)),
148 FL_METHOD_ERROR_RESPONSE(response)),
149 "CANCEL-ERROR-MESSAGE");
156TEST(FlEventChannelTest, Args) {
160 FL_BINARY_MESSENGER(messenger),
"test", FL_METHOD_CODEC(codec));
165 int* call_count =
static_cast<int*
>(
user_data);
166 EXPECT_EQ(*call_count, 0);
172 return static_cast<FlMethodErrorResponse*
>(
nullptr);
175 int* call_count =
static_cast<int*
>(
user_data);
176 EXPECT_EQ(*call_count, 1);
182 return static_cast<FlMethodErrorResponse*
>(
nullptr);
184 &call_count,
nullptr);
188 messenger,
"test",
"listen", listen_args,
189 [](FlMockBinaryMessenger* messenger, FlMethodResponse* response,
194 messenger,
"test",
"cancel", cancel_args,
195 [](FlMockBinaryMessenger* messenger, FlMethodResponse* response,
199 EXPECT_EQ(call_count, 2);
203TEST(FlEventChannelTest, SendEvents) {
209 int* event_count =
static_cast<int*
>(
user_data);
216 [](FlMockBinaryMessenger* messenger,
const gchar* code,
222 FL_BINARY_MESSENGER(messenger),
"test", FL_METHOD_CODEC(codec));
227 for (
int i = 0;
i < 5;
i++) {
231 EXPECT_EQ(
error,
nullptr);
234 return static_cast<FlMethodErrorResponse*
>(
nullptr);
236 nullptr,
nullptr,
nullptr);
239 messenger,
"test",
"listen",
nullptr,
240 [](FlMockBinaryMessenger* messenger, FlMethodResponse* response,
244 messenger,
"test",
"cancel",
nullptr,
245 [](FlMockBinaryMessenger* messenger, FlMethodResponse* response,
249 EXPECT_EQ(event_count, 5);
254TEST(FlEventChannelTest, ReuseChannel) {
260 int* event_count =
static_cast<int*
>(
user_data);
267 [](FlMockBinaryMessenger* messenger,
const gchar* code,
273 FL_BINARY_MESSENGER(messenger),
"test", FL_METHOD_CODEC(codec));
278 for (
int i = 0;
i < 5;
i++) {
282 EXPECT_EQ(
error,
nullptr);
285 return static_cast<FlMethodErrorResponse*
>(
nullptr);
287 nullptr,
nullptr,
nullptr);
290 g_object_unref(channel1);
294 FL_BINARY_MESSENGER(messenger),
"test", FL_METHOD_CODEC(codec));
299 for (
int i = 0;
i < 5;
i++) {
303 EXPECT_EQ(
error,
nullptr);
306 return static_cast<FlMethodErrorResponse*
>(
nullptr);
308 nullptr,
nullptr,
nullptr);
311 messenger,
"test",
"listen",
nullptr,
312 [](FlMockBinaryMessenger* messenger, FlMethodResponse* response,
316 messenger,
"test",
"cancel",
nullptr,
317 [](FlMockBinaryMessenger* messenger, FlMethodResponse* response,
321 EXPECT_EQ(event_count, 5);
325TEST(FlEventChannelTest, ReplaceChannel) {
331 int* event_count =
static_cast<int*
>(
user_data);
338 [](FlMockBinaryMessenger* messenger,
const gchar* code,
344 FL_BINARY_MESSENGER(messenger),
"test", FL_METHOD_CODEC(codec));
349 for (
int i = 0;
i < 5;
i++) {
353 EXPECT_EQ(
error,
nullptr);
356 return static_cast<FlMethodErrorResponse*
>(
nullptr);
358 nullptr,
nullptr,
nullptr);
362 FL_BINARY_MESSENGER(messenger),
"test", FL_METHOD_CODEC(codec));
367 for (
int i = 0;
i < 5;
i++) {
371 EXPECT_EQ(
error,
nullptr);
374 return static_cast<FlMethodErrorResponse*
>(
nullptr);
376 nullptr,
nullptr,
nullptr);
379 messenger,
"test",
"listen",
nullptr,
380 [](FlMockBinaryMessenger* messenger, FlMethodResponse* response,
384 messenger,
"test",
"cancel",
nullptr,
385 [](FlMockBinaryMessenger* messenger, FlMethodResponse* response,
389 EXPECT_EQ(event_count, 5);
g_autoptr(GMutexLocker) locker
G_MODULE_EXPORT gboolean fl_event_channel_send(FlEventChannel *self, FlValue *event, GCancellable *cancellable, GError **error)
G_MODULE_EXPORT void fl_event_channel_set_stream_handlers(FlEventChannel *self, FlEventChannelHandler listen_handler, FlEventChannelHandler cancel_handler, gpointer user_data, GDestroyNotify destroy_notify)
G_MODULE_EXPORT FlEventChannel * fl_event_channel_new(FlBinaryMessenger *messenger, const gchar *name, FlMethodCodec *codec)
G_BEGIN_DECLS G_MODULE_EXPORT FlValue * args
TEST(FlEventChannelTest, Listen)
G_MODULE_EXPORT FlValue * fl_method_success_response_get_result(FlMethodSuccessResponse *self)
G_MODULE_EXPORT FlMethodErrorResponse * fl_method_error_response_new(const gchar *code, const gchar *message, FlValue *details)
G_MODULE_EXPORT const gchar * fl_method_error_response_get_message(FlMethodErrorResponse *self)
G_MODULE_EXPORT const gchar * fl_method_error_response_get_code(FlMethodErrorResponse *self)
void fl_mock_binary_messenger_invoke_standard_method(FlMockBinaryMessenger *self, const gchar *channel, const char *name, FlValue *args, FlMockBinaryMessengerMethodCallback callback, gpointer user_data)
void fl_mock_binary_messenger_set_standard_event_channel(FlMockBinaryMessenger *self, const gchar *channel, FlMockBinaryMessengerEventChannelHandler handler, FlMockBinaryMessengerEventChannelErrorHandler error_handler, gpointer user_data)
FlMockBinaryMessenger * fl_mock_binary_messenger_new()
G_BEGIN_DECLS GBytes * message
const uint8_t uint32_t uint32_t GError ** error
G_MODULE_EXPORT FlStandardMethodCodec * fl_standard_method_codec_new()
G_MODULE_EXPORT int64_t fl_value_get_int(FlValue *self)
G_MODULE_EXPORT FlValueType fl_value_get_type(FlValue *self)
G_MODULE_EXPORT FlValue * fl_value_new_string(const gchar *value)
G_MODULE_EXPORT FlValue * fl_value_new_int(int64_t value)
G_MODULE_EXPORT bool fl_value_equal(FlValue *a, FlValue *b)
typedefG_BEGIN_DECLS struct _FlValue FlValue