Author: oching
Date: Thu Jun 11 08:16:06 2009
New Revision: 783687
URL: http://svn.apache.org/viewvc?rev=783687&view=rev
Log:
[MRM-1196]
o fix or generate checksums when artifacts are deployed from UI
o created unit tests for UploadAction
Added:
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/UploadActionTest.java
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/resources/upload-artifact-test/
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/resources/upload-artifact-test/artifact-to-be-reuploaded.jar
(with props)
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/resources/upload-artifact-test/artifact-to-be-uploaded.jar
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/resources/upload-artifact-test/pom.xml
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/UploadAction.java
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/UploadAction.java
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/UploadAction.java?rev=783687&r1=783686&r2=783687&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/UploadAction.java
(original)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/UploadAction.java
Thu Jun 11 08:16:06 2009
@@ -35,7 +35,7 @@
import java.util.List;
import java.util.TimeZone;
-import org.apache.archiva.checksum.ChecksumAlgorithm;
+import org.apache.archiva.checksum.ChecksumAlgorithm;
import org.apache.archiva.checksum.ChecksummedFile;
import org.apache.commons.io.FilenameUtils;
import org.apache.commons.lang.StringUtils;
@@ -60,7 +60,6 @@
import org.apache.maven.archiva.repository.project.ProjectModelException;
import org.apache.maven.archiva.repository.project.ProjectModelWriter;
import
org.apache.maven.archiva.repository.project.writers.ProjectModel400Writer;
-import org.apache.maven.archiva.repository.scanner.RepositoryContentConsumers;
import org.apache.maven.archiva.scheduled.ArchivaTaskScheduler;
import org.apache.maven.archiva.scheduled.tasks.RepositoryTask;
import org.apache.maven.archiva.scheduled.tasks.TaskCreator;
@@ -81,11 +80,6 @@
implements Validateable, Preparable, Auditable
{
/**
- * @plexus.requirement
- */
- private RepositoryContentConsumers consumers;
-
- /**
* The groupId of the artifact to be deployed.
*/
private String groupId;
@@ -352,10 +346,9 @@
}
try
- {
+ {
copyFile( artifactFile, targetPath, filename );
queueRepositoryTask( repository.getId(), repository.toFile(
artifactReference ) );
- //consumers.executeConsumers( repoConfig, repository.toFile(
artifactReference ) );
}
catch ( IOException ie )
{
@@ -375,8 +368,8 @@
try
{
File generatedPomFile = createPom( targetPath, pomFilename
);
- queueRepositoryTask( repoConfig.getId(), generatedPomFile
);
- //consumers.executeConsumers( repoConfig, generatedPomFile
);
+ fixChecksums( generatedPomFile );
+ queueRepositoryTask( repoConfig.getId(), generatedPomFile
);
}
catch ( IOException ie )
{
@@ -393,10 +386,9 @@
if ( pomFile != null && pomFile.length() > 0 )
{
try
- {
+ {
copyFile( pomFile, targetPath, pomFilename );
queueRepositoryTask( repoConfig.getId(), new File(
targetPath, pomFilename ) );
- //consumers.executeConsumers( repoConfig, new File(
targetPath, pomFilename ) );
}
catch ( IOException ie )
{
@@ -429,7 +421,13 @@
return ERROR;
}
}
-
+
+ private void fixChecksums( File file )
+ {
+ ChecksummedFile checksum = new ChecksummedFile( file );
+ checksum.fixChecksums( algorithms );
+ }
+
private void copyFile( File sourceFile, File targetPath, String
targetFilename )
throws IOException
{
@@ -450,6 +448,8 @@
out.close();
input.close();
}
+
+ fixChecksums( new File( targetPath, targetFilename ) );
}
private File createPom( File targetPath, String filename )
@@ -543,8 +543,7 @@
}
RepositoryMetadataWriter.write( metadata, metadataFile );
- ChecksummedFile checksum = new ChecksummedFile( metadataFile );
- checksum.fixChecksums( algorithms );
+ fixChecksums( metadataFile );
}
public void validate()
@@ -614,4 +613,19 @@
"']." );
}
}
+
+ public void setScheduler( ArchivaTaskScheduler scheduler )
+ {
+ this.scheduler = scheduler;
+ }
+
+ public void setRepositoryFactory( RepositoryContentFactory
repositoryFactory )
+ {
+ this.repositoryFactory = repositoryFactory;
+ }
+
+ public void setConfiguration( ArchivaConfiguration configuration )
+ {
+ this.configuration = configuration;
+ }
}
Added:
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/UploadActionTest.java
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/UploadActionTest.java?rev=783687&view=auto
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/UploadActionTest.java
(added)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/UploadActionTest.java
Thu Jun 11 08:16:06 2009
@@ -0,0 +1,447 @@
+package org.apache.maven.archiva.web.action;
+
+/*
+ * 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 org.apache.archiva.checksum.ChecksumAlgorithm;
+import org.apache.archiva.checksum.ChecksummedFile;
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.lang.StringUtils;
+import org.apache.maven.archiva.configuration.ArchivaConfiguration;
+import org.apache.maven.archiva.configuration.Configuration;
+import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
+import org.apache.maven.archiva.repository.ManagedRepositoryContent;
+import org.apache.maven.archiva.repository.RepositoryContentFactory;
+import org.apache.maven.archiva.repository.RepositoryNotFoundException;
+import
org.apache.maven.archiva.repository.content.ManagedDefaultRepositoryContent;
+import org.apache.maven.archiva.repository.metadata.MetadataTools;
+import org.apache.maven.archiva.scheduled.ArchivaTaskScheduler;
+import org.codehaus.plexus.spring.PlexusInSpringTestCase;
+import org.easymock.MockControl;
+import org.easymock.classextension.MockClassControl;
+
+import com.opensymphony.xwork2.Action;
+
+/**
+ * UploadActionTest
+ */
+public class UploadActionTest
+ extends PlexusInSpringTestCase
+{
+ private ArchivaTaskScheduler scheduler;
+
+ private MockControl schedulerControl;
+
+ private UploadAction uploadAction;
+
+ private ArchivaConfiguration archivaConfig;
+
+ private MockControl archivaConfigControl;
+
+ private RepositoryContentFactory repoFactory;
+
+ private MockControl repoFactoryControl;
+
+ private static final String REPOSITORY_ID = "test-repo";
+
+ private Configuration config;
+
+ public void setUp()
+ throws Exception
+ {
+ super.setUp();
+
+ schedulerControl = MockControl.createControl(
ArchivaTaskScheduler.class );
+ scheduler = (ArchivaTaskScheduler) schedulerControl.getMock();
+
+ archivaConfigControl = MockControl.createControl(
ArchivaConfiguration.class );
+ archivaConfig = (ArchivaConfiguration) archivaConfigControl.getMock();
+
+ repoFactoryControl = MockClassControl.createControl(
RepositoryContentFactory.class );
+ repoFactory = (RepositoryContentFactory) repoFactoryControl.getMock();
+
+ uploadAction = new UploadAction();
+ uploadAction.setScheduler( scheduler );
+ uploadAction.setConfiguration( archivaConfig );
+ uploadAction.setRepositoryFactory( repoFactory );
+
+ File testRepo = new File( getBasedir(),
"target/test-classes/test-repo" );
+ testRepo.mkdirs();
+
+ assertTrue( testRepo.exists() );
+
+ config = new Configuration();
+ ManagedRepositoryConfiguration repoConfig = new
ManagedRepositoryConfiguration();
+ repoConfig.setId( REPOSITORY_ID );
+ repoConfig.setLayout( "default" );
+ repoConfig.setLocation( testRepo.getPath() );
+ repoConfig.setName( REPOSITORY_ID );
+ config.addManagedRepository( repoConfig );
+ }
+
+ public void tearDown()
+ throws Exception
+ {
+ File testRepo = new File( config.findManagedRepositoryById(
REPOSITORY_ID ).getLocation() );
+ FileUtils.deleteDirectory( testRepo );
+
+ assertFalse( testRepo.exists() );
+
+ super.tearDown();
+ }
+
+ private void setUploadParameters( String version, String classifier, File
artifact, File pomFile,
+ boolean generatePom )
+ {
+ uploadAction.setRepositoryId( REPOSITORY_ID );
+ uploadAction.setGroupId( "org.apache.archiva" );
+ uploadAction.setArtifactId( "artifact-upload" );
+ uploadAction.setVersion( version );
+ uploadAction.setPackaging( "jar" );
+
+ uploadAction.setClassifier( classifier );
+ uploadAction.setArtifact( artifact );
+ uploadAction.setPom( pomFile );
+ uploadAction.setGeneratePom( generatePom );
+ }
+
+ private void assertAllArtifactsIncludingSupportArtifactsArePresent( String
repoLocation )
+ {
+ assertTrue( new File( repoLocation,
"/org/apache/archiva/artifact-upload/1.0/artifact-upload-1.0.jar" ).exists() );
+ assertTrue( new File( repoLocation,
"/org/apache/archiva/artifact-upload/1.0/artifact-upload-1.0.jar.sha1"
).exists() );
+ assertTrue( new File( repoLocation,
"/org/apache/archiva/artifact-upload/1.0/artifact-upload-1.0.jar.md5"
).exists() );
+
+ assertTrue( new File( repoLocation,
"/org/apache/archiva/artifact-upload/1.0/artifact-upload-1.0.pom" ).exists() );
+ assertTrue( new File( repoLocation,
"/org/apache/archiva/artifact-upload/1.0/artifact-upload-1.0.pom.sha1"
).exists() );
+ assertTrue( new File( repoLocation,
"/org/apache/archiva/artifact-upload/1.0/artifact-upload-1.0.pom.md5"
).exists() );
+
+ assertTrue( new File( repoLocation,
"/org/apache/archiva/artifact-upload/" + MetadataTools.MAVEN_METADATA
).exists() );
+ assertTrue( new File( repoLocation,
"/org/apache/archiva/artifact-upload/" + MetadataTools.MAVEN_METADATA +
+ ".sha1" ).exists() );
+ assertTrue( new File( repoLocation,
"/org/apache/archiva/artifact-upload/" + MetadataTools.MAVEN_METADATA +
+ ".md5" ).exists() );
+ }
+
+ private void verifyChecksums( String repoLocation )
+ throws IOException
+ {
+ // verify checksums of jar file
+ ChecksummedFile checksum =
+ new ChecksummedFile( new File( repoLocation,
+
"/org/apache/archiva/artifact-upload/1.0/artifact-upload-1.0.jar" ) );
+ String sha1 = checksum.calculateChecksum( ChecksumAlgorithm.SHA1 );
+ String md5 = checksum.calculateChecksum( ChecksumAlgorithm.MD5 );
+
+ String contents =
+ FileUtils.readFileToString( new File( repoLocation,
+
"/org/apache/archiva/artifact-upload/1.0/artifact-upload-1.0.jar.sha1" ) );
+ assertTrue( StringUtils.contains( contents, sha1 ) );
+
+ contents =
+ FileUtils.readFileToString( new File( repoLocation,
+
"/org/apache/archiva/artifact-upload/1.0/artifact-upload-1.0.jar.md5" ) );
+ assertTrue( StringUtils.contains( contents, md5 ) );
+
+ // verify checksums of pom file
+ checksum =
+ new ChecksummedFile( new File( repoLocation,
+
"/org/apache/archiva/artifact-upload/1.0/artifact-upload-1.0.pom" ) );
+ sha1 = checksum.calculateChecksum( ChecksumAlgorithm.SHA1 );
+ md5 = checksum.calculateChecksum( ChecksumAlgorithm.MD5 );
+
+ contents =
+ FileUtils.readFileToString( new File( repoLocation,
+
"/org/apache/archiva/artifact-upload/1.0/artifact-upload-1.0.pom.sha1" ) );
+ assertTrue( StringUtils.contains( contents, sha1 ) );
+
+ contents =
+ FileUtils.readFileToString( new File( repoLocation,
+
"/org/apache/archiva/artifact-upload/1.0/artifact-upload-1.0.pom.md5" ) );
+ assertTrue( StringUtils.contains( contents, md5 ) );
+
+ // verify checksums of metadata file
+ checksum =
+ new ChecksummedFile( new File( repoLocation,
"/org/apache/archiva/artifact-upload/" +
+ MetadataTools.MAVEN_METADATA ) );
+ sha1 = checksum.calculateChecksum( ChecksumAlgorithm.SHA1 );
+ md5 = checksum.calculateChecksum( ChecksumAlgorithm.MD5 );
+
+ contents =
+ FileUtils.readFileToString( new File( repoLocation,
"/org/apache/archiva/artifact-upload/" +
+ MetadataTools.MAVEN_METADATA + ".sha1" ) );
+ assertTrue( StringUtils.contains( contents, sha1 ) );
+
+ contents =
+ FileUtils.readFileToString( new File( repoLocation,
"/org/apache/archiva/artifact-upload/" +
+ MetadataTools.MAVEN_METADATA + ".md5" ) );
+ assertTrue( StringUtils.contains( contents, md5 ) );
+ }
+
+ public void testArtifactUploadWithPomSuccessful()
+ throws Exception
+ {
+ setUploadParameters( "1.0", null,
+ new File( getBasedir(),
+
"target/test-classes/upload-artifact-test/artifact-to-be-uploaded.jar" ),
+ new File( getBasedir(),
"target/test-classes/upload-artifact-test/pom.xml" ), false );
+
+ ManagedRepositoryContent content = new
ManagedDefaultRepositoryContent();
+ content.setRepository( config.findManagedRepositoryById( REPOSITORY_ID
) );
+
+ archivaConfigControl.expectAndReturn(
archivaConfig.getConfiguration(), config );
+ repoFactoryControl.expectAndReturn(
repoFactory.getManagedRepositoryContent( REPOSITORY_ID ), content );
+
+ archivaConfigControl.replay();
+ repoFactoryControl.replay();
+
+ String returnString = uploadAction.doUpload();
+ assertEquals( Action.SUCCESS, returnString );
+
+ archivaConfigControl.verify();
+ repoFactoryControl.verify();
+
+ String repoLocation = config.findManagedRepositoryById( REPOSITORY_ID
).getLocation();
+ assertAllArtifactsIncludingSupportArtifactsArePresent( repoLocation );
+
+ verifyChecksums( repoLocation );
+ }
+
+ public void testArtifactUploadWithClassifier()
+ throws Exception
+ {
+ setUploadParameters( "1.0", "tests",
+ new File( getBasedir(),
+
"target/test-classes/upload-artifact-test/artifact-to-be-uploaded.jar" ), null,
+ false );
+
+ ManagedRepositoryContent content = new
ManagedDefaultRepositoryContent();
+ content.setRepository( config.findManagedRepositoryById( REPOSITORY_ID
) );
+
+ archivaConfigControl.expectAndReturn(
archivaConfig.getConfiguration(), config );
+ repoFactoryControl.expectAndReturn(
repoFactory.getManagedRepositoryContent( REPOSITORY_ID ), content );
+
+ archivaConfigControl.replay();
+ repoFactoryControl.replay();
+
+ String returnString = uploadAction.doUpload();
+ assertEquals( Action.SUCCESS, returnString );
+
+ archivaConfigControl.verify();
+ repoFactoryControl.verify();
+
+ String repoLocation = config.findManagedRepositoryById( REPOSITORY_ID
).getLocation();
+ assertTrue( new File( repoLocation,
"/org/apache/archiva/artifact-upload/1.0/artifact-upload-1.0-tests.jar"
).exists() );
+ assertTrue( new File( repoLocation,
+
"/org/apache/archiva/artifact-upload/1.0/artifact-upload-1.0-tests.jar.sha1"
).exists() );
+ assertTrue( new File( repoLocation,
"/org/apache/archiva/artifact-upload/1.0/artifact-upload-1.0-tests.jar.md5"
).exists() );
+
+ assertFalse( new File( repoLocation,
"/org/apache/archiva/artifact-upload/1.0/artifact-upload-1.0.pom" ).exists() );
+ assertFalse( new File( repoLocation,
"/org/apache/archiva/artifact-upload/1.0/artifact-upload-1.0.pom.sha1"
).exists() );
+ assertFalse( new File( repoLocation,
"/org/apache/archiva/artifact-upload/1.0/artifact-upload-1.0.pom.md5"
).exists() );
+
+ assertTrue( new File( repoLocation,
"/org/apache/archiva/artifact-upload/" + MetadataTools.MAVEN_METADATA
).exists() );
+ assertTrue( new File( repoLocation,
"/org/apache/archiva/artifact-upload/" + MetadataTools.MAVEN_METADATA +
+ ".sha1" ).exists() );
+ assertTrue( new File( repoLocation,
"/org/apache/archiva/artifact-upload/" + MetadataTools.MAVEN_METADATA +
+ ".md5" ).exists() );
+
+ // verify checksums of jar file
+ ChecksummedFile checksum =
+ new ChecksummedFile( new File( repoLocation,
+
"/org/apache/archiva/artifact-upload/1.0/artifact-upload-1.0-tests.jar" ) );
+ String sha1 = checksum.calculateChecksum( ChecksumAlgorithm.SHA1 );
+ String md5 = checksum.calculateChecksum( ChecksumAlgorithm.MD5 );
+
+ String contents =
+ FileUtils.readFileToString( new File( repoLocation,
+
"/org/apache/archiva/artifact-upload/1.0/artifact-upload-1.0-tests.jar.sha1" )
);
+ assertTrue( StringUtils.contains( contents, sha1 ) );
+
+ contents =
+ FileUtils.readFileToString( new File( repoLocation,
+
"/org/apache/archiva/artifact-upload/1.0/artifact-upload-1.0-tests.jar.md5" ) );
+ assertTrue( StringUtils.contains( contents, md5 ) );
+
+ // verify checksums of metadata file
+ checksum =
+ new ChecksummedFile( new File( repoLocation,
"/org/apache/archiva/artifact-upload/" +
+ MetadataTools.MAVEN_METADATA ) );
+ sha1 = checksum.calculateChecksum( ChecksumAlgorithm.SHA1 );
+ md5 = checksum.calculateChecksum( ChecksumAlgorithm.MD5 );
+
+ contents =
+ FileUtils.readFileToString( new File( repoLocation,
"/org/apache/archiva/artifact-upload/" +
+ MetadataTools.MAVEN_METADATA + ".sha1" ) );
+ assertTrue( StringUtils.contains( contents, sha1 ) );
+
+ contents =
+ FileUtils.readFileToString( new File( repoLocation,
"/org/apache/archiva/artifact-upload/" +
+ MetadataTools.MAVEN_METADATA + ".md5" ) );
+ assertTrue( StringUtils.contains( contents, md5 ) );
+ }
+
+ public void testArtifactUploadGeneratePomSuccessful()
+ throws Exception
+ {
+ setUploadParameters( "1.0", null,
+ new File( getBasedir(),
+
"target/test-classes/upload-artifact-test/artifact-to-be-uploaded.jar" ), null,
+ true );
+
+ ManagedRepositoryContent content = new
ManagedDefaultRepositoryContent();
+ content.setRepository( config.findManagedRepositoryById( REPOSITORY_ID
) );
+
+ archivaConfigControl.expectAndReturn(
archivaConfig.getConfiguration(), config );
+ repoFactoryControl.expectAndReturn(
repoFactory.getManagedRepositoryContent( REPOSITORY_ID ), content );
+
+ archivaConfigControl.replay();
+ repoFactoryControl.replay();
+
+ String returnString = uploadAction.doUpload();
+ assertEquals( Action.SUCCESS, returnString );
+
+ archivaConfigControl.verify();
+ repoFactoryControl.verify();
+
+ String repoLocation = config.findManagedRepositoryById( REPOSITORY_ID
).getLocation();
+ assertAllArtifactsIncludingSupportArtifactsArePresent( repoLocation );
+
+ verifyChecksums( repoLocation );
+ }
+
+ public void testArtifactUploadFailedRepositoryNotFound()
+ throws Exception
+ {
+ setUploadParameters( "1.0", null,
+ new File( getBasedir(),
+
"target/test-classes/upload-artifact-test/artifact-to-be-uploaded.jar" ), null,
+ false );
+
+ archivaConfigControl.expectAndReturn(
archivaConfig.getConfiguration(), config );
+ repoFactoryControl.expectAndThrow(
repoFactory.getManagedRepositoryContent( REPOSITORY_ID ),
+ new RepositoryNotFoundException() );
+
+ archivaConfigControl.replay();
+ repoFactoryControl.replay();
+
+ String returnString = uploadAction.doUpload();
+ assertEquals( Action.ERROR, returnString );
+
+ archivaConfigControl.verify();
+ repoFactoryControl.verify();
+
+ String repoLocation = config.findManagedRepositoryById( REPOSITORY_ID
).getLocation();
+ assertFalse( new File( repoLocation,
"/org/apache/archiva/artifact-upload/1.0/artifact-upload-1.0.jar" ).exists() );
+
+ assertFalse( new File( repoLocation,
"/org/apache/archiva/artifact-upload/1.0/artifact-upload-1.0.pom" ).exists() );
+
+ assertFalse( new File( repoLocation,
"/org/apache/archiva/artifact-upload/" + MetadataTools.MAVEN_METADATA
).exists() );
+ }
+
+ public void testArtifactUploadSnapshots()
+ throws Exception
+ {
+ setUploadParameters( "1.0-SNAPSHOT", null,
+ new File( getBasedir(),
+
"target/test-classes/upload-artifact-test/artifact-to-be-uploaded.jar" ), null,
+ true );
+
+ ManagedRepositoryContent content = new
ManagedDefaultRepositoryContent();
+ content.setRepository( config.findManagedRepositoryById( REPOSITORY_ID
) );
+
+ archivaConfigControl.expectAndReturn(
archivaConfig.getConfiguration(), config );
+ repoFactoryControl.expectAndReturn(
repoFactory.getManagedRepositoryContent( REPOSITORY_ID ), content );
+
+ archivaConfigControl.replay();
+ repoFactoryControl.replay();
+
+ String returnString = uploadAction.doUpload();
+ assertEquals( Action.SUCCESS, returnString );
+
+ archivaConfigControl.verify();
+ repoFactoryControl.verify();
+
+ String repoLocation = config.findManagedRepositoryById( REPOSITORY_ID
).getLocation();
+ assertEquals( 6, new File( repoLocation,
"/org/apache/archiva/artifact-upload/1.0-SNAPSHOT/" ).list().length );
+
+ assertTrue( new File( repoLocation,
"/org/apache/archiva/artifact-upload/" + MetadataTools.MAVEN_METADATA
).exists() );
+ assertTrue( new File( repoLocation,
"/org/apache/archiva/artifact-upload/" + MetadataTools.MAVEN_METADATA +
+ ".sha1" ).exists() );
+ assertTrue( new File( repoLocation,
"/org/apache/archiva/artifact-upload/" + MetadataTools.MAVEN_METADATA +
+ ".md5" ).exists() );
+ }
+
+ public void testChecksumIsCorrectWhenArtifactIsReUploaded()
+ throws Exception
+ {
+ setUploadParameters( "1.0", null,
+ new File( getBasedir(),
+
"target/test-classes/upload-artifact-test/artifact-to-be-uploaded.jar" ), null,
+ true );
+
+ ManagedRepositoryContent content = new
ManagedDefaultRepositoryContent();
+ content.setRepository( config.findManagedRepositoryById( REPOSITORY_ID
) );
+
+ archivaConfigControl.expectAndReturn(
archivaConfig.getConfiguration(), config );
+ repoFactoryControl.expectAndReturn(
repoFactory.getManagedRepositoryContent( REPOSITORY_ID ), content );
+
+ archivaConfigControl.replay();
+ repoFactoryControl.replay();
+
+ String returnString = uploadAction.doUpload();
+ assertEquals( Action.SUCCESS, returnString );
+
+ archivaConfigControl.verify();
+ repoFactoryControl.verify();
+
+ archivaConfigControl.reset();
+ repoFactoryControl.reset();
+
+ String repoLocation = config.findManagedRepositoryById( REPOSITORY_ID
).getLocation();
+ assertAllArtifactsIncludingSupportArtifactsArePresent( repoLocation );
+
+ verifyChecksums( repoLocation );
+
+ // RE-upload artifact
+ setUploadParameters( "1.0", null,
+ new File( getBasedir(),
+
"target/test-classes/upload-artifact-test/artifact-to-be-reuploaded.jar" ),
+ null, true );
+
+ archivaConfigControl.expectAndReturn(
archivaConfig.getConfiguration(), config );
+ repoFactoryControl.expectAndReturn(
repoFactory.getManagedRepositoryContent( REPOSITORY_ID ), content );
+
+ archivaConfigControl.replay();
+ repoFactoryControl.replay();
+
+ returnString = uploadAction.doUpload();
+ assertEquals( Action.SUCCESS, returnString );
+
+ archivaConfigControl.verify();
+ repoFactoryControl.verify();
+
+ repoLocation = config.findManagedRepositoryById( REPOSITORY_ID
).getLocation();
+ assertAllArtifactsIncludingSupportArtifactsArePresent( repoLocation );
+
+ verifyChecksums( repoLocation );
+ }
+}
Added:
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/resources/upload-artifact-test/artifact-to-be-reuploaded.jar
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/resources/upload-artifact-test/artifact-to-be-reuploaded.jar?rev=783687&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/resources/upload-artifact-test/artifact-to-be-reuploaded.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added:
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/resources/upload-artifact-test/artifact-to-be-uploaded.jar
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/resources/upload-artifact-test/artifact-to-be-uploaded.jar?rev=783687&view=auto
==============================================================================
(empty)
Added:
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/resources/upload-artifact-test/pom.xml
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/resources/upload-artifact-test/pom.xml?rev=783687&view=auto
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/resources/upload-artifact-test/pom.xml
(added)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/resources/upload-artifact-test/pom.xml
Thu Jun 11 08:16:06 2009
@@ -0,0 +1,6 @@
+<project>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>artifact-to-be-uploaded</artifactId>
+ <version>1.0</version>
+ <packaging>jar</packaging>
+</project>
\ No newline at end of file