Use StringRefs through the enum registration

This commit is contained in:
Martin Hořeňovský 2019-09-08 14:07:18 +02:00
parent fbbaadb704
commit 923db16322
No known key found for this signature in database
GPG key ID: DE48307B8B0D381A
7 changed files with 60 additions and 50 deletions

View file

@ -10,24 +10,24 @@ TEST_CASE( "parseEnums", "[Strings][enums]" ) {
using Catch::Detail::parseEnums;
SECTION( "No enums" )
CHECK_THAT( parseEnums( "" ), Equals( std::vector<std::string>{} ) );
CHECK_THAT( parseEnums( "" ), Equals( std::vector<Catch::StringRef>{} ) );
SECTION( "One enum value" ) {
CHECK_THAT( parseEnums( "ClassName::EnumName::Value1" ),
Equals(std::vector<std::string>{"Value1"} ) );
Equals(std::vector<Catch::StringRef>{"Value1"} ) );
CHECK_THAT( parseEnums( "Value1" ),
Equals( std::vector<std::string>{"Value1"} ) );
Equals( std::vector<Catch::StringRef>{"Value1"} ) );
CHECK_THAT( parseEnums( "EnumName::Value1" ),
Equals(std::vector<std::string>{"Value1"} ) );
Equals(std::vector<Catch::StringRef>{"Value1"} ) );
}
SECTION( "Multiple enum values" ) {
CHECK_THAT( parseEnums( "ClassName::EnumName::Value1, ClassName::EnumName::Value2" ),
Equals( std::vector<std::string>{"Value1", "Value2"} ) );
Equals( std::vector<Catch::StringRef>{"Value1", "Value2"} ) );
CHECK_THAT( parseEnums( "ClassName::EnumName::Value1, ClassName::EnumName::Value2, ClassName::EnumName::Value3" ),
Equals( std::vector<std::string>{"Value1", "Value2", "Value3"} ) );
Equals( std::vector<Catch::StringRef>{"Value1", "Value2", "Value3"} ) );
CHECK_THAT( parseEnums( "ClassName::EnumName::Value1,ClassName::EnumName::Value2 , ClassName::EnumName::Value3" ),
Equals( std::vector<std::string>{"Value1", "Value2", "Value3"} ) );
Equals( std::vector<Catch::StringRef>{"Value1", "Value2", "Value3"} ) );
}
}