EasyCSV/tests/check_easycsv.c

127 lines
2.9 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_1)
{
easycsv *csv = NULL;
csv = easycsv_init(SAMPLE1_PATH, EASYCSV_R);
ck_assert_ptr_nonnull(csv);
easycsv_free(csv);
}
START_TEST(test_easycsv_init_read_2)
{
easycsv *csv = NULL;
csv = easycsv_init(SAMPLE2_PATH, EASYCSV_R);
ck_assert_ptr_null(csv);
easycsv_free(csv);
}
START_TEST(test_easycsv_init_write_1)
{
easycsv *csv = NULL;
csv = easycsv_init(SAMPLE1_PATH, EASYCSV_W);
ck_assert_ptr_nonnull(csv);
easycsv_free(csv);
}
START_TEST(test_easycsv_init_write_2)
{
easycsv *csv = NULL;
csv = easycsv_init(SAMPLE2_PATH, EASYCSV_W);
ck_assert_ptr_nonnull(csv);
easycsv_free(csv);
}
Suite*
easycsv_constructor_suite(void)
{
Suite *s;
TCase *tc_read, *tc_write;
s = suite_create ("constructor");
tc_read = tcase_create ("read mode");
tc_write = tcase_create ("write mode");
tcase_add_test(tc_read, test_easycsv_init_read_1);
tcase_add_test(tc_read, test_easycsv_init_read_2);
tcase_add_test(tc_write, test_easycsv_init_write_1);
tcase_add_test(tc_write, test_easycsv_init_write_2);
suite_add_tcase(s, tc_read);
//suite_add_tcase(s, tc_write);
return s;
}
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_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;
}