Skip to content

Commit be65300

Browse files
committed
Unit tests for OptionStringList::get_value_string and to_string
The primary tests call get_value_string, which provides implicit coverage for the internally called to_string method.
1 parent 16db702 commit be65300

File tree

2 files changed

+32
-0
lines changed

2 files changed

+32
-0
lines changed

test/libdnf5/conf/test_option.cpp

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -494,6 +494,34 @@ void OptionTest::test_options_string_list_custom_delimiters() {
494494
CPPUNIT_ASSERT_EQUAL((std::vector<std::string>{"Dfirstx", "DsecondX"}), option3.get_value());
495495
}
496496

497+
void OptionTest::test_options_string_list_to_string() {
498+
OptionStringList option(std::vector<std::string>{"Dfirstx", "DsecondX"});
499+
CPPUNIT_ASSERT_EQUAL(std::string{"Dfirstx,DsecondX"}, option.get_value_string());
500+
501+
option.set(Option::Priority::RUNTIME, std::vector<std::string>{" ", "DsecondX"});
502+
CPPUNIT_ASSERT_EQUAL(std::string{"\\ ,DsecondX"}, option.get_value_string());
503+
504+
option.set(Option::Priority::RUNTIME, std::vector<std::string>{"asdasd", " ", "DsecondX"});
505+
CPPUNIT_ASSERT_EQUAL(std::string{"asdasd,\\ ,DsecondX"}, option.get_value_string());
506+
507+
option.set(Option::Priority::RUNTIME, std::vector<std::string>{"asdasd", ",", "\\DsecondX"});
508+
CPPUNIT_ASSERT_EQUAL(std::string{"asdasd,\\,,\\\\DsecondX"}, option.get_value_string());
509+
510+
option.set(Option::Priority::RUNTIME, std::vector<std::string>{" asdasd, ", "DsecondX"});
511+
CPPUNIT_ASSERT_EQUAL(std::string{"\\ asdasd\\,\\ ,DsecondX"}, option.get_value_string());
512+
}
513+
514+
void OptionTest::test_options_string_list_custom_delimiters_to_string() {
515+
OptionStringList option(std::vector<std::string>{"aa; b", "ccc,"}, "", true, ";");
516+
CPPUNIT_ASSERT_EQUAL(std::string{"aa\\; b;ccc,"}, option.get_value_string());
517+
518+
option.set(Option::Priority::RUNTIME, std::vector<std::string>{"", ";aa; :b", "ccc,"});
519+
CPPUNIT_ASSERT_EQUAL(std::string{";\\;aa\\; :b;ccc,"}, option.get_value_string());
520+
521+
OptionStringList option2(std::vector<std::string>{"", ";a\\a; :b", "ccc,"}, "", true, ";:");
522+
CPPUNIT_ASSERT_EQUAL(std::string{";\\;a\\\\a\\; \\:b;ccc,"}, option2.get_value_string());
523+
}
524+
497525
void OptionTest::test_options_string_set() {
498526
const OptionStringSet::ValueType initial{"x", "y", "z"};
499527
OptionStringSet option(initial);

test/libdnf5/conf/test_option.hpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ class OptionTest : public CppUnit::TestCase {
3737
CPPUNIT_TEST(test_options_string_list);
3838
CPPUNIT_TEST(test_options_string_list_delimiters);
3939
CPPUNIT_TEST(test_options_string_list_custom_delimiters);
40+
CPPUNIT_TEST(test_options_string_list_to_string);
41+
CPPUNIT_TEST(test_options_string_list_custom_delimiters_to_string);
4042
CPPUNIT_TEST(test_options_string_set);
4143
CPPUNIT_TEST(test_options_list_add);
4244
CPPUNIT_TEST(test_options_list_add_item);
@@ -54,6 +56,8 @@ class OptionTest : public CppUnit::TestCase {
5456
void test_options_string_list();
5557
void test_options_string_list_delimiters();
5658
void test_options_string_list_custom_delimiters();
59+
void test_options_string_list_to_string();
60+
void test_options_string_list_custom_delimiters_to_string();
5761
void test_options_string_set();
5862
void test_options_list_add();
5963
void test_options_list_add_item();

0 commit comments

Comments
 (0)