void test_add_message_3() { topic_before_test(); int ret; struct list topics; struct list messages; struct message *msg; struct list *stats; struct msg_statistics *msgstats; struct subscriber sub1 = {&c1, "hans"}; struct subscriber sub2 = {&c2, "jakob"}; list_init(&topics); list_init(&messages); topic_add_subscriber(&topics, "stocks", &sub1); topic_add_subscriber(&topics, "stocks", &sub2); // two messages ret = topic_add_message(&topics, &messages, "stocks", "price: 33"); ret = topic_add_message(&topics, &messages, "stocks", "price: 34"); CU_ASSERT_EQUAL_FATAL(0, ret); CU_ASSERT_EQUAL_FATAL(2, list_len(&messages)); // first msg msg = message_find_by_content(&messages, "price: 33"); CU_ASSERT_PTR_NOT_NULL_FATAL(msg); CU_ASSERT_STRING_EQUAL_FATAL("stocks", msg->topicname); stats = msg->stats; CU_ASSERT_EQUAL_FATAL(2, list_len(stats)); msgstats = stats->root->entry; CU_ASSERT_EQUAL_FATAL(0, msgstats->last_fail); CU_ASSERT_EQUAL_FATAL(0, msgstats->nattempts); CU_ASSERT_EQUAL_FATAL(&sub1, msgstats->subscriber); msgstats = stats->root->next->entry; CU_ASSERT_EQUAL_FATAL(0, msgstats->last_fail); CU_ASSERT_EQUAL_FATAL(0, msgstats->nattempts); CU_ASSERT_EQUAL_FATAL(&sub2, msgstats->subscriber); // second msg msg = message_find_by_content(&messages, "price: 34"); CU_ASSERT_PTR_NOT_NULL_FATAL(msg); CU_ASSERT_STRING_EQUAL_FATAL("stocks", msg->topicname); stats = msg->stats; CU_ASSERT_EQUAL_FATAL(2, list_len(stats)); msgstats = stats->root->entry; CU_ASSERT_EQUAL_FATAL(0, msgstats->last_fail); CU_ASSERT_EQUAL_FATAL(0, msgstats->nattempts); CU_ASSERT_EQUAL_FATAL(&sub1, msgstats->subscriber); msgstats = stats->root->next->entry; CU_ASSERT_EQUAL_FATAL(0, msgstats->last_fail); CU_ASSERT_EQUAL_FATAL(0, msgstats->nattempts); CU_ASSERT_EQUAL_FATAL(&sub2, msgstats->subscriber); topic_after_test(); }
void test_topic_strerror() { char buf[32]; topic_strerror(TOPIC_NOT_FOUND, buf); CU_ASSERT_STRING_EQUAL_FATAL("TOPIC_NOT_FOUND", buf); topic_strerror(TOPIC_NO_SUBSCRIBERS, buf); CU_ASSERT_STRING_EQUAL_FATAL("TOPIC_NO_SUBSCRIBERS", buf); topic_strerror(-1, buf); CU_ASSERT_STRING_EQUAL_FATAL("UNKNOWN_ERROR", buf); }
void testCheckDuplicates2(void) { bson b, b2; bson_iterator it, sit; bson_type bt; bson_init(&b); bson_append_start_array(&b, "array"); bson_append_int(&b, "0", 1); bson_append_finish_array(&b); bson_append_start_array(&b, "array"); bson_append_int(&b, "0", 3); bson_append_int(&b, "1", 4); bson_append_finish_array(&b); bson_finish(&b); CU_ASSERT_FALSE_FATAL(b.err); CU_ASSERT_TRUE_FATAL(bson_check_duplicate_keys(&b)); bson_init(&b2); bson_fix_duplicate_keys(&b, &b2); bson_finish(&b2); CU_ASSERT_FALSE_FATAL(b2.err); CU_ASSERT_FALSE_FATAL(bson_check_duplicate_keys(&b2)); BSON_ITERATOR_INIT(&it, &b2); bt = bson_iterator_next(&it); CU_ASSERT_EQUAL_FATAL(bt, BSON_ARRAY); CU_ASSERT_STRING_EQUAL_FATAL(BSON_ITERATOR_KEY(&it), "array"); BSON_ITERATOR_SUBITERATOR(&it, &sit); bt = bson_iterator_next(&sit); CU_ASSERT_STRING_EQUAL_FATAL(BSON_ITERATOR_KEY(&sit), "0"); CU_ASSERT_TRUE_FATAL(BSON_IS_NUM_TYPE(bt)); CU_ASSERT_EQUAL_FATAL(bson_iterator_int(&sit), 1); bt = bson_iterator_next(&sit); CU_ASSERT_STRING_EQUAL_FATAL(BSON_ITERATOR_KEY(&sit), "1"); CU_ASSERT_TRUE_FATAL(BSON_IS_NUM_TYPE(bt)); CU_ASSERT_EQUAL_FATAL(bson_iterator_int(&sit), 3); bt = bson_iterator_next(&sit); CU_ASSERT_STRING_EQUAL_FATAL(BSON_ITERATOR_KEY(&sit), "2"); CU_ASSERT_TRUE_FATAL(BSON_IS_NUM_TYPE(bt)); CU_ASSERT_EQUAL_FATAL(bson_iterator_int(&sit), 4); bt = bson_iterator_next(&sit); CU_ASSERT_EQUAL_FATAL(bt, BSON_EOO); bson_destroy(&b2); bson_destroy(&b); }
void testMY_STRDUP(void){ char* str; if(temp_file != NULL){ str = my_strdup("testing"); CU_ASSERT_STRING_EQUAL_FATAL(str, "testing"); free(str); str = my_strdup(NULL); CU_ASSERT_FATAL(str == NULL); } }
/** * Database query stub */ static int db_query(const char *query, void *UNUSED(cb), void *UNUSED(userdata)) { ++db_query_called; if (!query || !strlen(query)) return 1; /* Check the query */ if (expected_query) CU_ASSERT_STRING_EQUAL_FATAL(query, expected_query); return 0; }