diff --git a/src/maven/pom.rs b/src/maven/pom.rs index 7cad7fd..1354282 100644 --- a/src/maven/pom.rs +++ b/src/maven/pom.rs @@ -14,6 +14,7 @@ pub struct Pom { pub dependencies: Vec, pub dependency_management: Vec, pub properties: HashMap, + pub modules: Vec, } #[derive(PartialEq, Debug)] diff --git a/src/maven/pom_parser.rs b/src/maven/pom_parser.rs index 1c8ccee..ee3aec3 100644 --- a/src/maven/pom_parser.rs +++ b/src/maven/pom_parser.rs @@ -13,7 +13,8 @@ pub fn get_pom(xml: &str) -> Result { let mut url = None; let mut dependencies = vec![]; let mut dependency_management = vec![]; - let mut properties = HashMap::new(); //useless assignment... + let mut properties = HashMap::new(); // useless assignment... + let mut modules = vec![]; // not useless assignment... for child in get_document(xml)?.root.children { match child.name.as_str() { @@ -27,6 +28,7 @@ pub fn get_pom(xml: &str) -> Result { "dependencies" => dependencies = get_dependencies(child), "dependencyManagement" => dependency_management = get_dependency_mgmt(child), "properties" => properties = get_properties(child), + "modules" => add_modules(child, &mut modules), _ => {} } } @@ -41,9 +43,16 @@ pub fn get_pom(xml: &str) -> Result { dependencies, dependency_management, properties, + modules, }) } +fn add_modules(element: Node, modules: &mut Vec){ + for module in element.children { + modules.push(module.text.expect("Cannot read module name")); + } +} + fn get_properties(element: Node) -> HashMap { let mut properties = HashMap::new(); for property in element.children { diff --git a/tests/maven/pom_parser_test.rs b/tests/maven/pom_parser_test.rs index 14e9da8..c3641a1 100644 --- a/tests/maven/pom_parser_test.rs +++ b/tests/maven/pom_parser_test.rs @@ -1,5 +1,4 @@ use undeepend::maven::pom_parser::get_pom; -use undeepend::xml::dom_parser::get_document; #[test] fn test_pom_parser_is_correct() { @@ -27,4 +26,8 @@ fn test_pom_parser_is_correct() { assert_eq!("objenesis", objenesis.artifact_id); assert_eq!(Some("1.0".to_string()), objenesis.version); assert!(pom.dependency_management.is_empty()); + + assert_eq!(2, pom.modules.len()); + assert_eq!("a", pom.modules[0]); + assert_eq!("b", pom.modules[1]); } diff --git a/tests/maven/resources/pom.xml b/tests/maven/resources/pom.xml index e4c7a55..a416f78 100644 --- a/tests/maven/resources/pom.xml +++ b/tests/maven/resources/pom.xml @@ -22,15 +22,12 @@ repo - - http://code.google.com/p/mockito/source/browse/ - - - - szczepiq - Szczepan Faber - - + + + a + b + + org.hamcrest