Skip to content

Commit 6713aa6

Browse files
committed
rftles: Add tests for CSV loading
Signed-off-by: Martin Herren (HB9FXX) <cq@hb9fxx.ch>
1 parent 6758412 commit 6713aa6

1 file changed

Lines changed: 78 additions & 1 deletion

File tree

tests/tests_rftles.c

Lines changed: 78 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,42 @@ int setup_alpha5(void **state) {
5757
return 0;
5858
}
5959

60+
int setup_csv_nonexistent(void **state) {
61+
tle_array_t * tle_array = load_tles_from_csv("tests/data/nonexistent.csv");
62+
63+
if (tle_array == NULL) {
64+
return -1;
65+
}
66+
67+
*state = tle_array;
68+
69+
return 0;
70+
}
71+
72+
int setup_csv_empty(void **state) {
73+
tle_array_t * tle_array = load_tles_from_csv("tests/data/empty.csv");
74+
75+
if (tle_array == NULL) {
76+
return -1;
77+
}
78+
79+
*state = tle_array;
80+
81+
return 0;
82+
}
83+
84+
int setup_csv(void **state) {
85+
tle_array_t * tle_array = load_tles_from_csv("tests/data/catalog.csv");
86+
87+
if (tle_array == NULL) {
88+
return -1;
89+
}
90+
91+
*state = tle_array;
92+
93+
return 0;
94+
}
95+
6096
int teardown(void **state) {
6197
free_tles(*state);
6298

@@ -247,7 +283,45 @@ void TLE_decode_alpha5_designation(void **state) {
247283

248284
assert_string_equal(tle->orbit.desig, "98067A");
249285
assert_int_equal(tle->orbit.satno, 339999);
286+
}
287+
288+
void TLE_load_csv_nonexistent_file(void **state) {
289+
tle_array_t tle_array = **(tle_array_t **)state;
290+
291+
assert_null(tle_array.tles);
292+
assert_int_equal(tle_array.number_of_elements, 0);
293+
}
294+
295+
void TLE_load_csv_empty_file(void **state) {
296+
tle_array_t tle_array = **(tle_array_t **)state;
297+
298+
assert_null(tle_array.tles);
299+
assert_int_equal(tle_array.number_of_elements, 0);
300+
}
301+
302+
void TLE_load_csv(void **state) {
303+
tle_array_t tle_array = **(tle_array_t **)state;
304+
305+
assert_non_null(tle_array.tles);
306+
assert_int_equal(tle_array.number_of_elements, 2);
307+
308+
// 1st element, 00005 - VANGUARD 1
309+
tle_t * tle = get_tle_by_catalog_id(&tle_array, 5);
310+
311+
assert_non_null(tle->name);
312+
assert_string_equal(tle->name, "VANGUARD 1");
313+
314+
assert_string_equal(tle->orbit.desig, "58002B");
315+
assert_int_equal(tle->orbit.satno, 5);
316+
317+
// 2nd element, 00011 - VANGUARD 2
318+
tle = get_tle_by_catalog_id(&tle_array, 11);
319+
320+
assert_non_null(tle->name);
321+
assert_string_equal(tle->name, "VANGUARD 2");
250322

323+
assert_string_equal(tle->orbit.desig, "59001A");
324+
assert_int_equal(tle->orbit.satno, 11);
251325
}
252326

253327
// Entry point to run all tests
@@ -259,7 +333,10 @@ int run_tle_tests() {
259333
cmocka_unit_test_setup_teardown(TLE_load_index_from_file, setup, teardown),
260334
cmocka_unit_test_setup_teardown(TLE_load_invalid_catalog_id_from_file, setup, teardown),
261335
cmocka_unit_test_setup_teardown(TLE_load_catalog_id_from_file, setup, teardown),
262-
cmocka_unit_test_setup_teardown(TLE_decode_alpha5_designation, setup_alpha5, teardown),
336+
cmocka_unit_test_setup_teardown(TLE_decode_alpha5_designation, setup_alpha5, teardown),
337+
cmocka_unit_test_setup_teardown(TLE_load_csv_nonexistent_file, setup_csv_nonexistent, teardown),
338+
cmocka_unit_test_setup_teardown(TLE_load_csv_empty_file, setup_csv_empty, teardown),
339+
cmocka_unit_test_setup_teardown(TLE_load_csv, setup_csv, teardown),
263340
};
264341

265342
return cmocka_run_group_tests_name("TLE", tests, NULL, NULL);

0 commit comments

Comments
 (0)