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;
+ }
+
+}