use std::sync::Arc;
use oli_server::apis::anthropic::AnthropicClient;
use oli_server::apis::api_client::ApiClientEnum;
use oli_server::apis::openai::OpenAIClient;
fn create_mock_client_enum() -> ApiClientEnum {
let default_model = Some("test-model".to_string());
std::env::set_var("ANTHROPIC_API_KEY", "test_key");
let client = AnthropicClient::with_api_key("test_key".to_string(), default_model).unwrap();
ApiClientEnum::Anthropic(Arc::new(client))
}
fn create_mock_openai_enum() -> ApiClientEnum {
std::env::set_var("OPENAI_API_KEY", "test_key");
let client =
OpenAIClient::with_api_key("test_key".to_string(), Some("test-model".to_string())).unwrap();
ApiClientEnum::OpenAi(Arc::new(client))
}
#[tokio::test]
async fn test_api_client_enum_construction() {
let _anthropic_enum = create_mock_client_enum();
let _openai_enum = create_mock_openai_enum();
}
#[test]
fn test_enum_variant_matching() {
let anthropic_enum = create_mock_client_enum();
let openai_enum = create_mock_openai_enum();
match anthropic_enum {
ApiClientEnum::Anthropic(_) => {
}
_ => {
unreachable!("Expected Anthropic variant");
}
}
match openai_enum {
ApiClientEnum::OpenAi(_) => {
}
_ => {
unreachable!("Expected OpenAI variant");
}
}
}