use std::path::PathBuf;
#[test]
fn test_s3_provider_config() {
let config = r#"
[storage]
provider = "s3"
endpoint = "https://s3.amazonaws.com"
region = "us-east-1"
bucket = "test-bucket"
access_key = "AKIAIOSFODNN7EXAMPLE"
secret_key = "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
"#;
let parsed: toml::Value = toml::from_str(config).unwrap();
assert_eq!(parsed["storage"]["provider"].as_str(), Some("s3"));
assert_eq!(parsed["storage"]["bucket"].as_str(), Some("test-bucket"));
}
#[test]
fn test_gcs_provider_config() {
let config = r#"
[storage]
provider = "gcs"
bucket = "test-bucket"
credentials_path = "/path/to/credentials.json"
"#;
let parsed: toml::Value = toml::from_str(config).unwrap();
assert_eq!(parsed["storage"]["provider"].as_str(), Some("gcs"));
assert_eq!(parsed["storage"]["bucket"].as_str(), Some("test-bucket"));
}
#[test]
fn test_azure_provider_config() {
let config = r#"
[storage]
provider = "azure"
account_name = "testaccount"
account_key = "test-key"
bucket = "test-container"
"#;
let parsed: toml::Value = toml::from_str(config).unwrap();
assert_eq!(parsed["storage"]["provider"].as_str(), Some("azure"));
assert_eq!(
parsed["storage"]["account_name"].as_str(),
Some("testaccount")
);
}
#[test]
fn test_b2_provider_config() {
let config = r#"
[storage]
provider = "b2"
account_id = "test-account-id"
application_key = "test-app-key"
bucket_id = "test-bucket-id"
bucket = "test-bucket"
"#;
let parsed: toml::Value = toml::from_str(config).unwrap();
assert_eq!(parsed["storage"]["provider"].as_str(), Some("b2"));
assert_eq!(
parsed["storage"]["account_id"].as_str(),
Some("test-account-id")
);
}
#[test]
fn test_consumer_provider_configs() {
let gdrive_config = r#"
[storage]
provider = "googledrive"
access_key = "ya29.test-token"
bucket_id = "folder-id"
"#;
let parsed: toml::Value = toml::from_str(gdrive_config).unwrap();
assert_eq!(parsed["storage"]["provider"].as_str(), Some("googledrive"));
let dropbox_config = r#"
[storage]
provider = "dropbox"
access_key = "sl.test-token"
bucket_id = "/Backups"
"#;
let parsed: toml::Value = toml::from_str(dropbox_config).unwrap();
assert_eq!(parsed["storage"]["provider"].as_str(), Some("dropbox"));
let pcloud_config = r#"
[storage]
provider = "pcloud"
access_key = "test-token"
region = "us"
bucket_id = "/Backups"
"#;
let parsed: toml::Value = toml::from_str(pcloud_config).unwrap();
assert_eq!(parsed["storage"]["provider"].as_str(), Some("pcloud"));
}
#[test]
fn test_provider_aliases() {
let aliases = vec![
("s3", "aws"),
("gcs", "google"),
("b2", "backblaze"),
("googledrive", "gdrive"),
];
for (alias1, alias2) in aliases {
assert!(!alias1.is_empty());
assert!(!alias2.is_empty());
}
}