tests: unit: add 'csv' tests

Simple tests for a simple library.
This commit is contained in:
Bruno BELANYI 2022-03-12 00:08:38 +01:00
parent 9d862c6a62
commit 697f941cb2
3 changed files with 43 additions and 9 deletions

View file

@ -3,13 +3,14 @@ find_package(GTest)
if (${GTest_FOUND})
include(GoogleTest)
add_executable(base_test base.cc)
target_link_libraries(base_test PRIVATE common_options)
add_executable(csv_test csv.cc)
target_link_libraries(csv_test PRIVATE common_options)
target_link_libraries(base_test PRIVATE
target_link_libraries(csv_test PRIVATE
csv
GTest::gtest
GTest::gtest_main
)
gtest_discover_tests(base_test)
gtest_discover_tests(csv_test)
endif (${GTest_FOUND})

View file

@ -1,5 +0,0 @@
#include <gtest/gtest.h>
TEST(misc, passing) {
ASSERT_EQ(1, 1);
}

38
tests/unit/csv.cc Normal file
View file

@ -0,0 +1,38 @@
#include <gtest/gtest.h>
#include "csv/read-csv.hh"
// Allow namespace pollution in tests for convenience
using namespace kraken::csv;
TEST(csv, empty) {
auto const expected = csv_type{};
ASSERT_EQ(read_csv(""), expected);
}
TEST(csv, skip_header) {
auto const expected = csv_type{};
ASSERT_EQ(read_csv("a,b,c"), expected);
}
TEST(csv, do_not_skip_header) {
auto const expected = csv_type{
{"a", "b", "c"},
};
ASSERT_EQ(read_csv("a,b,c", CsvHeader::KEEP), expected);
}
TEST(csv, single_line) {
auto const expected = csv_type{
{"1", "2", "3"},
};
ASSERT_EQ(read_csv("a,b,c\n1,2,3"), expected);
}
TEST(csv, single_line_with_header) {
auto const expected = csv_type{
{"a", "b", "c"},
{"1", "2", "3"},
};
ASSERT_EQ(read_csv("a,b,c\n1,2,3", CsvHeader::KEEP), expected);
}