END_TEST START_TEST (test_cometd_process_connect_takes_advice_when_it_exists) { cometd_conn* conn = g_instance->conn; cometd_conn_set_client_id(conn, "testid"); cometd_conn_set_transport(conn, &TEST_TRANSPORT); // set advice JsonNode* msg = cometd_msg_connect_new(g_instance); cometd_advice* advice = cometd_advice_new(); cometd_msg_set_advice(msg, advice); cometd_process_connect(g_instance, msg); // no advice JsonNode* bad_connect = cometd_msg_bad_connect_new(g_instance); cometd_process_connect(g_instance, bad_connect); // assert advice exists fail_unless(cometd_conn_advice(conn)->reconnect == COMETD_RECONNECT_NONE); cometd_advice_destroy(advice); json_node_free(msg); json_node_free(bad_connect); }
JsonNode* cometd_recv(const cometd* h) { JsonNode *payload = NULL; cometd_transport* transport = NULL; transport = cometd_current_transport(h); g_assert(transport != NULL); payload = transport->recv(h); if (payload == NULL) payload = cometd_msg_wrap(cometd_msg_bad_connect_new(h)); return payload; }
END_TEST START_TEST (test_cometd_msg_bad_connect_new) { cometd* h = cometd_new(); cometd_conn* conn = h->conn; cometd_conn_set_client_id(conn, "testid"); cometd_conn_set_transport(conn, &TEST_TRANSPORT); JsonNode* msg = cometd_msg_bad_connect_new(h); JsonObject* obj = json_node_get_object(msg); const gboolean successful = json_object_get_boolean_member(obj, COMETD_MSG_SUCCESSFUL_FIELD); fail_if(successful); json_node_free(msg); cometd_destroy(h); }