blob: ef67f8265f318e6816724ff04b5fae1ac28e1367 [file] [log] [blame]
package org.apache.maven.wagon;
import junit.framework.TestCase;
import org.apache.maven.wagon.artifact.Artifact;
import org.apache.maven.wagon.artifact.DefaultArtifact;
import org.apache.maven.wagon.events.MockSessionListener;
import org.apache.maven.wagon.events.MockTransferListener;
import org.apache.maven.wagon.repository.Repository;
import java.io.File;
import java.io.InputStream;
import java.io.OutputStream;
/**
* @author <a href="michal.maczka@dimatics.com">Michal Maczka</a>
* @version $Id$
*/
public class AbstractWagonTest extends TestCase
{
private String basedir;
private MockWagon wagon = null;
private Artifact artifact;
private File destination;
private File source;
private MockSessionListener sessionListener = null;
private MockTransferListener transferListener = null;
protected void setUp() throws Exception
{
super.setUp();
basedir = System.getProperty( "basedir" );
artifact = new DefaultArtifact( "groupId", "artifactId", "version", "type", "extension" );
destination = new File( basedir, "destination" );
source = new File( basedir, "project.xml" );
wagon = new MockWagon();
sessionListener = new MockSessionListener();
wagon.addSessionListener( sessionListener );
transferListener = new MockTransferListener();
wagon.addTransferListener( transferListener );
}
public void testSessionListenerRegistration()
{
assertTrue( wagon.hasSessionListener( sessionListener ) );
wagon.removeSessionListener( sessionListener );
assertFalse( wagon.hasSessionListener( sessionListener ) );
}
public void testTransferListenerRegistration()
{
assertTrue( wagon.hasTransferListener( transferListener ) );
wagon.removeTransferListener( transferListener );
assertFalse( wagon.hasTransferListener( transferListener ) );
}
public void testSessionOpenEvents()
throws Exception
{
Repository repository = new Repository();
wagon.connect( repository );
assertEquals( repository, wagon.getRepository() );
assertTrue( sessionListener.isSessionOpenningCalled() );
assertTrue( sessionListener.isSessionOpenedCalled() );
//!!
//assertTrue( sessionListener.isSessionLoggedInCalled() );
//!!
//assertTrue( sessionListener.isSessionRefusedCalled() );
}
public void testSessionCloseEvents()
throws Exception
{
wagon.disconnect();
//!!
//assertTrue( sessionListener.isSessionLoggedOffCalled() );
assertTrue( sessionListener.isSessionDisconnectingCalled() );
assertTrue( sessionListener.isSessionDisconnectedCalled() );
}
public void testGetTransferEvents()
{
wagon.fireTransferDebug( "fetch debug message" );
try
{
Repository repository = new Repository();
wagon.connect( repository );
wagon.get( artifact, destination );
}
catch ( Exception e )
{
e.printStackTrace();
fail( e.getMessage() );
}
assertTrue( transferListener.isTransferStartedCalled() );
assertTrue( transferListener.isTransferCompletedCalled() );
assertTrue( transferListener.isDebugCalled() );
assertTrue( transferListener.isTransferProgressCalled() );
assertEquals( "fetch debug message", transferListener.getDebugMessage() );
assertEquals( 5, transferListener.getNumberOfProgressCalls() );
}
public void testGetError()
{
MockTransferListener transferListener = new MockTransferListener();
try
{
Repository repository = new Repository();
MockWagon wagon = new MockWagon( true );
wagon.addTransferListener( transferListener );
wagon.connect( repository );
wagon.get( artifact, destination );
fail( "Transfer error was expected during deploy" );
}
catch ( Exception e )
{
}
assertTrue( transferListener.isTransferStartedCalled() );
assertTrue( transferListener.isTransferErrorCalled() );
assertFalse( transferListener.isTransferCompletedCalled() );
}
public void testPutTransferEvents()
{
wagon.fireTransferDebug( "deploy debug message" );
try
{
Repository repository = new Repository();
wagon.connect( repository );
wagon.put( source, artifact );
}
catch ( Exception e )
{
fail( e.getMessage() );
}
assertTrue( transferListener.isTransferStartedCalled() );
assertTrue( transferListener.isTransferCompletedCalled() );
assertTrue( transferListener.isDebugCalled() );
assertTrue( transferListener.isTransferProgressCalled() );
assertEquals( "deploy debug message", transferListener.getDebugMessage() );
//!!
//assertEquals( 5, transferListener.getNumberOfProgressCalls() );
}
/*
public void testPutError()
{
MockInputStream mockInputStream = new MockInputStream();
//forced io error!
mockInputStream.setForcedError( true );
StreamSource result = new StreamSource( mockInputStream );
PutRequest command = new PutRequest( result, "my favourite resource" );
try
{
wagon.transfer( command );
fail( "Transfer error was expected during fetch" );
}
catch ( Exception e )
{
}
assertTrue( transferListener.isTransferStartedCalled() );
assertTrue( transferListener.isTransferErrorCalled() );
assertFalse( transferListener.isTransferCompletedCalled() );
}
*/
public void testStreamShutdown()
{
wagon.shutdownStream( (InputStream) null );
wagon.shutdownStream( (OutputStream) null );
MockInputStream inputStream = new MockInputStream();
assertFalse( inputStream.isClosed() );
wagon.shutdownStream( inputStream );
assertTrue( inputStream.isClosed() );
MockOutputStream outputStream = new MockOutputStream();
assertFalse( outputStream.isClosed() );
wagon.shutdownStream( outputStream );
assertTrue( outputStream.isClosed() );
}
}