blob: 2b6c284ef51fe530871fcb0c2452e35f5523e62b [file] [log] [blame]
package org.apache.maven.scm.provider;
/*
* 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 org.apache.maven.scm.CommandParameters;
import org.apache.maven.scm.ScmBranch;
import org.apache.maven.scm.ScmBranchParameters;
import org.apache.maven.scm.ScmException;
import org.apache.maven.scm.ScmFile;
import org.apache.maven.scm.ScmFileSet;
import org.apache.maven.scm.ScmTagParameters;
import org.apache.maven.scm.ScmVersion;
import org.apache.maven.scm.command.add.AddScmResult;
import org.apache.maven.scm.command.blame.BlameScmRequest;
import org.apache.maven.scm.command.blame.BlameScmResult;
import org.apache.maven.scm.command.branch.BranchScmResult;
import org.apache.maven.scm.command.changelog.ChangeLogScmRequest;
import org.apache.maven.scm.command.changelog.ChangeLogScmResult;
import org.apache.maven.scm.command.checkin.CheckInScmResult;
import org.apache.maven.scm.command.checkout.CheckOutScmResult;
import org.apache.maven.scm.command.diff.DiffScmResult;
import org.apache.maven.scm.command.edit.EditScmResult;
import org.apache.maven.scm.command.export.ExportScmResult;
import org.apache.maven.scm.command.info.InfoScmResult;
import org.apache.maven.scm.command.list.ListScmResult;
import org.apache.maven.scm.command.mkdir.MkdirScmResult;
import org.apache.maven.scm.command.remoteinfo.RemoteInfoScmResult;
import org.apache.maven.scm.command.remove.RemoveScmResult;
import org.apache.maven.scm.command.status.StatusScmResult;
import org.apache.maven.scm.command.tag.TagScmResult;
import org.apache.maven.scm.command.unedit.UnEditScmResult;
import org.apache.maven.scm.command.untag.UntagScmResult;
import org.apache.maven.scm.command.update.UpdateScmResult;
import org.apache.maven.scm.log.ScmLogger;
import org.apache.maven.scm.repository.ScmRepository;
import org.apache.maven.scm.repository.ScmRepositoryException;
import org.apache.maven.scm.repository.UnknownRepositoryStructure;
import java.io.File;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
/**
* Stub implementation of ScmProvider for unit testing purposes.
* It allows setting the expected results that the different methods will return.
* More information about Stubs on
* <a href="http://martinfowler.com/bliki/TestDouble.html">Martin Fowler's TestDouble</a>
*
* @author <a href="mailto:carlos@apache.org">Carlos Sanchez</a>
*
*/
public class ScmProviderStub
implements ScmProvider
{
private String scmType, scmSpecificFilename;
private List<ScmLogger> loggers = new ArrayList<ScmLogger>();
private boolean requiresEditmode;
private ScmProviderRepository scmProviderRepository = new ScmProviderRepositoryStub();
private List<String> errors = new ArrayList<String>();
private AddScmResult addScmResult;
private BranchScmResult branchScmResult;
private CheckInScmResult checkInScmResult;
private CheckOutScmResult checkOutScmResult;
private ChangeLogScmResult changeLogScmResult;
private DiffScmResult diffScmResult;
private RemoveScmResult removeScmResult;
private StatusScmResult statusScmResult;
private TagScmResult tagScmResult;
private UpdateScmResult updateScmResult;
private EditScmResult editScmResult;
private UnEditScmResult unEditScmResult;
private ListScmResult listScmResult;
private ExportScmResult exportScmResult;
private BlameScmResult blameScmResult;
private MkdirScmResult mkdirScmResult;
private UntagScmResult untagScmResult;
/**
* Create a new ScmProviderStub with bogus (not null) attributes
*/
public ScmProviderStub()
{
setScmSpecificFilename( "" );
setAddScmResult( new AddScmResult( "", Collections.<ScmFile>emptyList() ) );
setBranchScmResult( new BranchScmResult( "", Collections.<ScmFile>emptyList() ) );
setChangeLogScmResult( new ChangeLogScmResult( "", "", "", true ) );
setCheckInScmResult( new CheckInScmResult( "", "", "", true ) );
setCheckOutScmResult( new CheckOutScmResult( "", "", "", true ) );
setDiffScmResult( new DiffScmResult( "", "", "", true ) );
setEditScmResult( new EditScmResult( "", "", "", true ) );
setExportScmResult( new ExportScmResult( "", "", "", true ) );
setRemoveScmResult( new RemoveScmResult( "", "", "", true ) );
setStatusScmResult( new StatusScmResult( "", "", "", true ) );
setTagScmResult( new TagScmResult( "", "", "", true ) );
setUnEditScmResult( new UnEditScmResult( "", "", "", true ) );
setUntagScmResult( new UntagScmResult( "", "", "", true ) );
setUpdateScmResult( new UpdateScmResult( "", "", "", true ) );
setBlameScmResult( new BlameScmResult( "", "", "", true ) );
setMkdirScmResult( new MkdirScmResult( "", "", "", true ) );
}
/**
* {@inheritDoc}
*/
public String sanitizeTagName( String tag )
{
return tag;
}
/**
* {@inheritDoc}
*/
public boolean validateTagName( String tag )
{
return true;
}
/**
* {@inheritDoc}
*/
public String getScmType()
{
return scmType;
}
public void setScmSpecificFilename( String scmSpecificFilename )
{
this.scmSpecificFilename = scmSpecificFilename;
}
/**
* {@inheritDoc}
*/
public void addListener( ScmLogger logger )
{
loggers.add( logger );
}
public boolean requiresEditMode()
{
return requiresEditmode;
}
public void setAddScmResult( AddScmResult addScmResult )
{
this.addScmResult = addScmResult;
}
public AddScmResult getAddScmResult()
{
return addScmResult;
}
public void setBranchScmResult( BranchScmResult branchScmResult )
{
this.branchScmResult = branchScmResult;
}
public BranchScmResult getBranchScmResult()
{
return branchScmResult;
}
public void setCheckInScmResult( CheckInScmResult checkInScmResult )
{
this.checkInScmResult = checkInScmResult;
}
public CheckInScmResult getCheckInScmResult()
{
return checkInScmResult;
}
public void setCheckOutScmResult( CheckOutScmResult checkOutScmResult )
{
this.checkOutScmResult = checkOutScmResult;
}
public CheckOutScmResult getCheckOutScmResult()
{
return checkOutScmResult;
}
public void setChangeLogScmResult( ChangeLogScmResult changeLogScmResult )
{
this.changeLogScmResult = changeLogScmResult;
}
public ChangeLogScmResult getChangeLogScmResult()
{
return changeLogScmResult;
}
public void setDiffScmResult( DiffScmResult diffScmResult )
{
this.diffScmResult = diffScmResult;
}
public DiffScmResult getDiffScmResult()
{
return diffScmResult;
}
public ExportScmResult getExportScmResult()
{
return exportScmResult;
}
public void setExportScmResult( ExportScmResult exportScmResult )
{
this.exportScmResult = exportScmResult;
}
public void setTagScmResult( TagScmResult tagScmResult )
{
this.tagScmResult = tagScmResult;
}
public TagScmResult getTagScmResult()
{
return tagScmResult;
}
public void setUntagScmResult( UntagScmResult untagScmResult )
{
this.untagScmResult = untagScmResult;
}
public UntagScmResult getUntagScmResult()
{
return untagScmResult;
}
public void setRemoveScmResult( RemoveScmResult removeScmResult )
{
this.removeScmResult = removeScmResult;
}
public RemoveScmResult getRemoveScmResult()
{
return removeScmResult;
}
public void setStatusScmResult( StatusScmResult statusScmResult )
{
this.statusScmResult = statusScmResult;
}
public StatusScmResult getStatusScmResult()
{
return statusScmResult;
}
public void setUpdateScmResult( UpdateScmResult updateScmResult )
{
this.updateScmResult = updateScmResult;
}
public UpdateScmResult getUpdateScmResult()
{
return updateScmResult;
}
public void setEditScmResult( EditScmResult editScmResult )
{
this.editScmResult = editScmResult;
}
public EditScmResult getEditScmResult()
{
return editScmResult;
}
public void setUnEditScmResult( UnEditScmResult unEditScmResult )
{
this.unEditScmResult = unEditScmResult;
}
public UnEditScmResult getUnEditScmResult()
{
return unEditScmResult;
}
public void setListScmResult( ListScmResult listScmResult )
{
this.listScmResult = listScmResult;
}
public ListScmResult getListScmResult()
{
return listScmResult;
}
public void setBlameScmResult( BlameScmResult blameScmResult )
{
this.blameScmResult = blameScmResult;
}
public BlameScmResult getBlameScmResult()
{
return blameScmResult;
}
public MkdirScmResult getMkdirScmResult()
{
return mkdirScmResult;
}
public void setMkdirScmResult( MkdirScmResult mkdirScmResult )
{
this.mkdirScmResult = mkdirScmResult;
}
/**
* {@inheritDoc}
*/
public ScmProviderRepository makeProviderScmRepository( String scmSpecificUrl, char delimiter )
throws ScmRepositoryException
{
return scmProviderRepository;
}
/**
* {@inheritDoc}
*/
public ScmProviderRepository makeProviderScmRepository( File path )
throws ScmRepositoryException, UnknownRepositoryStructure
{
return scmProviderRepository;
}
/**
* {@inheritDoc}
*/
public List<String> validateScmUrl( String scmSpecificUrl, char delimiter )
{
return errors;
}
/**
* {@inheritDoc}
*/
public String getScmSpecificFilename()
{
return scmSpecificFilename;
}
/**
* {@inheritDoc}
*/
public AddScmResult add( ScmRepository repository, ScmFileSet fileSet )
throws ScmException
{
return getAddScmResult();
}
/**
* {@inheritDoc}
*/
public AddScmResult add( ScmRepository repository, ScmFileSet fileSet, String message )
throws ScmException
{
return getAddScmResult();
}
public AddScmResult add( ScmRepository repository, ScmFileSet fileSet, CommandParameters commandParameters )
throws ScmException
{
return getAddScmResult();
}
/**
* {@inheritDoc}
*/
public BranchScmResult branch( ScmRepository repository, ScmFileSet fileSet, String branchName )
throws ScmException
{
return getBranchScmResult();
}
/**
* {@inheritDoc}
*/
public BranchScmResult branch( ScmRepository repository, ScmFileSet fileSet, String branchName, String message )
throws ScmException
{
return getBranchScmResult();
}
/**
* {@inheritDoc}
*/
public BranchScmResult branch( ScmRepository repository, ScmFileSet fileSet, String branchName,
ScmBranchParameters scmBranchParameters )
throws ScmException
{
return getBranchScmResult();
}
/**
* {@inheritDoc}
*/
public ChangeLogScmResult changeLog( ScmRepository repository, ScmFileSet fileSet, Date startDate, Date endDate,
int numDays, String branch )
throws ScmException
{
return getChangeLogScmResult();
}
/**
* {@inheritDoc}
*/
public ChangeLogScmResult changeLog( ScmRepository repository, ScmFileSet fileSet, Date startDate, Date endDate,
int numDays, String branch, String datePattern )
throws ScmException
{
return getChangeLogScmResult();
}
/**
* {@inheritDoc}
*/
public ChangeLogScmResult changeLog( ScmRepository repository, ScmFileSet fileSet, String startTag, String endTag )
throws ScmException
{
return getChangeLogScmResult();
}
/**
* {@inheritDoc}
*/
public ChangeLogScmResult changeLog( ScmRepository repository, ScmFileSet fileSet, String startTag, String endTag,
String datePattern )
throws ScmException
{
return getChangeLogScmResult();
}
/**
* {@inheritDoc}
*/
public ChangeLogScmResult changeLog( ScmRepository repository, ScmFileSet fileSet, Date startDate, Date endDate,
int numDays, ScmBranch branch )
throws ScmException
{
return getChangeLogScmResult();
}
/**
* {@inheritDoc}
*/
public ChangeLogScmResult changeLog( ScmRepository repository, ScmFileSet fileSet, Date startDate, Date endDate,
int numDays, ScmBranch branch, String datePattern )
throws ScmException
{
return getChangeLogScmResult();
}
public ChangeLogScmResult changeLog( ChangeLogScmRequest scmRequest )
throws ScmException
{
return getChangeLogScmResult();
}
/**
* {@inheritDoc}
*/
public ChangeLogScmResult changeLog( ScmRepository repository, ScmFileSet fileSet, ScmVersion startVersion,
ScmVersion endVersion )
throws ScmException
{
return getChangeLogScmResult();
}
/**
* {@inheritDoc}
*/
public ChangeLogScmResult changeLog( ScmRepository repository, ScmFileSet fileSet, ScmVersion startRevision,
ScmVersion endRevision, String datePattern )
throws ScmException
{
return getChangeLogScmResult();
}
/**
* {@inheritDoc}
*/
public CheckInScmResult checkIn( ScmRepository repository, ScmFileSet fileSet, String tag, String message )
throws ScmException
{
return getCheckInScmResult();
}
/**
* {@inheritDoc}
*/
public CheckInScmResult checkIn( ScmRepository repository, ScmFileSet fileSet, String message )
throws ScmException
{
return getCheckInScmResult();
}
/**
* {@inheritDoc}
*/
public CheckInScmResult checkIn( ScmRepository repository, ScmFileSet fileSet, ScmVersion revision, String message )
throws ScmException
{
return getCheckInScmResult();
}
/**
* {@inheritDoc}
*/
public CheckOutScmResult checkOut( ScmRepository scmRepository, ScmFileSet scmFileSet, String tag,
boolean recursive )
throws ScmException
{
return getCheckOutScmResult();
}
/**
* {@inheritDoc}
*/
public CheckOutScmResult checkOut( ScmRepository repository, ScmFileSet fileSet, String tag )
throws ScmException
{
return getCheckOutScmResult();
}
/**
* {@inheritDoc}
*/
public CheckOutScmResult checkOut( ScmRepository repository, ScmFileSet fileSet )
throws ScmException
{
return getCheckOutScmResult();
}
/**
* {@inheritDoc}
*/
public CheckOutScmResult checkOut( ScmRepository repository, ScmFileSet fileSet, ScmVersion version )
throws ScmException
{
return getCheckOutScmResult();
}
/**
* {@inheritDoc}
*/
public CheckOutScmResult checkOut( ScmRepository scmRepository, ScmFileSet scmFileSet, boolean recursive )
throws ScmException
{
return getCheckOutScmResult();
}
/**
* {@inheritDoc}
*/
public CheckOutScmResult checkOut( ScmRepository scmRepository, ScmFileSet scmFileSet, ScmVersion version,
boolean recursive )
throws ScmException
{
return getCheckOutScmResult();
}
@Override
public CheckOutScmResult checkOut( ScmRepository scmRepository, ScmFileSet scmFileSet, ScmVersion version,
CommandParameters commandParameters )
throws ScmException
{
return getCheckOutScmResult();
}
/**
* {@inheritDoc}
*/
public DiffScmResult diff( ScmRepository repository, ScmFileSet fileSet, String startRevision, String endRevision )
throws ScmException
{
return getDiffScmResult();
}
/**
* {@inheritDoc}
*/
public DiffScmResult diff( ScmRepository scmRepository, ScmFileSet scmFileSet, ScmVersion startVersion,
ScmVersion endVersion )
throws ScmException
{
return getDiffScmResult();
}
/**
* @return getUpdateScmResult() always
*/
public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, String tag, Date lastUpdate,
String datePattern, boolean runChangelog )
throws ScmException
{
return getUpdateScmResult();
}
/**
* {@inheritDoc}
*/
public EditScmResult edit( ScmRepository repository, ScmFileSet fileSet )
throws ScmException
{
return getEditScmResult();
}
/**
* {@inheritDoc}
*/
public ExportScmResult export( ScmRepository repository, ScmFileSet fileSet, String tag )
throws ScmException
{
return getExportScmResult();
}
/**
* {@inheritDoc}
*/
public ExportScmResult export( ScmRepository repository, ScmFileSet fileSet, String tag, String outputDirectory )
throws ScmException
{
return getExportScmResult();
}
/**
* {@inheritDoc}
*/
public ExportScmResult export( ScmRepository repository, ScmFileSet fileSet )
throws ScmException
{
return getExportScmResult();
}
/**
* {@inheritDoc}
*/
public ExportScmResult export( ScmRepository repository, ScmFileSet fileSet, ScmVersion version )
throws ScmException
{
return getExportScmResult();
}
/**
* {@inheritDoc}
*/
public ExportScmResult export( ScmRepository repository, ScmFileSet fileSet, ScmVersion version,
String outputDirectory )
throws ScmException
{
return getExportScmResult();
}
/**
* {@inheritDoc}
*/
public ListScmResult list( ScmRepository repository, ScmFileSet fileSet, boolean recursive, String tag )
throws ScmException
{
return getListScmResult();
}
/**
* {@inheritDoc}
*/
public ListScmResult list( ScmRepository repository, ScmFileSet fileSet, boolean recursive, ScmVersion version )
throws ScmException
{
return getListScmResult();
}
/**
* {@inheritDoc}
*/
public RemoveScmResult remove( ScmRepository repository, ScmFileSet fileSet, String message )
throws ScmException
{
return getRemoveScmResult();
}
/**
* {@inheritDoc}
*/
public StatusScmResult status( ScmRepository repository, ScmFileSet fileSet )
throws ScmException
{
return getStatusScmResult();
}
/**
* {@inheritDoc}
*/
public TagScmResult tag( ScmRepository repository, ScmFileSet fileSet, String tag )
throws ScmException
{
return getTagScmResult();
}
/**
* {@inheritDoc}
*/
public TagScmResult tag( ScmRepository repository, ScmFileSet fileSet, String tag, String message )
throws ScmException
{
return getTagScmResult();
}
public TagScmResult tag( ScmRepository repository, ScmFileSet fileSet, String tagName,
ScmTagParameters scmTagParameters )
throws ScmException
{
return getTagScmResult();
}
public UntagScmResult untag( ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters )
throws ScmException
{
return getUntagScmResult();
}
/**
* {@inheritDoc}
*/
public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, String tag )
throws ScmException
{
return getUpdateScmResult();
}
/**
* {@inheritDoc}
*/
public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, String tag, boolean runChangelog )
throws ScmException
{
return getUpdateScmResult();
}
/**
* {@inheritDoc}
*/
public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, String tag, String datePattern )
throws ScmException
{
return getUpdateScmResult();
}
/**
* {@inheritDoc}
*/
public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, String tag, Date lastUpdate )
throws ScmException
{
return getUpdateScmResult();
}
/**
* {@inheritDoc}
*/
public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, String tag, Date lastUpdate,
String datePattern )
throws ScmException
{
return getUpdateScmResult();
}
/**
* {@inheritDoc}
*/
public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet )
throws ScmException
{
return getUpdateScmResult();
}
/**
* {@inheritDoc}
*/
public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, ScmVersion version )
throws ScmException
{
return getUpdateScmResult();
}
/**
* {@inheritDoc}
*/
public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, boolean runChangelog )
throws ScmException
{
return getUpdateScmResult();
}
/**
* {@inheritDoc}
*/
public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, ScmVersion version,
boolean runChangelog )
throws ScmException
{
return getUpdateScmResult();
}
/**
* {@inheritDoc}
*/
public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, ScmVersion version,
String datePattern )
throws ScmException
{
return getUpdateScmResult();
}
/**
* {@inheritDoc}
*/
public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, ScmVersion version, Date lastUpdate )
throws ScmException
{
return getUpdateScmResult();
}
/**
* {@inheritDoc}
*/
public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, ScmVersion version, Date lastUpdate,
String datePattern )
throws ScmException
{
return getUpdateScmResult();
}
/**
* {@inheritDoc}
*/
public UnEditScmResult unedit( ScmRepository repository, ScmFileSet fileSet )
throws ScmException
{
return getUnEditScmResult();
}
/**
* {@inheritDoc}
*/
public BlameScmResult blame( ScmRepository repository, ScmFileSet fileSet, String filename )
throws ScmException
{
return getBlameScmResult();
}
public BlameScmResult blame( BlameScmRequest blameScmRequest )
throws ScmException
{
return getBlameScmResult();
}
/**
* {@inheritDoc}
*/
public MkdirScmResult mkdir( ScmRepository repository, ScmFileSet fileSet, String message, boolean createInLocal )
throws ScmException
{
return getMkdirScmResult();
}
public InfoScmResult info( ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters )
throws ScmException
{
return new InfoScmResult( "", "", "", true );
}
public RemoteInfoScmResult remoteInfo( ScmProviderRepository repository, ScmFileSet fileSet,
CommandParameters parameters )
throws ScmException
{
return new RemoteInfoScmResult( "", null, null );
}
}