blob: 546005126181a20bcbc619548573cfde14347d20 [file] [log] [blame]
package org.apache.maven.plugin.assembly.archive.task.testutils;
/*
* 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.io.File;
import java.io.IOException;
import java.util.List;
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.handler.ArtifactHandler;
import org.easymock.classextension.EasyMockSupport;
import static org.easymock.EasyMock.expect;
public class ArtifactMock
{
private final Artifact artifact;
private final ArtifactHandler handler;
private String groupId;
private String artifactId;
private String baseVersion;
private File file;
private Boolean isSnapshot;
private String version;
private List<String> dependencyTrail;
private String id;
private String dependencyConflictId;
private String typeAndExt;
private final String classifier;
public ArtifactMock( final EasyMockSupport mockManager, final String groupId, final String artifactId,
final String version, final String type, final boolean isSnapshot )
{
this( mockManager, groupId, artifactId, version, type, null, isSnapshot, null, null );
}
public ArtifactMock( final EasyMockSupport mockManager, final String groupId, final String artifactId,
final String version, final String type, final boolean isSnapshot, final String baseVersion )
{
this( mockManager, groupId, artifactId, version, type, null, isSnapshot, baseVersion, null );
}
public ArtifactMock( final EasyMockSupport mockManager, final String groupId, final String artifactId,
final String version, final String type, final String classifier, final boolean isSnapshot )
{
this( mockManager, groupId, artifactId, version, type, classifier, isSnapshot, null, null );
}
public ArtifactMock( final EasyMockSupport mockManager, final String groupId, final String artifactId,
final String version, final String type, final String classifier, final boolean isSnapshot,
final String baseVersion )
{
this( mockManager, groupId, artifactId, version, type, classifier, isSnapshot, baseVersion, null );
}
private ArtifactMock( final EasyMockSupport mockManager, final String groupId, final String artifactId,
final String version, final String type, final String classifier, final boolean isSnapshot,
final String baseVersion, String scope )
{
artifact = mockManager.createMock( Artifact.class );
if ( scope == null )
{
scope = Artifact.SCOPE_COMPILE;
}
expect( artifact.getScope()).andReturn( scope ).anyTimes();
handler = mockManager.createMock( ArtifactHandler.class );
expect(artifact.getArtifactHandler()).andReturn( handler ).anyTimes();
this.classifier = classifier;
expect(artifact.getClassifier()).andReturn( classifier ).anyTimes();
setSnapshot( isSnapshot );
setGroupId( groupId );
setArtifactId( artifactId );
setVersion( version );
setBaseVersion( baseVersion );
setType( type );
setId();
setDependencyConflictId();
}
public void setExtension( final String extension )
{
setTypeAndExt( extension );
}
public Artifact getArtifact()
{
return artifact;
}
void setArtifactId( final String artifactId )
{
if ( ( artifactId != null ) && ( this.artifactId == null ) )
{
expect(artifact.getArtifactId()).andReturn( artifactId ).anyTimes();
this.artifactId = artifactId;
}
}
public void setBaseVersion( final String baseVersion )
{
if ( ( baseVersion != null ) && ( this.baseVersion == null ) )
{
expect(artifact.getBaseVersion()).andReturn( baseVersion ).anyTimes();
this.baseVersion = baseVersion;
}
}
public void setFile( final File destination )
{
if ( ( destination != null ) && ( file == null ) )
{
expect(artifact.getFile()).andReturn( destination ).anyTimes();
file = destination;
}
}
void setGroupId( final String groupId )
{
if ( ( groupId != null ) && ( this.groupId == null ) )
{
expect(artifact.getGroupId()).andReturn( groupId ).anyTimes();
this.groupId = groupId;
}
}
void setVersion( final String version )
{
if ( ( version != null ) && ( this.version == null ) )
{
expect(artifact.getVersion()).andReturn( version ).anyTimes();
this.version = version;
if ( isSnapshot != Boolean.TRUE )
{
setBaseVersion( version );
setSnapshot( false );
}
}
}
public void setDependencyTrail( final List<String> dependencyTrail )
{
if ( ( dependencyTrail != null ) && ( this.dependencyTrail == null ) )
{
expect(artifact.getDependencyTrail()).andReturn( dependencyTrail ).anyTimes();
this.dependencyTrail = dependencyTrail;
}
}
void setId( final String id )
{
if ( ( id != null ) && ( this.id == null ) )
{
expect(artifact.getId()).andReturn( id ).anyTimes();
this.id = id;
}
}
void setDependencyConflictId( final String id )
{
if ( ( id != null ) && ( dependencyConflictId == null ) )
{
expect( artifact.getDependencyConflictId()).andReturn( id ).anyTimes();
dependencyConflictId = id;
}
}
void setSnapshot( final boolean snapshot )
{
if ( isSnapshot == null )
{
expect(artifact.isSnapshot()).andReturn( snapshot ).anyTimes();
isSnapshot = snapshot;
}
}
public File setNewFile()
throws IOException
{
if ( file == null )
{
final File newFile = File.createTempFile( "ArtifactMock.test.", "" );
newFile.deleteOnExit();
expect( artifact.getFile()).andReturn( newFile ).anyTimes();
file = newFile;
}
return file;
}
void setType( final String type )
{
setTypeAndExt( type );
}
private void setTypeAndExt( final String type )
{
if ( ( type != null ) && ( typeAndExt == null ) )
{
expect(artifact.getType()).andReturn( type ).anyTimes();
expect(handler.getExtension()).andReturn( type ).anyTimes();
typeAndExt = type;
}
}
private void setDependencyConflictId()
{
if ( ( groupId != null ) && ( artifactId != null ) && ( typeAndExt != null ) )
{
final String id =
groupId + ":" + artifactId + ":" + typeAndExt + ( classifier == null ? "" : ":" + classifier );
setDependencyConflictId( id );
}
}
private void setId()
{
if ( ( groupId != null ) && ( artifactId != null ) && ( typeAndExt != null ) && ( version != null ) )
{
final String id =
groupId + ":" + artifactId + ":" + version + ":" + typeAndExt
+ ( classifier == null ? "" : ":" + classifier );
setId( id );
}
}
public void setNullFile()
{
expect(artifact.getFile()).andReturn( null ).anyTimes();
file = new File( "set-to-null" );
}
}