2525namespace parquet ::encryption::test {
2626
2727TEST (TestColumnEncryptionProperties, ColumnEncryptedWithOwnKey) {
28- std::string column_path_1 = " column_1" ;
29- ColumnEncryptionProperties::Builder column_builder_1 (column_path_1);
28+ ColumnEncryptionProperties::Builder column_builder_1;
3029 column_builder_1.key (kColumnEncryptionKey1 );
3130 column_builder_1.key_id (" kc1" );
3231 std::shared_ptr<ColumnEncryptionProperties> column_props_1 = column_builder_1.build ();
3332
34- ASSERT_EQ (column_path_1, column_props_1->column_path ());
33+ ASSERT_EQ (true , column_props_1->is_encrypted ());
34+ ASSERT_EQ (false , column_props_1->is_encrypted_with_footer_key ());
35+ ASSERT_EQ (kColumnEncryptionKey1 , column_props_1->key ());
36+ ASSERT_EQ (" kc1" , column_props_1->key_metadata ());
37+
38+ // Same with shorthand API
39+ column_props_1 =
40+ ColumnEncryptionProperties::WithColumnKey (kColumnEncryptionKey1 , " kc1" );
3541 ASSERT_EQ (true , column_props_1->is_encrypted ());
3642 ASSERT_EQ (false , column_props_1->is_encrypted_with_footer_key ());
3743 ASSERT_EQ (kColumnEncryptionKey1 , column_props_1->key ());
3844 ASSERT_EQ (" kc1" , column_props_1->key_metadata ());
3945}
4046
4147TEST (TestColumnEncryptionProperties, ColumnEncryptedWithFooterKey) {
42- std::string column_path_1 = " column_1" ;
43- ColumnEncryptionProperties::Builder column_builder_1 (column_path_1);
48+ ColumnEncryptionProperties::Builder column_builder_1;
4449 std::shared_ptr<ColumnEncryptionProperties> column_props_1 = column_builder_1.build ();
4550
46- ASSERT_EQ (column_path_1, column_props_1->column_path ());
51+ ASSERT_EQ (true , column_props_1->is_encrypted ());
52+ ASSERT_EQ (true , column_props_1->is_encrypted_with_footer_key ());
53+
54+ // Same with shorthand API
55+ column_props_1 = ColumnEncryptionProperties::WithFooterKey ();
4756 ASSERT_EQ (true , column_props_1->is_encrypted ());
4857 ASSERT_EQ (true , column_props_1->is_encrypted_with_footer_key ());
4958}
5059
60+ TEST (TestColumnEncryptionProperties, UnencryptedColumn) {
61+ ColumnEncryptionProperties::Builder column_builder_1;
62+
63+ auto column_props_1 = ColumnEncryptionProperties::Unencrypted ();
64+ ASSERT_EQ (false , column_props_1->is_encrypted ());
65+ ASSERT_EQ (false , column_props_1->is_encrypted_with_footer_key ());
66+ }
67+
5168// Encrypt all columns and the footer with the same key.
5269// (uniform encryption)
5370TEST (TestEncryptionProperties, UniformEncryption) {
@@ -74,19 +91,14 @@ TEST(TestEncryptionProperties, UniformEncryption) {
7491TEST (TestEncryptionProperties, EncryptFooterAndTwoColumns) {
7592 std::shared_ptr<parquet::schema::ColumnPath> column_path_1 =
7693 parquet::schema::ColumnPath::FromDotString (" column_1" );
77- ColumnEncryptionProperties::Builder column_builder_1 (column_path_1->ToDotString ());
78- column_builder_1.key (kColumnEncryptionKey1 );
79- column_builder_1.key_id (" kc1" );
80-
8194 std::shared_ptr<parquet::schema::ColumnPath> column_path_2 =
8295 parquet::schema::ColumnPath::FromDotString (" column_2" );
83- ColumnEncryptionProperties::Builder column_builder_2 (column_path_2->ToDotString ());
84- column_builder_2.key (kColumnEncryptionKey2 );
85- column_builder_2.key_id (" kc2" );
8696
8797 std::map<std::string, std::shared_ptr<ColumnEncryptionProperties>> encrypted_columns;
88- encrypted_columns[column_path_1->ToDotString ()] = column_builder_1.build ();
89- encrypted_columns[column_path_2->ToDotString ()] = column_builder_2.build ();
98+ encrypted_columns[column_path_1->ToDotString ()] =
99+ ColumnEncryptionProperties::WithColumnKey (kColumnEncryptionKey1 , " kc1" );
100+ encrypted_columns[column_path_2->ToDotString ()] =
101+ ColumnEncryptionProperties::WithColumnKey (kColumnEncryptionKey2 , " kc2" );
90102
91103 FileEncryptionProperties::Builder builder (kFooterEncryptionKey );
92104 builder.footer_key_metadata (" kf" );
@@ -100,7 +112,6 @@ TEST(TestEncryptionProperties, EncryptFooterAndTwoColumns) {
100112 std::shared_ptr<ColumnEncryptionProperties> out_col_props_1 =
101113 props->column_encryption_properties (column_path_1->ToDotString ());
102114
103- ASSERT_EQ (column_path_1->ToDotString (), out_col_props_1->column_path ());
104115 ASSERT_EQ (true , out_col_props_1->is_encrypted ());
105116 ASSERT_EQ (false , out_col_props_1->is_encrypted_with_footer_key ());
106117 ASSERT_EQ (kColumnEncryptionKey1 , out_col_props_1->key ());
@@ -109,7 +120,6 @@ TEST(TestEncryptionProperties, EncryptFooterAndTwoColumns) {
109120 std::shared_ptr<ColumnEncryptionProperties> out_col_props_2 =
110121 props->column_encryption_properties (column_path_2->ToDotString ());
111122
112- ASSERT_EQ (column_path_2->ToDotString (), out_col_props_2->column_path ());
113123 ASSERT_EQ (true , out_col_props_2->is_encrypted ());
114124 ASSERT_EQ (false , out_col_props_2->is_encrypted_with_footer_key ());
115125 ASSERT_EQ (kColumnEncryptionKey2 , out_col_props_2->key ());
@@ -128,19 +138,14 @@ TEST(TestEncryptionProperties, EncryptFooterAndTwoColumns) {
128138TEST (TestEncryptionProperties, EncryptTwoColumnsNotFooter) {
129139 std::shared_ptr<parquet::schema::ColumnPath> column_path_1 =
130140 parquet::schema::ColumnPath::FromDotString (" column_1" );
131- ColumnEncryptionProperties::Builder column_builder_1 (*column_path_1);
132- column_builder_1.key (kColumnEncryptionKey1 );
133- column_builder_1.key_id (" kc1" );
134-
135141 std::shared_ptr<parquet::schema::ColumnPath> column_path_2 =
136142 parquet::schema::ColumnPath::FromDotString (" column_2" );
137- ColumnEncryptionProperties::Builder column_builder_2 (*column_path_2);
138- column_builder_2.key (kColumnEncryptionKey2 );
139- column_builder_2.key_id (" kc2" );
140143
141144 std::map<std::string, std::shared_ptr<ColumnEncryptionProperties>> encrypted_columns;
142- encrypted_columns[column_path_1->ToDotString ()] = column_builder_1.build ();
143- encrypted_columns[column_path_2->ToDotString ()] = column_builder_2.build ();
145+ encrypted_columns[column_path_1->ToDotString ()] =
146+ ColumnEncryptionProperties::WithColumnKey (kColumnEncryptionKey1 , " kc1" );
147+ encrypted_columns[column_path_2->ToDotString ()] =
148+ ColumnEncryptionProperties::WithColumnKey (kColumnEncryptionKey2 , " kc2" );
144149
145150 FileEncryptionProperties::Builder builder (kFooterEncryptionKey );
146151 builder.footer_key_metadata (" kf" );
@@ -155,7 +160,6 @@ TEST(TestEncryptionProperties, EncryptTwoColumnsNotFooter) {
155160 std::shared_ptr<ColumnEncryptionProperties> out_col_props_1 =
156161 props->column_encryption_properties (column_path_1->ToDotString ());
157162
158- ASSERT_EQ (column_path_1->ToDotString (), out_col_props_1->column_path ());
159163 ASSERT_EQ (true , out_col_props_1->is_encrypted ());
160164 ASSERT_EQ (false , out_col_props_1->is_encrypted_with_footer_key ());
161165 ASSERT_EQ (kColumnEncryptionKey1 , out_col_props_1->key ());
@@ -164,7 +168,6 @@ TEST(TestEncryptionProperties, EncryptTwoColumnsNotFooter) {
164168 std::shared_ptr<ColumnEncryptionProperties> out_col_props_2 =
165169 props->column_encryption_properties (column_path_2->ToDotString ());
166170
167- ASSERT_EQ (column_path_2->ToDotString (), out_col_props_2->column_path ());
168171 ASSERT_EQ (true , out_col_props_2->is_encrypted ());
169172 ASSERT_EQ (false , out_col_props_2->is_encrypted_with_footer_key ());
170173 ASSERT_EQ (kColumnEncryptionKey2 , out_col_props_2->key ());
0 commit comments