| 788 | |
| 789 | #[test] |
| 790 | fn test_extract_interface() { |
| 791 | let mut parser = JavaParser::new(); |
| 792 | let source = r#" |
| 793 | public interface Repository<T> { |
| 794 | T find(String id); |
| 795 | void save(T entity); |
| 796 | void delete(String id); |
| 797 | } |
| 798 | "#; |
| 799 | let entities = parser.extract(source, "Repository.java"); |
| 800 | |
| 801 | let repo = entities |
| 802 | .iter() |
| 803 | .find(|e| e.name == "Repository" && e.kind == EntityKind::Interface); |
| 804 | assert!(repo.is_some(), "Should find Repository interface"); |
| 805 | assert!(repo.unwrap().exported); |
| 806 | |
| 807 | // Should find interface methods |
| 808 | let find = entities.iter().find(|e| e.name == "find"); |
| 809 | assert!(find.is_some(), "Should find find() method in interface"); |
| 810 | |
| 811 | let save = entities.iter().find(|e| e.name == "save"); |
| 812 | assert!(save.is_some(), "Should find save() method in interface"); |
| 813 | } |
| 814 | |
| 815 | #[test] |
| 816 | fn test_extract_enum() { |