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  import java.util.Properties;
27  
28  /**
29   * This is a test set for <a href="http://jira.codehaus.org/browse/MNG-4231">MNG-4231</a>.
30   * 
31   * @author Benjamin Bentmann
32   */
33  public class MavenITmng4231SnapshotUpdatePolicyTest
34      extends AbstractMavenIntegrationTestCase
35  {
36  
37      public MavenITmng4231SnapshotUpdatePolicyTest()
38      {
39          super( ALL_MAVEN_VERSIONS );
40      }
41  
42      /**
43       * Test the update policy "always" for snapshot dependencies is respected.
44       */
45      public void testitAlways()
46          throws Exception
47      {
48          File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/mng-4231" );
49  
50          Verifier verifier = newVerifier( testDir.getAbsolutePath() );
51          verifier.setAutoclean( false );
52          verifier.deleteArtifacts( "org.apache.maven.its.mng4231" );
53          verifier.getCliOptions().add( "-s" );
54          verifier.getCliOptions().add( "settings.xml" );
55  
56          Properties filterProps = verifier.newDefaultFilterProperties();
57          filterProps.setProperty( "@updates@", "always" );
58  
59          filterProps.setProperty( "@repo@", "repo-1" );
60          verifier.filterFile( "settings-template.xml", "settings.xml", "UTF-8", filterProps );
61          verifier.setLogFileName( "log-always-1.txt" );
62          verifier.executeGoal( "validate" );
63          verifier.verifyErrorFreeLog();
64  
65          filterProps.setProperty( "@repo@", "repo-2" );
66          verifier.filterFile( "settings-template.xml", "settings.xml", "UTF-8", filterProps );
67          verifier.setLogFileName( "log-always-2.txt" );
68          verifier.deleteDirectory( "target" );
69          verifier.executeGoal( "validate" );
70          verifier.verifyErrorFreeLog();
71  
72          verifier.resetStreams();
73  
74          Properties checksums = verifier.loadProperties( "target/checksum.properties" );
75          assertChecksum( "db3f17644e813af768ae6e82a6d0a2f29aef8988", "a-0.1-SNAPSHOT.jar", checksums );
76          assertChecksum( "5e3265f3ed55e8b217ff9db444fd8d888962a990", "b-0.1-SNAPSHOT.jar", checksums );
77      }
78  
79      /**
80       * Test the update policy "never" for snapshot dependencies is respected.
81       */
82      public void testitNever()
83          throws Exception
84      {
85          File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/mng-4231" );
86  
87          Verifier verifier = newVerifier( testDir.getAbsolutePath() );
88          verifier.setAutoclean( false );
89          verifier.deleteArtifacts( "org.apache.maven.its.mng4231" );
90          verifier.getCliOptions().add( "-s" );
91          verifier.getCliOptions().add( "settings.xml" );
92  
93          Properties filterProps = verifier.newDefaultFilterProperties();
94          filterProps.setProperty( "@updates@", "never" );
95  
96          filterProps.setProperty( "@repo@", "repo-1" );
97          verifier.filterFile( "settings-template.xml", "settings.xml", "UTF-8", filterProps );
98          verifier.setLogFileName( "log-never-1.txt" );
99          verifier.executeGoal( "validate" );
100         verifier.verifyErrorFreeLog();
101 
102         filterProps.setProperty( "@repo@", "repo-2" );
103         verifier.filterFile( "settings-template.xml", "settings.xml", "UTF-8", filterProps );
104         verifier.setLogFileName( "log-never-2.txt" );
105         verifier.deleteDirectory( "target" );
106         verifier.executeGoal( "validate" );
107         verifier.verifyErrorFreeLog();
108 
109         verifier.resetStreams();
110 
111         Properties checksums = verifier.loadProperties( "target/checksum.properties" );
112         assertChecksum( "ec6c9ea65766cc272df0ee26076240d6a93047d5", "a-0.1-SNAPSHOT.jar", checksums );
113         assertChecksum( "", "b-0.1-SNAPSHOT.jar", checksums );
114     }
115 
116     private void assertChecksum( String checksum, String jar, Properties checksums )
117     {
118         assertEquals( checksum, checksums.getProperty( jar, "" ).toLowerCase( java.util.Locale.ENGLISH ) );
119     }
120 
121 }