You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by si...@apache.org on 2008/12/18 00:17:47 UTC

svn commit: r727574 - in /maven/components/trunk/maven-project: pom.xml src/test/java/org/apache/maven/project/harness/ src/test/java/org/apache/maven/project/harness/PomTestWrapper.java

Author: sisbell
Date: Wed Dec 17 15:17:47 2008
New Revision: 727574

URL: http://svn.apache.org/viewvc?rev=727574&view=rev
Log:
Test Wrapper for domain model.

Added:
    maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/harness/
    maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/harness/PomTestWrapper.java
Modified:
    maven/components/trunk/maven-project/pom.xml

Modified: maven/components/trunk/maven-project/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/pom.xml?rev=727574&r1=727573&r2=727574&view=diff
==============================================================================
--- maven/components/trunk/maven-project/pom.xml (original)
+++ maven/components/trunk/maven-project/pom.xml Wed Dec 17 15:17:47 2008
@@ -69,6 +69,12 @@
       <groupId>org.apache.maven</groupId>
       <artifactId>maven-project-builder</artifactId>
     </dependency>
+    <dependency>
+    	<groupId>commons-jxpath</groupId>
+    	<artifactId>commons-jxpath</artifactId>
+    	<version>1.3</version>
+    	<scope>test</scope>
+    </dependency>
   </dependencies>
   <build>
     <plugins>

Added: maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/harness/PomTestWrapper.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/harness/PomTestWrapper.java?rev=727574&view=auto
==============================================================================
--- maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/harness/PomTestWrapper.java (added)
+++ maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/harness/PomTestWrapper.java Wed Dec 17 15:17:47 2008
@@ -0,0 +1,154 @@
+package org.apache.maven.project.harness;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.jxpath.JXPathContext;
+import org.apache.maven.project.builder.PomClassicDomainModel;
+import org.apache.maven.shared.model.DataSourceException;
+import org.apache.maven.shared.model.ModelDataSource;
+import org.apache.maven.shared.model.ModelProperty;
+import org.apache.maven.shared.model.impl.DefaultModelDataSource;
+
+import org.apache.maven.model.Model;
+
+public class PomTestWrapper {
+
+	private PomClassicDomainModel domainModel;
+	
+	private JXPathContext context;
+	
+	public PomTestWrapper(PomClassicDomainModel domainModel) throws IOException {
+		if(domainModel == null) {
+			throw new IllegalArgumentException("domainModel: null");
+		}
+		this.domainModel = domainModel;
+		context = JXPathContext.newContext(domainModel.getModel());
+	}
+	
+	public PomTestWrapper(File file) throws IOException {
+		if(file == null) {
+			throw new IllegalArgumentException("file: null");
+		}
+		
+		this.domainModel = new PomClassicDomainModel(file);
+		context = JXPathContext.newContext(domainModel.getModel());
+	}	
+	
+	public PomTestWrapper(Model model) throws IOException  {
+		if(model == null) {
+			throw new IllegalArgumentException("model: null");
+		}
+		
+		this.domainModel = new PomClassicDomainModel(model);
+		context = JXPathContext.newContext(domainModel.getModel());
+	}		
+	
+	public String getValueOfProjectUri(String projectUri, boolean withResolvedValue) throws IOException {
+		if(projectUri.contains("#collection") || projectUri.contains("#set")) {
+			throw new IllegalArgumentException("projectUri: contains a collection or set");
+		}
+		return asMap(withResolvedValue).get(projectUri);
+	}
+	
+	public void setValueOnModel(String expression, Object value) {
+		context.setValue(expression, value);
+	}
+	/*
+	public int containerCountForUri(String uri) throws IOException {
+		if(uri == null || uri.trim().equals("")) {
+			throw new IllegalArgumentException("uri: null or empty");
+		}
+		ModelDataSource source = new DefaultModelDataSource();
+		source.init(domainModel.getModelProperties(), null);
+		return source.queryFor(uri).size();
+	}
+	*/
+	
+	public Iterator getIteratorForXPathExpression(String expression) {
+		return context.iterate(expression);
+	}
+	
+	public boolean containsXPathExpression(String expression) {
+		return context.getValue(expression) != null;
+	}
+	
+	public boolean xPathExpressionEqualsValue(String expression, String value) {
+		return context.getValue(expression) != null && context.getValue(expression).equals(value);
+	}	
+
+	public Map<String, String> asMap(boolean withResolvedValues) throws IOException {
+		Map<String, String> map = new HashMap<String, String>();
+		for(ModelProperty mp : domainModel.getModelProperties()) {
+			if(withResolvedValues) {
+				map.put(mp.getUri(), mp.getResolvedValue());	
+			} else {
+				map.put(mp.getUri(), mp.getValue());	
+			}
+			
+		}
+		return map;
+	}
+	
+	public boolean containsModelProperty(ModelProperty modelProperty) throws IOException {
+		return domainModel.getModelProperties().contains(modelProperty);
+	}
+	
+	public boolean containsAllModelPropertiesOf(List<ModelProperty> modelProperties) throws IOException {
+		for(ModelProperty mp : modelProperties) {
+			if(!containsModelProperty(mp)) {
+				return false;
+			}
+		}
+		return true;
+	}	
+	
+	public boolean matchModelProperties(List<ModelProperty> hasProperties, List<ModelProperty> doesNotHaveProperties) throws IOException {
+		return containsAllModelPropertiesOf(hasProperties) && containNoModelPropertiesOf(doesNotHaveProperties);
+	}
+	
+	public boolean matchUris(List<String> hasAllUris, List<String> doesNotHaveUris) throws IOException {
+		return hasAllUris(hasAllUris) && hasNoUris(doesNotHaveUris);
+	}
+	
+	public boolean containNoModelPropertiesOf(List<ModelProperty> modelProperties) throws IOException {
+		for(ModelProperty mp : modelProperties) {
+			if(containsModelProperty(mp)) {
+				return false;
+			}
+		}
+		return true;
+	}		
+
+	public boolean hasUri(String uri) throws IOException {
+		for(ModelProperty mp : domainModel.getModelProperties()) {
+			if(mp.getValue().equals(uri)) {
+				return true;
+			}
+		}
+		return false;
+	}
+	
+	public boolean hasAllUris(List<String> uris) throws IOException {
+		for(String s : uris) {
+			if(!hasUri(s)) {
+				return false;
+			}
+		}
+		return true;
+	}
+	
+	public boolean hasNoUris(List<String> uris) throws IOException {
+		for(String s : uris) {
+			if(hasUri(s)) {
+				return false;
+			}
+		}
+		return true;
+	}	
+	
+}