use archlens_domain::{ AnalysisResult, AnalysisWarning, CodeElement, CodeElementKind, FilePath, Relationship, RelationshipKind, }; #[test] fn analysis_result_collects_elements_relationships_and_warnings() { let element = CodeElement::new( "Order", CodeElementKind::Struct, FilePath::new("src/order.rs").unwrap(), 1, ) .unwrap(); let relationship = Relationship::new("OrderService", "Order", RelationshipKind::Composition).unwrap(); let warning = AnalysisWarning::new( FilePath::new("src/broken.rs").unwrap(), 10, "unparseable macro", ) .unwrap(); let result = AnalysisResult::new(vec![element], vec![relationship], vec![warning]); assert_eq!(result.elements().len(), 1); assert_eq!(result.relationships().len(), 1); assert_eq!(result.warnings().len(), 1); } #[test] fn empty_analysis_result() { let result = AnalysisResult::empty(); assert!(result.elements().is_empty()); assert!(result.relationships().is_empty()); assert!(result.warnings().is_empty()); }