| 423 | |
| 424 | #[test] |
| 425 | fn test_extract_function() { |
| 426 | let mut parser = GoParser::new(); |
| 427 | let source = r#" |
| 428 | package main |
| 429 | |
| 430 | func Greet(name string) string { |
| 431 | return "Hello, " + name |
| 432 | } |
| 433 | "#; |
| 434 | let entities = parser.extract(source, "main.go"); |
| 435 | assert!(!entities.is_empty()); |
| 436 | let greet = entities.iter().find(|e| e.name == "Greet").unwrap(); |
| 437 | assert_eq!(greet.kind, EntityKind::Function); |
| 438 | assert!(greet.exported); |
| 439 | assert!( |
| 440 | greet.signature.as_ref().unwrap().contains("func Greet"), |
| 441 | "Signature: {:?}", |
| 442 | greet.signature |
| 443 | ); |
| 444 | } |
| 445 | |
| 446 | #[test] |
| 447 | fn test_extract_unexported_function() { |