| 673 | |
| 674 | #[test] |
| 675 | fn test_extract_class() { |
| 676 | let mut parser = JavaParser::new(); |
| 677 | let source = r#" |
| 678 | public class UserService { |
| 679 | private String name; |
| 680 | |
| 681 | public UserService(String name) { |
| 682 | this.name = name; |
| 683 | } |
| 684 | |
| 685 | public String getName() { |
| 686 | return name; |
| 687 | } |
| 688 | } |
| 689 | "#; |
| 690 | let entities = parser.extract(source, "UserService.java"); |
| 691 | assert!(!entities.is_empty()); |
| 692 | |
| 693 | let service = entities |
| 694 | .iter() |
| 695 | .find(|e| e.name == "UserService" && e.kind == EntityKind::Class); |
| 696 | assert!( |
| 697 | service.is_some(), |
| 698 | "Should find UserService class, got: {:?}", |
| 699 | entities |
| 700 | .iter() |
| 701 | .map(|e| (&e.name, &e.kind)) |
| 702 | .collect::<Vec<_>>() |
| 703 | ); |
| 704 | assert!(service.unwrap().exported); |
| 705 | assert!(service |
| 706 | .unwrap() |
| 707 | .signature |
| 708 | .as_ref() |
| 709 | .unwrap() |
| 710 | .contains("public class UserService")); |
| 711 | } |
| 712 | |
| 713 | #[test] |
| 714 | fn test_extract_methods() { |