コード例 #1
0
ファイル: check_event.c プロジェクト: Maluuba/c-cometd-client
END_TEST

START_TEST (test_cometd_listener_fire_exact_matches_first)
{
  handler_data = NULL;

  cometd_listener_add(listeners, "/foo/*", handler1);
  cometd_listener_add(listeners, "/**", handler1);
  cometd_listener_add(listeners, "/foo/bar", handler2);

  cometd_listener_fire(listeners, "/foo/bar", NULL, NULL);
  ck_assert_str_eq("two", g_list_nth_data(handler_data, 0));
  ck_assert_str_eq("one", g_list_nth_data(handler_data, 1));
  ck_assert_str_eq("one", g_list_nth_data(handler_data, 2));
}
コード例 #2
0
ファイル: event.c プロジェクト: GhostGumm/CarbonComet
cometd_subscription*
cometd_add_listener(const cometd* h,
                    char * channel,
                    cometd_callback cb)
{
  return cometd_listener_add(h->subscriptions, channel, cb);
}
コード例 #3
0
ファイル: check_event.c プロジェクト: Maluuba/c-cometd-client
END_TEST

START_TEST (test_cometd_listener_fire_with_wildcards)
{
  JsonNode* message = cometd_json_str2node("{}");

  cometd_subscription *s1, *s2;

  s1 = cometd_listener_add(listeners, "/foo/**", log_handler);
  s2 = cometd_listener_add(listeners, "/quux/*", log_handler);

  cometd_listener_fire(listeners, "/foo/bar/baz", NULL, message);
  ck_assert_int_eq(1, log_size());
  cometd_listener_fire(listeners, "/quux/wat/wut", NULL, message);
  ck_assert_int_eq(1, log_size());
  cometd_listener_fire(listeners, "/quux/wat", NULL, message);
  ck_assert_int_eq(2, log_size());

  json_node_free(message);
}
コード例 #4
0
ファイル: check_event.c プロジェクト: Maluuba/c-cometd-client
END_TEST

START_TEST (test_cometd_listener_get)
{
  cometd_subscription *s1, *s2, *s3, *s4;

  s1 = cometd_listener_add(listeners, "/foo/*", test_empty_handler);
  s2 = cometd_listener_add(listeners, "/**", test_empty_handler);
  s3 = cometd_listener_add(listeners, "/foo/bar/baz/*", test_empty_handler);
  s4 = cometd_listener_add(listeners, "/foo/bar/baz/bang", test_empty_handler);

  GList* subscriptions = cometd_listener_get(listeners, "/foo/bar/baz/bang");

  fail_if(subscriptions == NULL);
  ck_assert_int_eq(3, g_list_length(subscriptions));

  fail_if(g_list_find(subscriptions, s2) == NULL);
  fail_if(g_list_find(subscriptions, s3) == NULL);
  fail_if(g_list_find(subscriptions, s4) == NULL);

  g_list_free(subscriptions);
}