| 490 | |
| 491 | #[test] |
| 492 | fn test_extract_interface() { |
| 493 | let mut parser = GoParser::new(); |
| 494 | let source = r#" |
| 495 | package main |
| 496 | |
| 497 | type Repository interface { |
| 498 | Find(id string) (*Entity, error) |
| 499 | Save(entity *Entity) error |
| 500 | } |
| 501 | "#; |
| 502 | let entities = parser.extract(source, "repo.go"); |
| 503 | let repo = entities.iter().find(|e| e.name == "Repository").unwrap(); |
| 504 | assert_eq!(repo.kind, EntityKind::Interface); |
| 505 | assert!(repo.exported); |
| 506 | assert!( |
| 507 | repo.signature |
| 508 | .as_ref() |
| 509 | .unwrap() |
| 510 | .contains("type Repository interface"), |
| 511 | "Signature: {:?}", |
| 512 | repo.signature |
| 513 | ); |
| 514 | } |
| 515 | |
| 516 | #[test] |
| 517 | fn test_extract_method() { |