1 package org.apache.maven.plugin.doap;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.io.File;
23 import java.io.FileReader;
24 import java.io.IOException;
25 import java.util.Collections;
26 import java.util.List;
27
28 import org.apache.maven.artifact.repository.ArtifactRepository;
29 import org.apache.maven.artifact.repository.DefaultArtifactRepository;
30 import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout;
31 import org.apache.maven.plugin.testing.AbstractMojoTestCase;
32 import org.apache.maven.project.MavenProject;
33 import org.codehaus.plexus.util.IOUtil;
34 import org.codehaus.plexus.util.StringUtils;
35
36
37
38
39
40
41
42 public class DoapMojoTest
43 extends AbstractMojoTestCase
44 {
45
46 protected void setUp()
47 throws Exception
48 {
49 super.setUp();
50 }
51
52
53 protected void tearDown()
54 throws Exception
55 {
56 super.tearDown();
57 }
58
59
60
61
62
63
64 public void testGeneratedDoap()
65 throws Exception
66 {
67 File pluginXmlFile =
68 new File( getBasedir(),
69 "src/test/resources/unit/doap-configuration/doap-configuration-plugin-config.xml" );
70 DoapMojo mojo = (DoapMojo) lookupMojo( "generate", pluginXmlFile );
71 assertNotNull( "Mojo found.", mojo );
72
73 MavenProject mavenProject = (MavenProject) getVariableValueFromObject( mojo, "project" );
74 assertNotNull( mavenProject );
75
76
77 setVariableValueToObject( mojo, "remoteRepositories", getRemoteRepositories() );
78 setVariableValueToObject( mojo, "about", mavenProject.getUrl() );
79
80 mojo.execute();
81
82 File doapFile = new File( getBasedir(), "target/test/unit/doap-configuration/doap-configuration.rdf" );
83 assertTrue( "Doap File was not generated!", doapFile.exists() );
84
85 String readed = readFile( doapFile );
86
87
88
89
90 assertTrue( readed.indexOf( "<rdf:RDF xml:lang=\"en\" xmlns=\"http://usefulinc.com/ns/doap#\" "
91 + "xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\" "
92 + "xmlns:foaf=\"http://xmlns.com/foaf/0.1/\">" ) != -1 );
93 if ( StringUtils.isNotEmpty( mavenProject.getUrl() ) )
94 {
95 assertTrue( readed.indexOf( "<Project rdf:about=\"" + mavenProject.getUrl() + "\">" ) != -1 );
96 assertTrue( readed.indexOf( "<homepage rdf:resource=\"" + mavenProject.getUrl() + "\"/>" ) != -1 );
97 }
98 assertTrue( readed.indexOf( "<name rdf:resource=\"" + mavenProject.getName() + "\"/>" ) != -1 );
99 assertTrue( readed.indexOf( "<programming-language rdf:resource=\"java\"/>" ) != -1 );
100
101
102 assertFalse( readed.indexOf( "<asfext:pmc rdf:resource=\"" + mavenProject.getUrl() + "\"/>" ) != -1 );
103 assertFalse( readed.indexOf( "<asfext:name rdf:resource=\"" + mavenProject.getName() + "\"/>" ) != -1 );
104 }
105
106
107
108
109
110
111 public void testGeneratedDoapForASF()
112 throws Exception
113 {
114 File pluginXmlFile =
115 new File( getBasedir(),
116 "src/test/resources/unit/asf-doap-configuration/asf-doap-configuration-plugin-config.xml" );
117 DoapMojo mojo = (DoapMojo) lookupMojo( "generate", pluginXmlFile );
118 assertNotNull( "Mojo found.", mojo );
119
120 MavenProject mavenProject = (MavenProject) getVariableValueFromObject( mojo, "project" );
121 assertNotNull( mavenProject );
122
123
124 setVariableValueToObject( mojo, "remoteRepositories", getRemoteRepositories() );
125 setVariableValueToObject( mojo, "about", mavenProject.getUrl() );
126
127 mojo.execute();
128
129 File doapFile =
130 new File( getBasedir(), "target/test/unit/asf-doap-configuration/asf-doap-configuration.rdf" );
131 assertTrue( "Doap File was not generated!", doapFile.exists() );
132
133 String readed = readFile( doapFile );
134
135
136
137
138 assertTrue( readed.indexOf( "<rdf:RDF xml:lang=\"en\" xmlns=\"http://usefulinc.com/ns/doap#\" "
139 + "xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\" "
140 + "xmlns:foaf=\"http://xmlns.com/foaf/0.1/\" "
141 + "xmlns:asfext=\"http://projects.apache.org/ns/asfext#\">" ) != -1 );
142 if ( StringUtils.isNotEmpty( mavenProject.getUrl() ) )
143 {
144 assertTrue( readed.indexOf( "<Project rdf:about=\"" + mavenProject.getUrl() + "\">" ) != -1 );
145 assertTrue( readed.indexOf( "<homepage rdf:resource=\"" + mavenProject.getUrl() + "\"/>" ) != -1 );
146 }
147 assertTrue( readed.indexOf( "<name rdf:resource=\"Apache " + mavenProject.getName() + "\"/>" ) != -1 );
148 assertTrue( readed.indexOf( "<programming-language rdf:resource=\"java\"/>" ) != -1 );
149
150
151 assertTrue( readed.indexOf( "<asfext:pmc rdf:resource=\"" + mavenProject.getUrl() + "\"/>" ) != -1 );
152 assertTrue( readed.indexOf( "<asfext:name rdf:resource=\"Apache " + mavenProject.getName() + "\"/>" ) != -1 );
153 }
154
155
156
157
158
159
160 private String readFile( File file )
161 throws IOException
162 {
163 String result = null;
164
165 FileReader reader = null;
166 try
167 {
168
169 reader = new FileReader( file );
170
171 result = IOUtil.toString( reader );
172 }
173 finally
174 {
175 IOUtil.close( reader );
176 }
177
178 return result;
179 }
180
181
182
183
184 private static List getRemoteRepositories()
185 {
186 ArtifactRepository repository =
187 new DefaultArtifactRepository( "central", "http://repo1.maven.org/maven2",
188 new DefaultRepositoryLayout() );
189 return Collections.singletonList( repository );
190 }
191 }