use crate::storage::InstalledJdk;
use crate::version::Version;
use std::path::PathBuf;
use std::str::FromStr;
pub fn create_test_jdk(distribution: &str, version: &str) -> InstalledJdk {
InstalledJdk::new(
distribution.to_string(),
Version::from_str(version).unwrap(),
PathBuf::from(format!("/test/jdks/{distribution}-{version}")),
false,
)
}
pub fn create_test_jdk_with_path(distribution: &str, version: &str, path: &str) -> InstalledJdk {
InstalledJdk::new(
distribution.to_string(),
Version::from_str(version).unwrap(),
PathBuf::from(path),
false,
)
}
pub fn create_test_jdk_collection() -> Vec<InstalledJdk> {
vec![
create_test_jdk("temurin", "21.0.5+11"),
create_test_jdk("temurin", "17.0.9+9"),
create_test_jdk("corretto", "21.0.1"),
create_test_jdk("corretto", "17.0.5"),
create_test_jdk("zulu", "11.0.25"),
]
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_create_test_jdk() {
let jdk = create_test_jdk("temurin", "21.0.5+11");
assert_eq!(jdk.distribution, "temurin");
assert_eq!(jdk.version.to_string(), "21.0.5+11");
assert_eq!(jdk.path, PathBuf::from("/test/jdks/temurin-21.0.5+11"));
}
#[test]
fn test_create_test_jdk_with_path() {
let jdk = create_test_jdk_with_path("corretto", "17.0.9", "/custom/path");
assert_eq!(jdk.distribution, "corretto");
assert_eq!(jdk.version.to_string(), "17.0.9");
assert_eq!(jdk.path, PathBuf::from("/custom/path"));
}
#[test]
fn test_create_test_jdk_collection() {
let jdks = create_test_jdk_collection();
assert_eq!(jdks.len(), 5);
assert!(jdks.iter().any(|jdk| jdk.distribution == "temurin"));
assert!(jdks.iter().any(|jdk| jdk.distribution == "corretto"));
assert!(jdks.iter().any(|jdk| jdk.distribution == "zulu"));
}
}