View Javadoc

1   package org.apache.maven.it;
2   
3   /*
4    * Licensed to the Apache Software Foundation (ASF) under one
5    * or more contributor license agreements.  See the NOTICE file
6    * distributed with this work for additional information
7    * regarding copyright ownership.  The ASF licenses this file
8    * to you under the Apache License, Version 2.0 (the
9    * "License"); you may not use this file except in compliance
10   * with the License.  You may obtain a copy of the License at
11   *
12   *   http://www.apache.org/licenses/LICENSE-2.0
13   *
14   * Unless required by applicable law or agreed to in writing,
15   * software distributed under the License is distributed on an
16   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17   * KIND, either express or implied.  See the License for the
18   * specific language governing permissions and limitations
19   * under the License.
20   */
21  
22  import org.apache.maven.it.Verifier;
23  import org.apache.maven.it.util.ResourceExtractor;
24  
25  import java.io.File;
26  
27  /**
28   * This is a test set for <a href="http://jira.codehaus.org/browse/MNG-1021">MNG-1021</a>.
29   * 
30   * @author John Casey
31   * @version $Id: MavenITmng1021EqualAttachmentBuildNumberTest.java 981712 2010-08-03 00:36:19Z bentmann $
32   */
33  public class MavenITmng1021EqualAttachmentBuildNumberTest
34      extends AbstractMavenIntegrationTestCase
35  {
36      public MavenITmng1021EqualAttachmentBuildNumberTest()
37      {
38          super( ALL_MAVEN_VERSIONS );
39      }
40  
41      /**
42       * Test that source attachments have the same build number and timestamp as the main
43       * artifact when deployed.
44       */
45      public void testitMNG1021()
46          throws Exception
47      {
48          File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/mng-1021" );
49          Verifier verifier = newVerifier( testDir.getAbsolutePath() );
50          verifier.setAutoclean( false );
51          verifier.deleteDirectory( "repo" );
52          verifier.deleteArtifacts( "org.apache.maven.its.mng1021" );
53          verifier.executeGoal( "initialize" );
54          verifier.verifyErrorFreeLog();
55          verifier.resetStreams();
56  
57          verifier.assertArtifactPresent( "org.apache.maven.its.mng1021", "test", "SNAPSHOT", "pom" );
58          verifier.assertArtifactPresent( "org.apache.maven.its.mng1021", "test", "SNAPSHOT", "jar" );
59  
60          String dir = "repo/org/apache/maven/its/mng1021/test/";
61          String snapshot = getSnapshotVersion( new File( testDir, dir + "SNAPSHOT" ) );
62          assertTrue( snapshot, snapshot.endsWith( "-1" ) );
63  
64          verifier.assertFilePresent( dir + "maven-metadata.xml" );
65          verifier.assertFilePresent( dir + "maven-metadata.xml.md5" );
66          verifier.assertFilePresent( dir + "maven-metadata.xml.sha1" );
67          verifier.assertFilePresent( dir + "SNAPSHOT/maven-metadata.xml" );
68          verifier.assertFilePresent( dir + "SNAPSHOT/maven-metadata.xml.md5" );
69          verifier.assertFilePresent( dir + "SNAPSHOT/maven-metadata.xml.sha1" );
70          verifier.assertFilePresent( dir + "SNAPSHOT/test-" + snapshot + ".pom" );
71          verifier.assertFilePresent( dir + "SNAPSHOT/test-" + snapshot + ".pom.md5" );
72          verifier.assertFilePresent( dir + "SNAPSHOT/test-" + snapshot + ".pom.sha1" );
73          verifier.assertFilePresent( dir + "SNAPSHOT/test-" + snapshot + ".jar" );
74          verifier.assertFilePresent( dir + "SNAPSHOT/test-" + snapshot + ".jar.md5" );
75          verifier.assertFilePresent( dir + "SNAPSHOT/test-" + snapshot + ".jar.sha1" );
76          verifier.assertFilePresent( dir + "SNAPSHOT/test-" + snapshot + "-it.jar" );
77          verifier.assertFilePresent( dir + "SNAPSHOT/test-" + snapshot + "-it.jar.md5" );
78          verifier.assertFilePresent( dir + "SNAPSHOT/test-" + snapshot + "-it.jar.sha1" );
79      }
80  
81      private String getSnapshotVersion( File artifactDir )
82      {
83          File[] files = artifactDir.listFiles();
84          for ( int i = 0; i < files.length; i++ )
85          {
86              String name = files[i].getName();
87              if ( name.endsWith( ".pom" ) )
88              {
89                  return name.substring( "test-".length(), name.length() - ".pom".length() );
90              }
91          }
92          throw new IllegalStateException( "POM not found in " + artifactDir );
93      }
94  
95  }