Skip to content

Commit 6d380a1

Browse files
committed
Add unit test
1 parent 1eae1f4 commit 6d380a1

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

datafusion/common/src/config.rs

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3646,6 +3646,42 @@ mod tests {
36463646
assert_eq!(factory_options.get("key2"), Some(&"value 2".to_string()));
36473647
}
36483648

3649+
#[cfg(feature = "parquet_encryption")]
3650+
struct ParquetEncryptionKeyRetriever {}
3651+
3652+
#[cfg(feature = "parquet_encryption")]
3653+
impl parquet::encryption::decrypt::KeyRetriever for ParquetEncryptionKeyRetriever {
3654+
fn retrieve_key(&self, key_metadata: &[u8]) -> parquet::errors::Result<Vec<u8>> {
3655+
if !key_metadata.is_empty() {
3656+
Ok(b"1234567890123450".to_vec())
3657+
} else {
3658+
Err(parquet::errors::ParquetError::General(
3659+
"Key metadata not provided".to_string(),
3660+
))
3661+
}
3662+
}
3663+
}
3664+
3665+
#[cfg(feature = "parquet_encryption")]
3666+
#[test]
3667+
fn conversion_from_key_retriever_to_config_file_decryption_properties() {
3668+
use crate::Result;
3669+
use crate::config::ConfigFileDecryptionProperties;
3670+
use crate::encryption::FileDecryptionProperties;
3671+
3672+
let retriever = std::sync::Arc::new(ParquetEncryptionKeyRetriever {});
3673+
let decryption_properties =
3674+
FileDecryptionProperties::with_key_retriever(retriever)
3675+
.build()
3676+
.unwrap();
3677+
let config_file_decryption_properties: Result<ConfigFileDecryptionProperties> =
3678+
(&decryption_properties).try_into();
3679+
assert!(config_file_decryption_properties.is_err());
3680+
let err = config_file_decryption_properties.unwrap_err().to_string();
3681+
assert!(err.contains("key retriever"));
3682+
assert!(err.contains("Key metadata not provided"));
3683+
}
3684+
36493685
#[cfg(feature = "parquet")]
36503686
#[test]
36513687
fn parquet_table_options_config_entry() {

0 commit comments

Comments
 (0)