Add tests for both Aether transformers
git-svn-id: https://svn.apache.org/repos/asf/maven/shared/trunk@1685241 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/pom.xml b/pom.xml
index 4922ce8..d0dfb36 100644
--- a/pom.xml
+++ b/pom.xml
@@ -83,6 +83,19 @@
</dependency>
<dependency>
+ <groupId>org.sonatype.aether</groupId>
+ <artifactId>aether-util</artifactId>
+ <version>1.7</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.aether</groupId>
+ <artifactId>aether-util</artifactId>
+ <version>0.9.0.M2</version>
+ <scope>provided</scope>
+ </dependency>
+
+ <dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-container-default</artifactId>
<version>1.5.5</version>
diff --git a/src/main/java/org/apache/maven/shared/artifact/filter/resolve/ScopeFilter.java b/src/main/java/org/apache/maven/shared/artifact/filter/resolve/ScopeFilter.java
index 50450b9..67ac41b 100644
--- a/src/main/java/org/apache/maven/shared/artifact/filter/resolve/ScopeFilter.java
+++ b/src/main/java/org/apache/maven/shared/artifact/filter/resolve/ScopeFilter.java
@@ -19,6 +19,7 @@
* under the License.
*/
+import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
@@ -60,6 +61,17 @@
}
/**
+ * Construct a ScopeFilter based on included scopes
+ *
+ * @param included the scopes to include, must not be {@code null}
+ * @return the filter, never {@code null}
+ */
+ public static ScopeFilter including( String... included )
+ {
+ return new ScopeFilter( Arrays.asList( included ), null );
+ }
+
+ /**
* Construct a ScopeFilter based on excluded scopes
*
* @param excluded the scopes to exclude, may be {@code null}
@@ -71,6 +83,17 @@
}
/**
+ * Construct a ScopeFilter based on excluded scopes
+ *
+ * @param excluded the scopes to exclude, must not be {@code null}
+ * @return the filter, never {@code null}
+ */
+ public static ScopeFilter excluding( String... excluded )
+ {
+ return new ScopeFilter( null, Arrays.asList( excluded ) );
+ }
+
+ /**
* Get the excluded scopes
*
* @return the scopes to exclude, may be {@code null}
diff --git a/src/main/java/org/apache/maven/shared/artifact/filter/resolve/transform/EclipseAetherFilterTransformer.java b/src/main/java/org/apache/maven/shared/artifact/filter/resolve/transform/EclipseAetherFilterTransformer.java
index bf329ae..1713002 100644
--- a/src/main/java/org/apache/maven/shared/artifact/filter/resolve/transform/EclipseAetherFilterTransformer.java
+++ b/src/main/java/org/apache/maven/shared/artifact/filter/resolve/transform/EclipseAetherFilterTransformer.java
@@ -33,6 +33,7 @@
import org.eclipse.aether.graph.DependencyFilter;
import org.eclipse.aether.util.filter.AndDependencyFilter;
import org.eclipse.aether.util.filter.ExclusionsDependencyFilter;
+import org.eclipse.aether.util.filter.OrDependencyFilter;
import org.eclipse.aether.util.filter.PatternExclusionsDependencyFilter;
import org.eclipse.aether.util.filter.PatternInclusionsDependencyFilter;
import org.eclipse.aether.util.filter.ScopeDependencyFilter;
@@ -64,14 +65,14 @@
}
@Override
- public AndDependencyFilter transform( OrFilter orFilter )
+ public OrDependencyFilter transform( OrFilter orFilter )
{
Collection<DependencyFilter> filters = new ArrayList<DependencyFilter>();
for ( TransformableFilter filter : orFilter.getFilters() )
{
filters.add( filter.transform( this ) );
}
- return new AndDependencyFilter( filters );
+ return new OrDependencyFilter( filters );
}
@Override
diff --git a/src/test/java/org/apache/maven/shared/artifact/filter/resolve/transform/EclipseAetherFilterTransformerTest.java b/src/test/java/org/apache/maven/shared/artifact/filter/resolve/transform/EclipseAetherFilterTransformerTest.java
new file mode 100644
index 0000000..37b0431
--- /dev/null
+++ b/src/test/java/org/apache/maven/shared/artifact/filter/resolve/transform/EclipseAetherFilterTransformerTest.java
@@ -0,0 +1,100 @@
+package org.apache.maven.shared.artifact.filter.resolve.transform;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.util.Arrays;
+import java.util.Collections;
+
+import org.apache.maven.shared.artifact.filter.resolve.AndFilter;
+import org.apache.maven.shared.artifact.filter.resolve.ExclusionsFilter;
+import org.apache.maven.shared.artifact.filter.resolve.OrFilter;
+import org.apache.maven.shared.artifact.filter.resolve.PatternExclusionsFilter;
+import org.apache.maven.shared.artifact.filter.resolve.PatternInclusionsFilter;
+import org.apache.maven.shared.artifact.filter.resolve.ScopeFilter;
+import org.apache.maven.shared.artifact.filter.resolve.TransformableFilter;
+import org.eclipse.aether.util.filter.AndDependencyFilter;
+import org.eclipse.aether.util.filter.ExclusionsDependencyFilter;
+import org.eclipse.aether.util.filter.OrDependencyFilter;
+import org.eclipse.aether.util.filter.PatternExclusionsDependencyFilter;
+import org.eclipse.aether.util.filter.PatternInclusionsDependencyFilter;
+import org.eclipse.aether.util.filter.ScopeDependencyFilter;
+import org.junit.Test;
+
+public class EclipseAetherFilterTransformerTest
+{
+
+ private EclipseAetherFilterTransformer transformer = new EclipseAetherFilterTransformer();
+
+ @Test
+ public void testTransformAndFilter()
+ {
+ AndFilter filter = new AndFilter( Arrays.<TransformableFilter>asList( ScopeFilter.including( "compile" ),
+ ScopeFilter.including( "test" ) ) );
+
+ AndDependencyFilter dependencyFilter = (AndDependencyFilter) filter.transform( transformer );
+ }
+
+ @Test
+ public void testTransformExclusionsFilter()
+ {
+ ExclusionsFilter filter = new ExclusionsFilter( Collections.singletonList( "runtime" ) );
+
+ ExclusionsDependencyFilter dependencyFilter = (ExclusionsDependencyFilter) filter.transform( transformer );
+ }
+
+ @Test
+ public void testTransformOrFilter()
+ {
+ OrFilter filter = new OrFilter( Arrays.<TransformableFilter>asList( ScopeFilter.including( "compile" ),
+ ScopeFilter.including( "test" ) ) );
+
+ OrDependencyFilter dependencyFilter = (OrDependencyFilter) filter.transform( transformer );
+
+ }
+
+ @Test
+ public void testTransformScopeFilter()
+ {
+ ScopeFilter filter = ScopeFilter.including( Collections.singletonList( "runtime" ) );
+
+ ScopeDependencyFilter dependencyFilter = (ScopeDependencyFilter) filter.transform( transformer );
+ }
+
+ @Test
+ public void testTransformPatternExclusionsFilter()
+ {
+ PatternExclusionsFilter filter =
+ new PatternExclusionsFilter( Collections.singletonList( "org.apache.maven:*" ) );
+
+ PatternExclusionsDependencyFilter dependencyFilter =
+ (PatternExclusionsDependencyFilter) filter.transform( transformer );
+ }
+
+ @Test
+ public void testTransformPatternInclusionsFilter()
+ {
+ PatternInclusionsFilter filter =
+ new PatternInclusionsFilter( Collections.singletonList( "org.apache.maven:*" ) );
+
+ PatternInclusionsDependencyFilter dependencyFilter =
+ (PatternInclusionsDependencyFilter) filter.transform( transformer );
+ }
+
+}
diff --git a/src/test/java/org/apache/maven/shared/artifact/filter/resolve/transform/SonatypeAetherFilterTransformerTest.java b/src/test/java/org/apache/maven/shared/artifact/filter/resolve/transform/SonatypeAetherFilterTransformerTest.java
new file mode 100644
index 0000000..f60e4c2
--- /dev/null
+++ b/src/test/java/org/apache/maven/shared/artifact/filter/resolve/transform/SonatypeAetherFilterTransformerTest.java
@@ -0,0 +1,100 @@
+package org.apache.maven.shared.artifact.filter.resolve.transform;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.util.Arrays;
+import java.util.Collections;
+
+import org.apache.maven.shared.artifact.filter.resolve.AndFilter;
+import org.apache.maven.shared.artifact.filter.resolve.ExclusionsFilter;
+import org.apache.maven.shared.artifact.filter.resolve.OrFilter;
+import org.apache.maven.shared.artifact.filter.resolve.PatternExclusionsFilter;
+import org.apache.maven.shared.artifact.filter.resolve.PatternInclusionsFilter;
+import org.apache.maven.shared.artifact.filter.resolve.ScopeFilter;
+import org.apache.maven.shared.artifact.filter.resolve.TransformableFilter;
+import org.sonatype.aether.util.filter.AndDependencyFilter;
+import org.sonatype.aether.util.filter.ExclusionsDependencyFilter;
+import org.sonatype.aether.util.filter.OrDependencyFilter;
+import org.sonatype.aether.util.filter.PatternExclusionsDependencyFilter;
+import org.sonatype.aether.util.filter.PatternInclusionsDependencyFilter;
+import org.sonatype.aether.util.filter.ScopeDependencyFilter;
+import org.junit.Test;
+
+public class SonatypeAetherFilterTransformerTest
+{
+
+ private SonatypeAetherFilterTransformer transformer = new SonatypeAetherFilterTransformer();
+
+ @Test
+ public void testTransformAndFilter()
+ {
+ AndFilter filter = new AndFilter( Arrays.<TransformableFilter>asList( ScopeFilter.including( "compile" ),
+ ScopeFilter.including( "test" ) ) );
+
+ AndDependencyFilter dependencyFilter = (AndDependencyFilter) filter.transform( transformer );
+ }
+
+ @Test
+ public void testTransformExclusionsFilter()
+ {
+ ExclusionsFilter filter = new ExclusionsFilter( Collections.singletonList( "runtime" ) );
+
+ ExclusionsDependencyFilter dependencyFilter = (ExclusionsDependencyFilter) filter.transform( transformer );
+ }
+
+ @Test
+ public void testTransformOrFilter()
+ {
+ OrFilter filter = new OrFilter( Arrays.<TransformableFilter>asList( ScopeFilter.including( "compile" ),
+ ScopeFilter.including( "test" ) ) );
+
+ OrDependencyFilter dependencyFilter = (OrDependencyFilter) filter.transform( transformer );
+
+ }
+
+ @Test
+ public void testTransformScopeFilter()
+ {
+ ScopeFilter filter = ScopeFilter.including( Collections.singletonList( "runtime" ) );
+
+ ScopeDependencyFilter dependencyFilter = (ScopeDependencyFilter) filter.transform( transformer );
+ }
+
+ @Test
+ public void testTransformPatternExclusionsFilter()
+ {
+ PatternExclusionsFilter filter =
+ new PatternExclusionsFilter( Collections.singletonList( "org.apache.maven:*" ) );
+
+ PatternExclusionsDependencyFilter dependencyFilter =
+ (PatternExclusionsDependencyFilter) filter.transform( transformer );
+ }
+
+ @Test
+ public void testTransformPatternInclusionsFilter()
+ {
+ PatternInclusionsFilter filter =
+ new PatternInclusionsFilter( Collections.singletonList( "org.apache.maven:*" ) );
+
+ PatternInclusionsDependencyFilter dependencyFilter =
+ (PatternInclusionsDependencyFilter) filter.transform( transformer );
+ }
+
+}