| 677 | |
| 678 | #[test] |
| 679 | fn test_extract_struct() { |
| 680 | let mut parser = RustParser::new(); |
| 681 | let source = r#" |
| 682 | pub struct User { |
| 683 | pub name: String, |
| 684 | pub email: Option<String>, |
| 685 | age: u32, |
| 686 | } |
| 687 | "#; |
| 688 | let entities = parser.extract(source, "src/models.rs"); |
| 689 | let user = entities.iter().find(|e| e.name == "User").unwrap(); |
| 690 | assert_eq!(user.kind, EntityKind::Class); |
| 691 | assert!(user.exported); |
| 692 | assert!( |
| 693 | user.signature.as_ref().unwrap().contains("pub struct User"), |
| 694 | "Signature: {:?}", |
| 695 | user.signature |
| 696 | ); |
| 697 | } |
| 698 | |
| 699 | #[test] |
| 700 | fn test_extract_generic_struct() { |