summaryrefslogtreecommitdiffstats
path: root/library/cpp/yt/misc/unittests/enum_ut.cpp
diff options
context:
space:
mode:
authorbulatman <[email protected]>2023-03-10 09:57:16 +0300
committerbulatman <[email protected]>2023-03-10 09:57:16 +0300
commit59c758d9fa32f1dc467824707fb8cdf91e8bb731 (patch)
tree778dfe65cb05879b49595f4f4dc1ba43e8df7ffb /library/cpp/yt/misc/unittests/enum_ut.cpp
parent82ad7fa64a7e511763a6f6a0278d4eed1b01b96e (diff)
YT: Allow to define enum with custom string represenation
Diffstat (limited to 'library/cpp/yt/misc/unittests/enum_ut.cpp')
-rw-r--r--library/cpp/yt/misc/unittests/enum_ut.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/library/cpp/yt/misc/unittests/enum_ut.cpp b/library/cpp/yt/misc/unittests/enum_ut.cpp
index 6af11b04dc0..2a024be228c 100644
--- a/library/cpp/yt/misc/unittests/enum_ut.cpp
+++ b/library/cpp/yt/misc/unittests/enum_ut.cpp
@@ -37,6 +37,11 @@ DEFINE_AMBIGUOUS_ENUM_WITH_UNDERLYING_TYPE(EMultipleNames, int,
((D2)(100))
);
+DEFINE_ENUM(ECustomString,
+ ((A) (1) ("1_a"))
+ ((B) (2) ("1_b"))
+);
+
////////////////////////////////////////////////////////////////////////////////
template <class T, size_t N>
@@ -243,6 +248,15 @@ TEST(TEnumTest, MultipleNames)
EXPECT_EQ("D1", ToString(EMultipleNames::D2));
}
+TEST(TEnumTest, CustomString)
+{
+ EXPECT_EQ(ECustomString::A, TEnumTraits<ECustomString>::FromString("1_a"));
+ EXPECT_EQ(ECustomString::B, TEnumTraits<ECustomString>::FromString("1_b"));
+
+ EXPECT_EQ("1_a", ToString(ECustomString::A));
+ EXPECT_EQ("1_b", ToString(ECustomString::B));
+}
+
////////////////////////////////////////////////////////////////////////////////
} // namespace