mirror of
https://github.com/audacity/linuxdeploy.git
synced 2026-04-28 03:40:42 -05:00
Add some convenience function to convert/parse value
This commit is contained in:
@@ -1,10 +1,13 @@
|
||||
// library headers
|
||||
#include <gtest/gtest.h>
|
||||
#include <boost/filesystem.hpp>
|
||||
#include <boost/lexical_cast.hpp>
|
||||
|
||||
// local headers
|
||||
#include "../../src/core/desktopfileentry.h"
|
||||
|
||||
using boost::bad_lexical_cast;
|
||||
|
||||
namespace bf = boost::filesystem;
|
||||
|
||||
class DesktopFileEntryFixture : public ::testing::Test {
|
||||
@@ -90,3 +93,48 @@ TEST_F(DesktopFileEntryFixture, testMoveAssignmentConstructor) {
|
||||
// test self-assignment
|
||||
entry = std::move(entry);
|
||||
}
|
||||
|
||||
TEST_F(DesktopFileEntryFixture, testConversionToInt) {
|
||||
DesktopFileEntry intEntry(key, "1234");
|
||||
EXPECT_EQ(intEntry.asInt(), 1234);
|
||||
|
||||
DesktopFileEntry brokenValueEntry(key, "abcd");
|
||||
ASSERT_THROW(brokenValueEntry.asInt(), bad_lexical_cast);
|
||||
|
||||
DesktopFileEntry emptyEntry(key, "");
|
||||
ASSERT_THROW(emptyEntry.asInt(), std::invalid_argument);
|
||||
}
|
||||
|
||||
TEST_F(DesktopFileEntryFixture, testConversionToLong) {
|
||||
DesktopFileEntry intEntry(key, "123456789123456789");
|
||||
EXPECT_EQ(intEntry.asLong(), 123456789123456789L);
|
||||
|
||||
DesktopFileEntry brokenValueEntry(key, "abcd");
|
||||
ASSERT_THROW(brokenValueEntry.asLong(), bad_lexical_cast);
|
||||
|
||||
DesktopFileEntry emptyEntry(key, "");
|
||||
ASSERT_THROW(emptyEntry.asLong(), std::invalid_argument);
|
||||
}
|
||||
|
||||
TEST_F(DesktopFileEntryFixture, testConversionToString) {
|
||||
DesktopFileEntry entry(key, value);
|
||||
auto result = static_cast<std::string>(entry);
|
||||
EXPECT_EQ(value, result);
|
||||
}
|
||||
|
||||
TEST_F(DesktopFileEntryFixture, testParsingStringList) {
|
||||
DesktopFileEntry emptyEntry(key, "");
|
||||
EXPECT_EQ(emptyEntry.parseStringList(), std::vector<std::string>({}));
|
||||
|
||||
DesktopFileEntry nonListEntry(key, value);
|
||||
EXPECT_EQ(nonListEntry.parseStringList(), std::vector<std::string>({value}));
|
||||
|
||||
DesktopFileEntry listEntry(key, "val1;val2;");
|
||||
EXPECT_EQ(listEntry.parseStringList(), std::vector<std::string>({"val1", "val2"}));
|
||||
|
||||
DesktopFileEntry listEntryWithoutTrailingSemicolon(key, "val1;val2");
|
||||
EXPECT_EQ(listEntry.parseStringList(), std::vector<std::string>({"val1", "val2"}));
|
||||
|
||||
DesktopFileEntry listEntryWithEmptyItems(key, "val1;;;val2;;");
|
||||
EXPECT_EQ(listEntry.parseStringList(), std::vector<std::string>({"val1", "val2"}));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user