@@ -51,4 +51,32 @@ TEST(ToAvroCompressionKindTest, HandlesInvalidCompression) {
5151TEST (ToAvroCompressionKindTest, HandlesEmptyString) {
5252 ASSERT_NOK (AvroWriterBuilder::ToAvroCompressionKind (" " ));
5353}
54+
55+ TEST (ToAvroCompressionKindTest, GetAvroCompressionZstdLevel) {
56+ AvroWriterBuilder builder (nullptr , -1 , {{Options::FILE_FORMAT , " avro" }});
57+ ASSERT_OK_AND_ASSIGN (std::optional<int > zstd_level,
58+ builder.GetAvroCompressionZstdLevel (::avro::Codec::ZSTD_CODEC ));
59+ ASSERT_TRUE (zstd_level.has_value ());
60+ ASSERT_EQ (zstd_level.value (), 1 );
61+
62+ ASSERT_OK_AND_ASSIGN (std::optional<int > compression_level1,
63+ builder.GetAvroCompressionZstdLevel (::avro::Codec::SNAPPY_CODEC ));
64+ ASSERT_FALSE (compression_level1.has_value ());
65+
66+ ASSERT_OK_AND_ASSIGN (std::optional<int > compression_level2,
67+ builder.GetAvroCompressionZstdLevel (::avro::Codec::DEFLATE_CODEC ));
68+ ASSERT_FALSE (compression_level2.has_value ());
69+
70+ ASSERT_OK_AND_ASSIGN (std::optional<int > compression_level3,
71+ builder.GetAvroCompressionZstdLevel (::avro::Codec::NULL_CODEC ));
72+ ASSERT_FALSE (compression_level3.has_value ());
73+
74+ AvroWriterBuilder builder2 (
75+ nullptr , -1 , {{Options::FILE_FORMAT , " avro" }, {Options::FILE_COMPRESSION_ZSTD_LEVEL , " 3" }});
76+ ASSERT_OK_AND_ASSIGN (std::optional<int > zstd_level2,
77+ builder2.GetAvroCompressionZstdLevel (::avro::Codec::ZSTD_CODEC ));
78+ ASSERT_TRUE (zstd_level2.has_value ());
79+ ASSERT_EQ (zstd_level2.value (), 3 );
80+ }
81+
5482} // namespace paimon::avro::test
0 commit comments