blob: b96ec540110943886cf02d5626a77a92596d7ca2 [file] [log] [blame]
package org.apache.maven.shared.mapping;
/*
* 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 junit.framework.TestCase;
import org.apache.maven.artifact.handler.ArtifactHandler;
import org.apache.maven.artifact.handler.DefaultArtifactHandler;
import org.apache.maven.plugin.testing.stubs.ArtifactStub;
import org.codehaus.plexus.interpolation.InterpolationException;
/**
* Tests the mapping of file names.
*
* @author Stephane Nicoll
*/
public class MappingUtilsTest
extends TestCase
{
public void testCompleteMapping()
throws InterpolationException
{
TestArtifactStub jar = new TestArtifactStub();
jar.setGroupId( "org.apache.sample" );
jar.setArtifactId( "maven-test-lib" );
jar.setVersion( "1.0" );
assertEquals( "maven-test-lib-1.0.jar",
MappingUtils.evaluateFileNameMapping( "@{artifactId}@-@{version}@.@{extension}@", jar ) );
}
public void testNoVersionMapping()
throws InterpolationException
{
TestArtifactStub jar = new TestArtifactStub();
jar.setGroupId( "org.apache.sample" );
jar.setArtifactId( "maven-test-lib" );
jar.setVersion( "1.0" );
assertEquals( "maven-test-lib.jar",
MappingUtils.evaluateFileNameMapping( "@{artifactId}@.@{extension}@", jar ) );
}
public void testMappingWithGroupId()
throws InterpolationException
{
TestArtifactStub jar = new TestArtifactStub();
jar.setGroupId( "org.apache.sample" );
jar.setArtifactId( "maven-test-lib" );
jar.setVersion( "1.0" );
assertEquals( "org.apache.sample-maven-test-lib-1.0.jar",
MappingUtils.evaluateFileNameMapping( "@{groupId}@-@{artifactId}@-@{version}@.@{extension}@",
jar ) );
}
public void testMappingWithClassifier()
throws InterpolationException
{
TestArtifactStub jar = new TestArtifactStub();
jar.setGroupId( "org.apache.sample" );
jar.setArtifactId( "maven-test-lib" );
jar.setVersion( "1.0" );
jar.setClassifier( "classifier" );
assertEquals( "maven-test-lib-1.0-classifier.jar",
MappingUtils.evaluateFileNameMapping( MappingUtils.DEFAULT_FILE_NAME_MAPPING_CLASSIFIER, jar ) );
}
public void testMappingWithNullClassifier()
throws InterpolationException
{
TestArtifactStub jar = new TestArtifactStub();
jar.setGroupId( "org.apache.sample" );
jar.setArtifactId( "maven-test-lib" );
jar.setVersion( "1.0" );
jar.setClassifier( null );
assertEquals( "maven-test-lib-1.0-.jar",
MappingUtils.evaluateFileNameMapping( MappingUtils.DEFAULT_FILE_NAME_MAPPING_CLASSIFIER, jar ) );
}
/**
* Test for MWAR-212.
*/
public void testMappingWithOptionalClassifier()
throws InterpolationException
{
final String MAPPING_WITH_OPTIONAL_CLASSIFIER_1 = "@{artifactId}@-@{version}@@{dashClassifier}@.@{extension}@";
final String MAPPING_WITH_OPTIONAL_CLASSIFIER_2 = "@{artifactId}@-@{version}@@{dashClassifier?}@.@{extension}@";
TestArtifactStub jar = new TestArtifactStub();
jar.setGroupId( "org.apache.sample" );
jar.setArtifactId( "maven-test-lib" );
jar.setVersion( "1.0" );
assertEquals( "maven-test-lib-1.0.jar",
MappingUtils.evaluateFileNameMapping( MAPPING_WITH_OPTIONAL_CLASSIFIER_1, jar ) );
assertEquals( "maven-test-lib-1.0.jar",
MappingUtils.evaluateFileNameMapping( MAPPING_WITH_OPTIONAL_CLASSIFIER_2, jar ) );
jar = new TestArtifactStub();
jar.setGroupId( "org.apache.sample" );
jar.setArtifactId( "maven-test-lib" );
jar.setVersion( "1.0" );
jar.setClassifier( "classifier" );
assertEquals( "maven-test-lib-1.0-classifier.jar",
MappingUtils.evaluateFileNameMapping( MAPPING_WITH_OPTIONAL_CLASSIFIER_1, jar ) );
assertEquals( "maven-test-lib-1.0-classifier.jar",
MappingUtils.evaluateFileNameMapping( MAPPING_WITH_OPTIONAL_CLASSIFIER_2, jar ) );
}
// A very dumb stub used to test the mappings
class TestArtifactStub
extends ArtifactStub
{
/**
* Override in this class because there is no setter in ArtifactStub.
*/
protected String classifier;
public TestArtifactStub()
{
super();
setType( "jar" );
}
/**
* Override in this class because ArtifactStub always returns null.
*/
@Override
public ArtifactHandler getArtifactHandler()
{
return new DefaultArtifactHandler( getType() );
}
@Override
public String getBaseVersion()
{
return getVersion();
}
@Override
public String getClassifier()
{
return classifier;
}
public void setClassifier( String classifier )
{
this.classifier = classifier;
}
}
}