/* * Copyright (C) 2016 Robin Krahl * * dbfp_check.c */ #include #include #include #include "dbfp.h" static char *api_key; START_TEST(test_dbfp_create) { struct dbfp dbfp; int err; err = dbfp_init(&dbfp, "test-key"); ck_assert_int_eq(err, 0); ck_assert_str_eq(dbfp.key, "test-key"); dbfp_close(&dbfp); } END_TEST START_TEST(test_dbfp_access) { struct dbfp dbfp; struct dbfp_status status; int err; err = dbfp_init(&dbfp, api_key); ck_assert_int_eq(err, 0); status = dbfp_query_location_name(&dbfp, "", NULL, NULL); ck_assert_int_eq(status.error, 0); ck_assert_int_eq(status.run_error, 0); ck_assert_int_eq(status.parse_error, 0); ck_assert_int_eq(status.curl_error, 0); ck_assert_int_eq(status.api_error, 0); dbfp_close(&dbfp); } END_TEST START_TEST(test_dbfp_location_simple) { struct dbfp dbfp; struct dbfp_status status; int err; size_t n; struct dbfp_location *locs = NULL; err = dbfp_init(&dbfp, api_key); ck_assert_int_eq(err, 0); status = dbfp_query_location_name(&dbfp, "freiburg", &n, &locs); ck_assert_int_eq(status.error, 0); ck_assert_int_eq(status.run_error, 0); ck_assert_int_eq(status.parse_error, 0); ck_assert_int_eq(status.curl_error, 0); ck_assert_int_eq(status.api_error, 0); ck_assert_int_gt(n, 0); ck_assert_ptr_ne(locs, NULL); ck_assert_str_eq(locs[0].name, "Freiburg(Breisgau) Hbf"); ck_assert_str_eq(locs[0].id, "008000107"); free(locs); dbfp_close(&dbfp); } END_TEST int main(int argc, char **argv) { int num_failed = 0; Suite *s; SRunner *sr; TCase *tc_basic; TCase *tc_location; api_key = getenv("DBFP_API_KEY"); if (!api_key) { fprintf(stderr, "DBFP_API_KEY not set\n"); return EXIT_FAILURE; } s = suite_create("dbfp"); sr = srunner_create(s); tc_basic = tcase_create("basic"); tcase_add_test(tc_basic, test_dbfp_create); tcase_add_test(tc_basic, test_dbfp_access); suite_add_tcase(s, tc_basic); tc_location = tcase_create("location"); tcase_add_test(tc_location, test_dbfp_location_simple); suite_add_tcase(s, tc_location); srunner_run_all(sr, CK_ENV); num_failed = srunner_ntests_failed(sr); srunner_free(sr); return (num_failed == 0) ? EXIT_SUCCESS : EXIT_FAILURE; }