From 9ecb2cca1784749fef4988b8d2004eeec37e003e Mon Sep 17 00:00:00 2001 From: Brett Porter Date: Fri, 27 Jan 2006 05:51:51 +0000 Subject: [PATCH] [MRM-9] more tests git-svn-id: https://svn.apache.org/repos/asf/maven/repository-manager/trunk@372754 13f79535-47bb-0310-9956-ffa450edef68 --- .../converter/DefaultRepositoryConverter.java | 24 ++++++++---- .../DefaultRepositoryConverter.properties | 3 +- .../converter/RepositoryConverterTest.java | 39 ++++++++++++++++++- .../test/jars/modified-artifact-1.0.0.jar | 1 + .../test/poms/modified-artifact-1.0.0.pom | 22 +++++++++++ .../1.0.0/modified-artifact-1.0.0.jar | 1 + .../1.0.0/modified-artifact-1.0.0.pom | 22 +++++++++++ 7 files changed, 102 insertions(+), 10 deletions(-) create mode 100644 maven-repository-converter/src/test/source-repository/test/jars/modified-artifact-1.0.0.jar create mode 100644 maven-repository-converter/src/test/source-repository/test/poms/modified-artifact-1.0.0.pom create mode 100644 maven-repository-converter/src/test/target-repository/test/modified-artifact/1.0.0/modified-artifact-1.0.0.jar create mode 100644 maven-repository-converter/src/test/target-repository/test/modified-artifact/1.0.0/modified-artifact-1.0.0.pom diff --git a/maven-repository-converter/src/main/java/org/apache/maven/repository/converter/DefaultRepositoryConverter.java b/maven-repository-converter/src/main/java/org/apache/maven/repository/converter/DefaultRepositoryConverter.java index 194c27492..9b431735f 100644 --- a/maven-repository-converter/src/main/java/org/apache/maven/repository/converter/DefaultRepositoryConverter.java +++ b/maven-repository-converter/src/main/java/org/apache/maven/repository/converter/DefaultRepositoryConverter.java @@ -339,19 +339,27 @@ public class DefaultRepositoryConverter if ( !force && targetFile.exists() ) { matching = FileUtils.contentEquals( sourceFile, targetFile ); + if ( !matching ) + { + reporter.addFailure( artifact, getI18NString( "failure.target.already.exists" ) ); + result = false; + } } - if ( force || !matching ) + if ( result ) { - if ( testChecksums( artifact, sourceFile, reporter ) ) + if ( force || !matching ) { - if ( !dryrun ) + if ( testChecksums( artifact, sourceFile, reporter ) ) { - FileUtils.copyFile( sourceFile, targetFile ); + if ( !dryrun ) + { + FileUtils.copyFile( sourceFile, targetFile ); + } + } + else + { + result = false; } - } - else - { - result = false; } } } diff --git a/maven-repository-converter/src/main/resources/org/apache/maven/repository/converter/DefaultRepositoryConverter.properties b/maven-repository-converter/src/main/resources/org/apache/maven/repository/converter/DefaultRepositoryConverter.properties index 6330e524c..90cce8614 100644 --- a/maven-repository-converter/src/main/resources/org/apache/maven/repository/converter/DefaultRepositoryConverter.properties +++ b/maven-repository-converter/src/main/resources/org/apache/maven/repository/converter/DefaultRepositoryConverter.properties @@ -16,4 +16,5 @@ failure.incorrect.md5=The MD5 checksum value was incorrect. failure.incorrect.sha1=The SHA1 checksum value was incorrect. -warning.missing.pom=The artifact had no POM in the source repository \ No newline at end of file +warning.missing.pom=The artifact had no POM in the source repository. +failure.target.already.exists=The artifact could not be converted because it already exists. \ No newline at end of file diff --git a/maven-repository-converter/src/test/java/org/apache/maven/repository/converter/RepositoryConverterTest.java b/maven-repository-converter/src/test/java/org/apache/maven/repository/converter/RepositoryConverterTest.java index 1f67de682..a4b278bee 100644 --- a/maven-repository-converter/src/test/java/org/apache/maven/repository/converter/RepositoryConverterTest.java +++ b/maven-repository-converter/src/test/java/org/apache/maven/repository/converter/RepositoryConverterTest.java @@ -482,11 +482,43 @@ public class RepositoryConverterTest } public void testModifedArtifactFails() + throws InterruptedException, RepositoryConversionException, IOException { // test that it fails when the source artifact has changed and is different to the existing artifact in the // target repository - // TODO + Artifact artifact = createArtifact( "test", "modified-artifact", "1.0.0" ); + Artifact pomArtifact = createPomArtifact( artifact ); + + File sourceFile = new File( sourceRepository.getBasedir(), sourceRepository.pathOf( artifact ) ); + File sourcePomFile = new File( sourceRepository.getBasedir(), sourceRepository.pathOf( pomArtifact ) ); + File targetFile = new File( targetRepository.getBasedir(), targetRepository.pathOf( artifact ) ); + File targetPomFile = new File( targetRepository.getBasedir(), targetRepository.pathOf( pomArtifact ) ); + + assertTrue( "Check target file exists", targetFile.exists() ); + assertTrue( "Check target POM exists", targetPomFile.exists() ); + + sourceFile.setLastModified( System.currentTimeMillis() ); + sourcePomFile.setLastModified( System.currentTimeMillis() ); + + long origTime = targetFile.lastModified(); + long origPomTime = targetPomFile.lastModified(); + + // Need to guarantee last modified is not equal + Thread.sleep( SLEEP_MILLIS ); + + repositoryConverter.convert( artifact, targetRepository, reporter ); + checkFailure(); + assertEquals( "Check failure message", getI18nString( "failure.target.already.exists" ), + getFailure().getReason() ); + + assertEquals( "Check unmodified", origTime, targetFile.lastModified() ); + assertEquals( "Check unmodified", origPomTime, targetPomFile.lastModified() ); + + ArtifactRepositoryMetadata metadata = new ArtifactRepositoryMetadata( artifact ); + File metadataFile = + new File( targetRepository.getBasedir(), targetRepository.pathOfRemoteRepositoryMetadata( metadata ) ); + assertFalse( "Check metadata not created", metadataFile.exists() ); } public void testForcedUnmodifiedArtifact() @@ -521,6 +553,11 @@ public class RepositoryConverterTest assertFalse( "Check modified", origTime == targetFile.lastModified() ); assertFalse( "Check modified", origPomTime == targetPomFile.lastModified() ); + + ArtifactRepositoryMetadata metadata = new ArtifactRepositoryMetadata( artifact ); + File metadataFile = + new File( targetRepository.getBasedir(), targetRepository.pathOfRemoteRepositoryMetadata( metadata ) ); + assertTrue( "Check metadata created", metadataFile.exists() ); } public void testDryRunSuccess() diff --git a/maven-repository-converter/src/test/source-repository/test/jars/modified-artifact-1.0.0.jar b/maven-repository-converter/src/test/source-repository/test/jars/modified-artifact-1.0.0.jar new file mode 100644 index 000000000..2e0996000 --- /dev/null +++ b/maven-repository-converter/src/test/source-repository/test/jars/modified-artifact-1.0.0.jar @@ -0,0 +1 @@ +modified diff --git a/maven-repository-converter/src/test/source-repository/test/poms/modified-artifact-1.0.0.pom b/maven-repository-converter/src/test/source-repository/test/poms/modified-artifact-1.0.0.pom new file mode 100644 index 000000000..fcfdaacb4 --- /dev/null +++ b/maven-repository-converter/src/test/source-repository/test/poms/modified-artifact-1.0.0.pom @@ -0,0 +1,22 @@ + + + + 4.0.0 + modified-artifact + test + 1.0.0 + diff --git a/maven-repository-converter/src/test/target-repository/test/modified-artifact/1.0.0/modified-artifact-1.0.0.jar b/maven-repository-converter/src/test/target-repository/test/modified-artifact/1.0.0/modified-artifact-1.0.0.jar new file mode 100644 index 000000000..27597bc21 --- /dev/null +++ b/maven-repository-converter/src/test/target-repository/test/modified-artifact/1.0.0/modified-artifact-1.0.0.jar @@ -0,0 +1 @@ +unmodified diff --git a/maven-repository-converter/src/test/target-repository/test/modified-artifact/1.0.0/modified-artifact-1.0.0.pom b/maven-repository-converter/src/test/target-repository/test/modified-artifact/1.0.0/modified-artifact-1.0.0.pom new file mode 100644 index 000000000..fcfdaacb4 --- /dev/null +++ b/maven-repository-converter/src/test/target-repository/test/modified-artifact/1.0.0/modified-artifact-1.0.0.pom @@ -0,0 +1,22 @@ + + + + 4.0.0 + modified-artifact + test + 1.0.0 + -- 2.39.5