1 package org.apache.maven.archiva.repository.project;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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
32
33
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 }