use pmcp::{CallToolResult, Content, ToolResult};
#[test]
fn test_toolresult_import() {
let result: ToolResult = ToolResult::new(vec![Content::text("test result")]);
assert_eq!(result.content.len(), 1);
assert!(!result.is_error);
}
#[test]
fn test_toolresult_type_equivalence() {
let call_result = CallToolResult::new(vec![Content::text("equivalent test")]);
let tool_result: ToolResult = ToolResult::new(vec![Content::text("equivalent test")]);
let call_json = serde_json::to_value(&call_result).unwrap();
let tool_json = serde_json::to_value(&tool_result).unwrap();
assert_eq!(call_json, tool_json);
}
#[test]
fn test_toolresult_content_types() {
let text_result = ToolResult::new(vec![Content::text("text content")]);
let resource_result = ToolResult::new(vec![Content::resource_with_text(
"file://test.txt",
"resource content",
"text/plain",
)]);
assert!(!text_result.content.is_empty());
assert!(!resource_result.content.is_empty());
}
#[test]
fn test_toolresult_error_cases() {
let error_result = ToolResult::error(vec![Content::text("An error occurred")]);
assert!(error_result.is_error);
}
#[test]
fn test_toolresult_serde() {
let original = ToolResult::new(vec![Content::text("serialization test")]);
let json_str = serde_json::to_string(&original).unwrap();
let deserialized: ToolResult = serde_json::from_str(&json_str).unwrap();
assert_eq!(original.content.len(), deserialized.content.len());
assert_eq!(original.is_error, deserialized.is_error);
}
#[test]
fn test_toolresult_function_compatibility() {
fn process_result(result: &CallToolResult) -> bool {
!result.content.is_empty()
}
let tool_result = ToolResult::new(vec![Content::text("compatibility test")]);
assert!(process_result(&tool_result));
}
#[test]
fn test_toolresult_default() {
let default_result = ToolResult::default();
assert!(default_result.content.is_empty());
assert!(!default_result.is_error);
}
#[test]
fn test_toolresult_generic() {
fn wrap_in_option<T>(value: T) -> T {
value
}
let result = ToolResult::new(vec![Content::text("generic test")]);
let wrapped = wrap_in_option(result);
assert_eq!(wrapped.content.len(), 1);
}