Added unit and integration tests

This commit is contained in:
2025-09-10 22:34:36 -06:00
parent 083245b447
commit 0f5c28a040
17 changed files with 244 additions and 47 deletions
+49
View File
@@ -0,0 +1,49 @@
use gman::providers::local::LocalProvider;
use gman::providers::{ParseProviderError, SupportedProvider};
use pretty_assertions::{assert_eq, assert_str_eq};
use std::str::FromStr;
#[test]
fn test_supported_provider_from_str() {
assert_eq!(
SupportedProvider::from_str("local").unwrap(),
SupportedProvider::Local(LocalProvider)
);
assert_eq!(
SupportedProvider::from_str(" Local ").unwrap(),
SupportedProvider::Local(LocalProvider)
);
assert!(matches!(
SupportedProvider::from_str("invalid"),
Err(ParseProviderError::Unsupported(_))
));
}
#[test]
fn test_supported_provider_display() {
assert_str_eq!(SupportedProvider::Local(LocalProvider).to_string(), "local");
}
#[test]
fn test_supported_provider_from_str_valid() {
assert_eq!(
SupportedProvider::from_str("local").unwrap(),
SupportedProvider::Local(LocalProvider)
);
assert_eq!(
SupportedProvider::from_str("LOCAL").unwrap(),
SupportedProvider::Local(LocalProvider)
);
}
#[test]
fn test_supported_provider_from_str_invalid() {
let err = SupportedProvider::from_str("invalid").unwrap_err();
assert_str_eq!(err.to_string(), "unsupported provider 'invalid'");
}
#[test]
fn test_parse_provider_error_display() {
let err = ParseProviderError::Unsupported("test".to_string());
assert_eq!(err.to_string(), "unsupported provider 'test'");
}