View Javadoc

1   package org.apache.maven.archiva.repository.project;
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 java.util.Enumeration;
23  import java.util.Properties;
24  
25  import org.apache.maven.archiva.repository.project.ProjectModelMerge;
26  import org.apache.maven.archiva.model.ArchivaProjectModel;
27  import org.apache.maven.archiva.model.VersionedReference;
28  import org.codehaus.plexus.spring.PlexusInSpringTestCase;
29  
30  /**
31   * ProjectModelMergeTest
32   * 
33   * @author jzurbano
34   */
35  public class ProjectModelMergeTest
36      extends PlexusInSpringTestCase
37  {
38      private ProjectModelMerge modelMerge;
39      
40      private Enumeration<String> keys;
41      
42      @Override
43      protected void setUp()
44          throws Exception
45      {
46          super.setUp();
47  
48          modelMerge = new ProjectModelMerge();
49      }
50      
51      @SuppressWarnings("unchecked")
52      public void testPropertiesMerge()
53          throws Exception
54      {
55          ArchivaProjectModel mainProject = createMainProject();
56          ArchivaProjectModel parentProject = createParentProject();
57      
58          assertNotNull( mainProject.getProperties() );
59      
60          Properties prop = parentProject.getProperties();
61          assertNotNull( prop );
62      
63          keys = (Enumeration<String>) prop.propertyNames();
64          assertTrue( keys.hasMoreElements() );
65      
66          modelMerge.merge( mainProject, parentProject );
67      }
68      
69      private ArchivaProjectModel createMainProject()
70      {
71          ArchivaProjectModel mainProject = new ArchivaProjectModel();
72      
73          VersionedReference parent = new VersionedReference();
74          parent.setGroupId( "org.apache" );
75          parent.setArtifactId( "apache" );
76          parent.setVersion( "4" );
77      
78          mainProject.setParentProject( parent );
79          mainProject.setGroupId( "org.apache.servicemix" );
80          mainProject.setArtifactId( "servicemix-pom" );
81          mainProject.setVersion( "2" );
82          mainProject.setPackaging( "pom" );
83          mainProject.setName( "ServiceMix POM" );
84          mainProject.setUrl( "http://servicemix.apache.org/" );
85          mainProject.setDescription( "This pom provides project information that is common to all ServiceMix branches." );
86          mainProject.setProperties( new Properties() );
87      
88          return mainProject;
89      }
90      
91      private ArchivaProjectModel createParentProject()
92      {
93          ArchivaProjectModel parentProject = new ArchivaProjectModel();
94      
95          parentProject.setGroupId( "org.apache" );
96          parentProject.setArtifactId( "apache" );
97          parentProject.setVersion( "4" );
98          parentProject.setPackaging( "pom" );
99      
100         Properties prop = new Properties();
101         prop.setProperty( "test.key", "" );
102         parentProject.setProperties( prop );
103     
104         return parentProject;
105     }
106 }