Author: brianf Date: Tue Oct 3 21:07:13 2006 New Revision: 452714 URL: http://svn.apache.org/viewvc?view=rev&rev=452714 Log: more unit tests
Added: maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/translators/ maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/translators/TestClassifierTypeTranslator.java Modified: maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/translators/ClassifierTypeTranslator.java maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/AbstractDependencyMojoTestCase.java maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/ArtifactStubFactory.java Modified: maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/translators/ClassifierTypeTranslator.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/translators/ClassifierTypeTranslator.java?view=diff&rev=452714&r1=452713&r2=452714 ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/translators/ClassifierTypeTranslator.java (original) +++ maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/translators/ClassifierTypeTranslator.java Tue Oct 3 21:07:13 2006 @@ -25,10 +25,11 @@ import org.apache.maven.artifact.Artifact; import org.apache.maven.artifact.factory.ArtifactFactory; import org.apache.maven.plugin.logging.Log; +import org.codehaus.plexus.util.StringUtils; /** * @author brianf - * + * */ public class ClassifierTypeTranslator implements ArtifactTranslator @@ -47,8 +48,11 @@ this.factory = factory; } - /* (non-Javadoc) - * @see org.apache.mojo.dependency.utils.translators.ArtifactTranslator#translate(java.util.Set, org.apache.maven.plugin.logging.Log) + /* + * (non-Javadoc) + * + * @see org.apache.mojo.dependency.utils.translators.ArtifactTranslator#translate(java.util.Set, + * org.apache.maven.plugin.logging.Log) */ public Set translate( Set artifacts, Log log ) { @@ -59,9 +63,37 @@ for ( Iterator i = artifacts.iterator(); i.hasNext(); ) { Artifact artifact = (Artifact) i.next(); + + //this translator must pass both type and classifier here so we will use the + //base artifact value if null comes in + String useType = null; + if ( StringUtils.isNotEmpty(this.type) ) + { + useType = this.type; + } + else + { + useType = artifact.getType(); + } + + String useClassifier = null; + if ( StringUtils.isNotEmpty(this.classifier) ) + { + useClassifier = this.classifier; + } + else + { + useClassifier = artifact.getClassifier(); + } + // Create a new artifact Artifact newArtifact = factory.createArtifactWithClassifier( artifact.getGroupId(), artifact - .getArtifactId(), artifact.getVersion(), this.type, this.classifier ); + .getArtifactId(), artifact.getVersion(), useType, useClassifier ); + + // note the new artifacts will always have the scope set to null. We + // should + // reset it here so that it will pass other filters if needed + newArtifact.setScope( artifact.getScope() ); results.add( newArtifact ); } @@ -78,7 +110,8 @@ } /** - * @param classifier The classifier to set. + * @param classifier + * The classifier to set. */ public void setClassifier( String classifier ) { @@ -94,7 +127,8 @@ } /** - * @param type The type to set. + * @param type + * The type to set. */ public void setType( String type ) { Modified: maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/AbstractDependencyMojoTestCase.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/AbstractDependencyMojoTestCase.java?view=diff&rev=452714&r1=452713&r2=452714 ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/AbstractDependencyMojoTestCase.java (original) +++ maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/AbstractDependencyMojoTestCase.java Tue Oct 3 21:07:13 2006 @@ -39,17 +39,20 @@ protected void tearDown() { - try + if ( testDir != null ) { - DependencyTestUtils.removeDirectory( testDir ); + try + { + DependencyTestUtils.removeDirectory( testDir ); + } + catch ( IOException e ) + { + // TODO Auto-generated catch block + e.printStackTrace(); + fail("Trying to remove directory:"+testDir); + } + assertFalse( testDir.exists() ); } - catch ( IOException e ) - { - // TODO Auto-generated catch block - e.printStackTrace(); - assertTrue( false ); - } - assertFalse( testDir.exists() ); } } Modified: maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/ArtifactStubFactory.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/ArtifactStubFactory.java?view=diff&rev=452714&r1=452713&r2=452714 ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/ArtifactStubFactory.java (original) +++ maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/ArtifactStubFactory.java Tue Oct 3 21:07:13 2006 @@ -10,7 +10,6 @@ import org.apache.maven.artifact.handler.ArtifactHandler; import org.apache.maven.artifact.handler.DefaultArtifactHandler; import org.apache.maven.artifact.versioning.VersionRange; -import org.codehaus.plexus.util.StringUtils; public class ArtifactStubFactory { @@ -106,9 +105,18 @@ { Set set = new HashSet(); set.add(createArtifact("g","a","1.0",Artifact.SCOPE_COMPILE,"war",null)); - set.add(createArtifact("g","a","1.0",Artifact.SCOPE_COMPILE,"jar",null)); - set.add(createArtifact("g","a","1.0",Artifact.SCOPE_COMPILE,"sources",null)); - set.add(createArtifact("g","a","1.0",Artifact.SCOPE_COMPILE,"zip",null)); + set.add(createArtifact("g","b","1.0",Artifact.SCOPE_COMPILE,"jar",null)); + set.add(createArtifact("g","c","1.0",Artifact.SCOPE_COMPILE,"sources",null)); + set.add(createArtifact("g","d","1.0",Artifact.SCOPE_COMPILE,"zip",null)); return set; + } + + public Set getMixedArtifacts() + { + Set set = new HashSet(); + set.addAll(getTypedArtifacts()); + set.addAll(getScopedArtifacts()); + set.addAll(getReleaseAndSnapshotArtifacts()); + return set; } } Added: maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/translators/TestClassifierTypeTranslator.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/translators/TestClassifierTypeTranslator.java?view=auto&rev=452714 ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/translators/TestClassifierTypeTranslator.java (added) +++ maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/utils/translators/TestClassifierTypeTranslator.java Tue Oct 3 21:07:13 2006 @@ -0,0 +1,196 @@ +/* + * Copyright 2005-2006 Brian Fox ([EMAIL PROTECTED]) + * + * Licensed 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. + */ +/** + * + */ +package org.apache.maven.plugin.dependency.utils.translators; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Set; + +import org.apache.maven.artifact.Artifact; +import org.apache.maven.artifact.factory.ArtifactFactory; +import org.apache.maven.artifact.factory.DefaultArtifactFactory; +import org.apache.maven.artifact.handler.manager.ArtifactHandlerManager; +import org.apache.maven.artifact.handler.manager.DefaultArtifactHandlerManager; +import org.apache.maven.plugin.dependency.AbstractDependencyMojoTestCase; +import org.apache.maven.plugin.dependency.utils.ArtifactStubFactory; +import org.apache.maven.plugin.dependency.utils.SilentLog; +import org.apache.maven.plugin.logging.Log; + +/** + * @author brianf + * + */ +public class TestClassifierTypeTranslator + extends AbstractDependencyMojoTestCase +{ + Set artifacts = new HashSet(); + + ArtifactFactory artifactFactory; + + Log log = new SilentLog(); + + protected void setUp() + throws Exception + { + super.setUp(); + + ArtifactHandlerManager manager = new DefaultArtifactHandlerManager(); + this.setVariableValueToObject(manager,"artifactHandlers",new HashMap()); + + artifactFactory = new DefaultArtifactFactory(); + this.setVariableValueToObject(artifactFactory,"artifactHandlerManager",manager); + + ArtifactStubFactory factory = new ArtifactStubFactory( null, false ); + artifacts = factory.getMixedArtifacts(); + } + + public void testNullClassifier() + { + doTestNullEmptyClassifier(null); + } + public void testEmptyClassifier() + { + doTestNullEmptyClassifier(""); + } + + public void doTestNullEmptyClassifier(String classifier) + { + String type = "zip"; + + ArtifactTranslator at = new ClassifierTypeTranslator( classifier,type, artifactFactory ); + Set results = at.translate(artifacts,log); + + Iterator iter = artifacts.iterator(); + + while (iter.hasNext()) + { + Artifact artifact = (Artifact) iter.next(); + Iterator resultIter = results.iterator(); + boolean found = false; + while (!found && resultIter.hasNext() ) + { + Artifact translatedArtifact = (Artifact) resultIter.next(); + if (artifact.getArtifactId() == translatedArtifact.getArtifactId() && + artifact.getGroupId() == translatedArtifact.getGroupId() && + artifact.getScope() == translatedArtifact.getScope()) + { + //classifier is null, should be the same as the artifact + assertEquals(artifact.getClassifier(),translatedArtifact.getClassifier()); + assertEquals(type,translatedArtifact.getType()); + + found = true; + break; + } + } + assertTrue(found); + } + } + + public void testNullType() + { + doTestNullEmptyType(null); + } + public void testEmptyType() + { + doTestNullEmptyType(""); + } + + public void doTestNullEmptyType(String type) + { + String classifier = "jdk5"; + + ArtifactTranslator at = new ClassifierTypeTranslator( classifier,type, artifactFactory ); + Set results = at.translate(artifacts,log); + + Iterator iter = artifacts.iterator(); + + while (iter.hasNext()) + { + Artifact artifact = (Artifact) iter.next(); + Iterator resultIter = results.iterator(); + boolean found = false; + while (!found && resultIter.hasNext() ) + { + Artifact translatedArtifact = (Artifact) resultIter.next(); + if (artifact.getArtifactId() == translatedArtifact.getArtifactId() && + artifact.getGroupId() == translatedArtifact.getGroupId() && + artifact.getScope() == translatedArtifact.getScope()) + { + //classifier is null, should be the same as the artifact + assertEquals(classifier,translatedArtifact.getClassifier()); + assertEquals(artifact.getType(),translatedArtifact.getType()); + + found = true; + break; + } + } + assertTrue(found); + } + } + + public void testClassifierAndType() + { + String classifier = "jdk14"; + String type = "sources"; + ArtifactTranslator at = new ClassifierTypeTranslator( classifier,type, artifactFactory ); + Set results = at.translate(artifacts,log); + + Iterator iter = artifacts.iterator(); + + while (iter.hasNext()) + { + Artifact artifact = (Artifact) iter.next(); + Iterator resultIter = results.iterator(); + boolean found = false; + while (!found && resultIter.hasNext() ) + { + Artifact translatedArtifact = (Artifact) resultIter.next(); + if (artifact.getArtifactId() == translatedArtifact.getArtifactId() && + artifact.getGroupId() == translatedArtifact.getGroupId() && + artifact.getScope() == translatedArtifact.getScope()) + { + assertEquals(translatedArtifact.getClassifier(),classifier); + assertEquals(translatedArtifact.getType(),type); + + found = true; + break; + } + } + assertTrue(found); + } + } + + public void testGetterSetter() + { + String classifier = "class"; + String type = "type"; + ClassifierTypeTranslator at = new ClassifierTypeTranslator( classifier,type, artifactFactory ); + + assertEquals(classifier,at.getClassifier()); + assertEquals(type,at.getType()); + + at.setClassifier(type); + at.setType(classifier); + + assertEquals(type,at.getClassifier()); + assertEquals(classifier,at.getType()); + + } +}