diff options
Diffstat (limited to 'dbfp_check.c')
-rw-r--r-- | dbfp_check.c | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/dbfp_check.c b/dbfp_check.c index 35daaef..067918f 100644 --- a/dbfp_check.c +++ b/dbfp_check.c @@ -5,10 +5,13 @@ */ #include <check.h> +#include <stdio.h> #include <stdlib.h> #include "dbfp.h" +static char *api_key; + START_TEST(test_dbfp_create) { struct dbfp dbfp; @@ -21,20 +24,82 @@ START_TEST(test_dbfp_create) } 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); |