112 lines
2.6 KiB
C
112 lines
2.6 KiB
C
|
#include <check.h>
|
||
|
#include "../src/easycsv.h"
|
||
|
|
||
|
static const char SAMPLE1_PATH[] = "samples/1.csv";
|
||
|
static const char SAMPLE2_PATH[] = "samples/2.csv";
|
||
|
|
||
|
START_TEST(test_easycsv_init_read)
|
||
|
{
|
||
|
easycsv *csv = NULL;
|
||
|
csv = easycsv_init(SAMPLE1_PATH, EASYCSV_R);
|
||
|
ck_assert_ptr_nonnull(csv);
|
||
|
easycsv_free(csv);
|
||
|
csv = easycsv_init(SAMPLE2_PATH, EASYCSV_R);
|
||
|
ck_assert_ptr_nonnull(csv);
|
||
|
easycsv_free(csv);
|
||
|
}
|
||
|
|
||
|
START_TEST(test_easycsv_init_write)
|
||
|
{
|
||
|
easycsv *csv = NULL;
|
||
|
csv = easycsv_init(SAMPLE1_PATH, EASYCSV_W);
|
||
|
ck_assert_ptr_nonnull(csv);
|
||
|
easycsv_free(csv);
|
||
|
csv = easycsv_init(SAMPLE2_PATH, EASYCSV_W);
|
||
|
ck_assert_ptr_nonnull(csv);
|
||
|
easycsv_free(csv);
|
||
|
}
|
||
|
|
||
|
START_TEST(test_easycsv_printcolumns)
|
||
|
{
|
||
|
easycsv *csv = easycsv_init(SAMPLE1_PATH, EASYCSV_R);
|
||
|
ck_assert_int_eq(easycsv_printcolumns(csv), 3);
|
||
|
easycsv_free(csv);
|
||
|
}
|
||
|
|
||
|
START_TEST(test_easycsv_printrows)
|
||
|
{
|
||
|
easycsv *csv = easycsv_init(SAMPLE1_PATH, EASYCSV_R);
|
||
|
ck_assert_int_eq(easycsv_printrows(csv), 5);
|
||
|
easycsv_free(csv);
|
||
|
}
|
||
|
|
||
|
START_TEST(test_easycsv_readcolumnvalue)
|
||
|
{
|
||
|
easycsv *csv = easycsv_init(SAMPLE1_PATH, EASYCSV_R);
|
||
|
ck_assert_str_eq(easycsv_readcolumnvalue(csv, "TEST1", 1), "FILEPATHA1");
|
||
|
ck_assert_str_eq(easycsv_readcolumnvalue(csv, "TEST1", 2), "FILEPATHB1");
|
||
|
ck_assert_str_eq(easycsv_readcolumnvalue(csv, "TEST1", 3), NULL);
|
||
|
ck_assert_str_eq(easycsv_readcolumnvalue(csv, "TEST2", 1), "FILEPATHA2");
|
||
|
easycsv_free(csv);
|
||
|
}
|
||
|
|
||
|
Suite*
|
||
|
easycsv_constructor_suite(void)
|
||
|
{
|
||
|
Suite *s;
|
||
|
TCase *tc_init;
|
||
|
|
||
|
s = suite_create ("constructor");
|
||
|
tc_init = tcase_create ("basic constructor");
|
||
|
|
||
|
tcase_add_test(tc_init, test_easycsv_init_read);
|
||
|
tcase_add_test(tc_init, test_easycsv_init_write);
|
||
|
suite_add_tcase(s, tc_init);
|
||
|
|
||
|
return s;
|
||
|
}
|
||
|
|
||
|
Suite*
|
||
|
easycsv_print_suite(void)
|
||
|
{
|
||
|
Suite *s;
|
||
|
TCase *tc_col, *tc_row;
|
||
|
s = suite_create ("print");
|
||
|
tc_col = tcase_create ("columns");
|
||
|
tc_row = tcase_create ("rows");
|
||
|
tcase_add_test(tc_col, test_easycsv_printcolumns);
|
||
|
tcase_add_test(tc_row, test_easycsv_printrows);
|
||
|
suite_add_tcase(s, tc_col);
|
||
|
suite_add_tcase(s, tc_row);
|
||
|
|
||
|
return s;
|
||
|
}
|
||
|
|
||
|
Suite*
|
||
|
easycsv_read_suite(void)
|
||
|
{
|
||
|
Suite *s;
|
||
|
TCase *tc_readcolumnvalue;
|
||
|
s = suite_create ("read");
|
||
|
tc_readcolumnvalue = tcase_create ("readcolumnvalue");
|
||
|
tcase_add_test(tc_readcolumnvalue, test_easycsv_readcolumnvalue);
|
||
|
|
||
|
return s;
|
||
|
}
|
||
|
|
||
|
int
|
||
|
main(void)
|
||
|
{
|
||
|
int number_failed;
|
||
|
SRunner *sr;
|
||
|
|
||
|
sr = srunner_create(easycsv_constructor_suite());
|
||
|
srunner_add_suite(sr, easycsv_print_suite());
|
||
|
srunner_add_suite(sr, easycsv_read_suite());
|
||
|
|
||
|
srunner_run_all(sr, CK_VERBOSE);
|
||
|
number_failed = srunner_ntests_failed(sr);
|
||
|
srunner_free(sr);
|
||
|
return number_failed;
|
||
|
}
|