You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by br...@apache.org on 2007/01/25 13:37:34 UTC

svn commit: r499762 - /maven/core-integration-testing/trunk/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0108SnapshotUpdateTest.java

Author: brett
Date: Thu Jan 25 04:37:34 2007
New Revision: 499762

URL: http://svn.apache.org/viewvc?view=rev&rev=499762
Log:
fix the tests up, add some that work only on file timestamps

Modified:
    maven/core-integration-testing/trunk/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0108SnapshotUpdateTest.java

Modified: maven/core-integration-testing/trunk/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0108SnapshotUpdateTest.java
URL: http://svn.apache.org/viewvc/maven/core-integration-testing/trunk/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0108SnapshotUpdateTest.java?view=diff&rev=499762&r1=499761&r2=499762
==============================================================================
--- maven/core-integration-testing/trunk/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0108SnapshotUpdateTest.java (original)
+++ maven/core-integration-testing/trunk/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0108SnapshotUpdateTest.java Thu Jan 25 04:37:34 2007
@@ -42,6 +42,8 @@
 
     private File localRepoFile;
 
+    private static final int TIME_OFFSET = 50000;
+
     protected void setUp()
         throws Exception
     {
@@ -75,7 +77,7 @@
         assertArtifactContents( "originalArtifact" );
 
         // set in the past to ensure it is downloaded
-        localRepoFile.setLastModified( System.currentTimeMillis() - 5000 );
+        localRepoFile.setLastModified( System.currentTimeMillis() - TIME_OFFSET );
 
         FileUtils.fileWrite( artifact.getAbsolutePath(), "updatedArtifact" );
 
@@ -92,7 +94,8 @@
     {
         File metadata =
             new File( repository, "org/apache/maven/maven-core-it-support/1.0-SNAPSHOT/maven-metadata.xml" );
-        FileUtils.fileWrite( metadata.getAbsolutePath(), constructMetadata( "1", System.currentTimeMillis() - 5000 ) );
+        FileUtils.fileWrite( metadata.getAbsolutePath(),
+                             constructMetadata( "1", System.currentTimeMillis() - TIME_OFFSET, true ) );
 
         verifier.executeGoal( "package" );
 
@@ -103,7 +106,7 @@
 
         FileUtils.fileWrite( artifact.getAbsolutePath(), "updatedArtifact" );
         metadata = new File( repository, "org/apache/maven/maven-core-it-support/1.0-SNAPSHOT/maven-metadata.xml" );
-        FileUtils.fileWrite( metadata.getAbsolutePath(), constructMetadata( "2", System.currentTimeMillis() ) );
+        FileUtils.fileWrite( metadata.getAbsolutePath(), constructMetadata( "2", System.currentTimeMillis(), true ) );
 
         verifier.executeGoal( "package" );
 
@@ -116,15 +119,16 @@
     public void testSnapshotUpdatedWithLocalMetadata()
         throws Exception
     {
-        File localMetadata =
-            getMetadataFile( "org/apache/maven/its/snapshotUpdate", "maven-it-snapshot-update", "1.0-SNAPSHOT" );
+        File localMetadata = getMetadataFile( "org/apache/maven", "maven-core-it-support", "1.0-SNAPSHOT" );
 
-        localMetadata.delete();
-        assertFalse( localMetadata.exists() );
+        FileUtils.deleteDirectory( localMetadata.getParentFile() );
+        assertFalse( localMetadata.getParentFile().exists() );
+        localMetadata.getParentFile().mkdirs();
 
         File metadata =
             new File( repository, "org/apache/maven/maven-core-it-support/1.0-SNAPSHOT/maven-metadata.xml" );
-        FileUtils.fileWrite( metadata.getAbsolutePath(), constructMetadata( "1", System.currentTimeMillis() - 5000 ) );
+        FileUtils.fileWrite( metadata.getAbsolutePath(),
+                             constructMetadata( "1", System.currentTimeMillis() - TIME_OFFSET, true ) );
 
         verifier.executeGoal( "package" );
 
@@ -134,8 +138,13 @@
         assertArtifactContents( "originalArtifact" );
         assertFalse( localMetadata.exists() );
 
-        FileUtils.fileWrite( artifact.getAbsolutePath(), "localArtifact" );
-        FileUtils.fileWrite( localMetadata.getAbsolutePath(), constructLocalMetadata( System.currentTimeMillis() ) );
+        FileUtils.fileWrite( localRepoFile.getAbsolutePath(), "localArtifact" );
+        FileUtils.fileWrite( localMetadata.getAbsolutePath(), constructLocalMetadata( "org.apache.maven",
+                                                                                      "maven-core-it-support",
+                                                                                      System.currentTimeMillis(),
+                                                                                      true ) );
+        // update the remote file, but we shouldn't be looking
+        artifact.setLastModified( System.currentTimeMillis() );
 
         verifier.executeGoal( "package" );
 
@@ -146,7 +155,79 @@
 
         Calendar cal = Calendar.getInstance();
         cal.add( Calendar.YEAR, -1 );
-        FileUtils.fileWrite( localMetadata.getAbsolutePath(), constructLocalMetadata( cal.getTimeInMillis() ) );
+        FileUtils.fileWrite( localMetadata.getAbsolutePath(), constructLocalMetadata( "org.apache.maven",
+                                                                                      "maven-core-it-support",
+                                                                                      cal.getTimeInMillis(), true ) );
+        FileUtils.fileWrite( metadata.getAbsolutePath(),
+                             constructMetadata( "2", System.currentTimeMillis() - 2000, true ) );
+        artifact.setLastModified( System.currentTimeMillis() );
+
+        verifier.executeGoal( "package" );
+
+        assertArtifactContents( "originalArtifact" );
+
+        verifier.verifyErrorFreeLog();
+        verifier.resetStreams();
+    }
+
+    public void testSnapshotUpdatedWithMetadataUsingFileTimestamp()
+        throws Exception
+    {
+        File metadata =
+            new File( repository, "org/apache/maven/maven-core-it-support/1.0-SNAPSHOT/maven-metadata.xml" );
+        FileUtils.fileWrite( metadata.getAbsolutePath(),
+                             constructMetadata( "1", System.currentTimeMillis() - TIME_OFFSET, false ) );
+        metadata.setLastModified( System.currentTimeMillis() - TIME_OFFSET );
+
+        verifier.executeGoal( "package" );
+
+        verifier.verifyErrorFreeLog();
+        verifier.resetStreams();
+
+        assertArtifactContents( "originalArtifact" );
+
+        FileUtils.fileWrite( artifact.getAbsolutePath(), "updatedArtifact" );
+        metadata = new File( repository, "org/apache/maven/maven-core-it-support/1.0-SNAPSHOT/maven-metadata.xml" );
+        FileUtils.fileWrite( metadata.getAbsolutePath(), constructMetadata( "2", System.currentTimeMillis(), false ) );
+
+        verifier.executeGoal( "package" );
+
+        assertArtifactContents( "updatedArtifact" );
+
+        verifier.verifyErrorFreeLog();
+        verifier.resetStreams();
+    }
+
+    public void testSnapshotUpdatedWithLocalMetadataUsingFileTimestamp()
+        throws Exception
+    {
+        File localMetadata = getMetadataFile( "org/apache/maven", "maven-core-it-support", "1.0-SNAPSHOT" );
+
+        FileUtils.deleteDirectory( localMetadata.getParentFile() );
+        assertFalse( localMetadata.getParentFile().exists() );
+        localMetadata.getParentFile().mkdirs();
+
+        File metadata =
+            new File( repository, "org/apache/maven/maven-core-it-support/1.0-SNAPSHOT/maven-metadata.xml" );
+        FileUtils.fileWrite( metadata.getAbsolutePath(),
+                             constructMetadata( "1", System.currentTimeMillis() - TIME_OFFSET, false ) );
+        metadata.setLastModified( System.currentTimeMillis() - TIME_OFFSET );
+
+        verifier.executeGoal( "package" );
+
+        verifier.verifyErrorFreeLog();
+        verifier.resetStreams();
+
+        assertArtifactContents( "originalArtifact" );
+        assertFalse( localMetadata.exists() );
+
+        FileUtils.fileWrite( localRepoFile.getAbsolutePath(), "localArtifact" );
+        FileUtils.fileWrite( localMetadata.getAbsolutePath(), constructLocalMetadata( "org.apache.maven",
+                                                                                      "maven-core-it-support",
+                                                                                      System.currentTimeMillis(),
+                                                                                      false ) );
+        // update the remote file, but we shouldn't be looking
+        artifact.setLastModified( System.currentTimeMillis() );
 
         verifier.executeGoal( "package" );
 
@@ -154,6 +235,27 @@
 
         verifier.verifyErrorFreeLog();
         verifier.resetStreams();
+
+        Calendar cal = Calendar.getInstance();
+        cal.add( Calendar.YEAR, -1 );
+        FileUtils.fileWrite( localMetadata.getAbsolutePath(), constructLocalMetadata( "org.apache.maven",
+                                                                                      "maven-core-it-support",
+                                                                                      cal.getTimeInMillis(), false ) );
+        localMetadata.setLastModified( cal.getTimeInMillis() );
+        localRepoFile.setLastModified( cal.getTimeInMillis() );
+        new File( localMetadata.getParentFile(), "maven-metadata-it.snapshots.xml" ).setLastModified(
+            cal.getTimeInMillis() );
+        FileUtils.fileWrite( metadata.getAbsolutePath(),
+                             constructMetadata( "2", System.currentTimeMillis() - 2000, false ) );
+        metadata.setLastModified( System.currentTimeMillis() - 2000 );
+        artifact.setLastModified( System.currentTimeMillis() );
+
+        verifier.executeGoal( "package" );
+
+        assertArtifactContents( "originalArtifact" );
+
+        verifier.verifyErrorFreeLog();
+        verifier.resetStreams();
     }
 
     public void testSnapshotLocalMetadataUpdatedOnInstall()
@@ -174,7 +276,8 @@
 
         Calendar cal = Calendar.getInstance();
         cal.add( Calendar.YEAR, -1 );
-        FileUtils.fileWrite( localMetadata.getAbsolutePath(), constructLocalMetadata( cal.getTimeInMillis() ) );
+        FileUtils.fileWrite( localMetadata.getAbsolutePath(), constructLocalMetadata(
+            "org.apache.maven.its.snapshotUpdate", "maven-it-snapshot-update", cal.getTimeInMillis(), true ) );
 
         verifier.executeGoal( "install" );
 
@@ -193,7 +296,9 @@
         throws IOException
     {
         String actual = stripTime( FileUtils.fileRead( localMetadata ) );
-        String expected = stripTime( constructLocalMetadata( System.currentTimeMillis() ) );
+        String expected = stripTime( constructLocalMetadata( "org.apache.maven.its.snapshotUpdate",
+                                                             "maven-it-snapshot-update", System.currentTimeMillis(),
+                                                             true ) );
 
         assertEquals( expected, actual );
     }
@@ -234,24 +339,24 @@
         repository.mkdirs();
     }
 
-    private String constructMetadata( String buildNumber, long timestamp )
+    private String constructMetadata( String buildNumber, long timestamp, boolean writeLastUpdated )
     {
         String ts = new SimpleDateFormat( "yyyyMMddHHmmss", Locale.US ).format( new Date( timestamp ) );
 
         return "<?xml version=\"1.0\" encoding=\"UTF-8\"?><metadata>\n" + "<groupId>org.apache.maven</groupId>\n" +
             "<artifactId>maven-core-it-support</artifactId>\n" + "<version>1.0-SNAPSHOT</version>\n" +
             "<versioning>\n" + "<snapshot>\n" + "<buildNumber>" + buildNumber + "</buildNumber>\n" + "</snapshot>\n" +
-            "<lastUpdated>" + ts + "</lastUpdated>\n" + "</versioning>\n" + "</metadata>";
+            ( writeLastUpdated ? "<lastUpdated>" + ts + "</lastUpdated>\n" : "" ) + "</versioning>\n" + "</metadata>";
     }
 
-    private String constructLocalMetadata( long timestamp )
+    private String constructLocalMetadata( String groupId, String artifactId, long timestamp, boolean writeLastUpdated )
     {
         String ts = new SimpleDateFormat( "yyyyMMddHHmmss", Locale.US ).format( new Date( timestamp ) );
 
-        return "<?xml version=\"1.0\" encoding=\"UTF-8\"?><metadata>\n" +
-            "  <groupId>org.apache.maven.its.snapshotUpdate</groupId>\n" +
-            "  <artifactId>maven-it-snapshot-update</artifactId>\n" + "  <version>1.0-SNAPSHOT</version>\n" +
+        return "<?xml version=\"1.0\" encoding=\"UTF-8\"?><metadata>\n" + "  <groupId>" + groupId + "</groupId>\n" +
+            "  <artifactId>" + artifactId + "</artifactId>\n" + "  <version>1.0-SNAPSHOT</version>\n" +
             "  <versioning>\n" + "    <snapshot>\n" + "      <localCopy>true</localCopy>\n" + "    </snapshot>\n" +
-            "    <lastUpdated>" + ts + "</lastUpdated>\n" + "  </versioning>\n" + "</metadata>";
+            ( writeLastUpdated ? "    <lastUpdated>" + ts + "</lastUpdated>\n" : "" ) + "  </versioning>\n" +
+            "</metadata>";
     }
 }