1 package org.apache.archiva.rest.services;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.archiva.admin.model.beans.RemoteRepository;
23 import org.apache.archiva.rest.api.services.RemoteRepositoriesService;
24 import org.apache.cxf.jaxrs.client.WebClient;
25 import org.junit.Test;
26
27 import javax.ws.rs.ForbiddenException;
28 import java.util.List;
29
30
31
32
33 public class RemoteRepositoriesServiceTest
34 extends AbstractArchivaRestTest
35 {
36
37
38 @Test( expected = ForbiddenException.class )
39 public void listRemoteRepositoriesKarmaFailed()
40 throws Exception
41 {
42 RemoteRepositoriesService service = getRemoteRepositoriesService();
43 try
44 {
45 assertFalse( service.getRemoteRepositories().isEmpty() );
46 }
47 catch ( ForbiddenException e )
48 {
49 assertEquals( 403, e.getResponse().getStatus() );
50 throw e;
51 }
52 }
53
54 @Test
55 public void listRemoteRepositoriesKarma()
56 throws Exception
57 {
58 RemoteRepositoriesService service = getRemoteRepositoriesService();
59
60 WebClient.client( service ).header( "Authorization", authorizationHeader );
61 WebClient.getConfig( service ).getHttpConduit().getClient().setReceiveTimeout( 300000 );
62 List<RemoteRepository> repos = service.getRemoteRepositories();
63 assertFalse( repos.isEmpty() );
64 log.info( "repos {}", repos );
65
66 }
67
68 @Test
69 public void addAndDeleteRemoteRepository()
70 throws Exception
71 {
72 RemoteRepositoriesService service = getRemoteRepositoriesService();
73
74 WebClient.client( service ).header( "Authorization", authorizationHeader );
75
76 int initialSize = service.getRemoteRepositories().size();
77
78 service.addRemoteRepository( getRemoteRepository() );
79
80 assertNotNull( service.getRemoteRepository( "id-new" ) );
81
82 assertEquals( getRemoteRepository().getName(), service.getRemoteRepository( "id-new" ).getName() );
83 assertEquals( getRemoteRepository().getUrl(), service.getRemoteRepository( "id-new" ).getUrl() );
84 assertEquals( getRemoteRepository().getLayout(), service.getRemoteRepository( "id-new" ).getLayout() );
85 assertEquals( getRemoteRepository().getUserName(), service.getRemoteRepository( "id-new" ).getUserName() );
86 assertEquals( getRemoteRepository().getPassword(), service.getRemoteRepository( "id-new" ).getPassword() );
87 assertEquals( getRemoteRepository().getTimeout(), service.getRemoteRepository( "id-new" ).getTimeout() );
88 assertEquals( getRemoteRepository().getDescription(),
89 service.getRemoteRepository( "id-new" ).getDescription() );
90
91 assertEquals( initialSize + 1, service.getRemoteRepositories().size() );
92
93 service.deleteRemoteRepository( "id-new" );
94
95 assertNull( service.getRemoteRepository( "id-new" ) );
96
97 assertEquals( initialSize, service.getRemoteRepositories().size() );
98
99 }
100
101 @Test
102 public void addAndUpdateAndDeleteRemoteRepository()
103 throws Exception
104 {
105 RemoteRepositoriesService service = getRemoteRepositoriesService();
106
107 WebClient.client( service ).header( "Authorization", authorizationHeader );
108
109 int initialSize = service.getRemoteRepositories().size();
110
111 service.addRemoteRepository( getRemoteRepository() );
112
113 assertNotNull( service.getRemoteRepository( "id-new" ) );
114
115 assertEquals( getRemoteRepository().getName(), service.getRemoteRepository( "id-new" ).getName() );
116 assertEquals( getRemoteRepository().getUrl(), service.getRemoteRepository( "id-new" ).getUrl() );
117 assertEquals( getRemoteRepository().getLayout(), service.getRemoteRepository( "id-new" ).getLayout() );
118 assertEquals( getRemoteRepository().getUserName(), service.getRemoteRepository( "id-new" ).getUserName() );
119 assertEquals( getRemoteRepository().getPassword(), service.getRemoteRepository( "id-new" ).getPassword() );
120 assertEquals( getRemoteRepository().getTimeout(), service.getRemoteRepository( "id-new" ).getTimeout() );
121
122 assertEquals( initialSize + 1, service.getRemoteRepositories().size() );
123
124 RemoteRepository repo = getRemoteRepository();
125 repo.setName( "name changed" );
126 repo.setPassword( "new password" );
127 repo.setUserName( "new username" );
128 repo.setUrl( "http://foo.new.org" );
129 repo.setDescription( "foo bar" );
130
131 service.updateRemoteRepository( repo );
132
133 assertEquals( repo.getName(), service.getRemoteRepository( "id-new" ).getName() );
134 assertEquals( repo.getUrl(), service.getRemoteRepository( "id-new" ).getUrl() );
135 assertEquals( repo.getLayout(), service.getRemoteRepository( "id-new" ).getLayout() );
136 assertEquals( repo.getUserName(), service.getRemoteRepository( "id-new" ).getUserName() );
137 assertEquals( repo.getPassword(), service.getRemoteRepository( "id-new" ).getPassword() );
138 assertEquals( repo.getTimeout(), service.getRemoteRepository( "id-new" ).getTimeout() );
139 assertEquals( repo.getDescription(), service.getRemoteRepository( "id-new" ).getDescription() );
140
141 service.deleteRemoteRepository( "id-new" );
142
143 assertNull( service.getRemoteRepository( "id-new" ) );
144
145 assertEquals( initialSize, service.getRemoteRepositories().size() );
146
147 }
148
149 @Test
150 public void checkRemoteConnectivity()
151 throws Exception {
152 RemoteRepositoriesService service = getRemoteRepositoriesService();
153
154 WebClient.client(service).header("Authorization", authorizationHeader);
155
156 int initialSize = service.getRemoteRepositories().size();
157
158 service.addRemoteRepository(getRemoteRepository());
159
160 assertTrue(service.checkRemoteConnectivity("id-new"));
161
162 }
163
164
165
166
167 @Test
168 public void checkRemoteConnectivity2()
169 throws Exception {
170 RemoteRepositoriesService service = getRemoteRepositoriesService();
171
172 WebClient.client(service).header("Authorization", authorizationHeader);
173
174 int initialSize = service.getRemoteRepositories().size();
175
176 service.addRemoteRepository(getRemoteMavenRepository());
177
178 assertTrue(service.checkRemoteConnectivity("id-maven1"));
179
180 }
181
182
183
184
185
186 @Test
187 public void checkRemoteConnectivity3()
188 throws Exception {
189 RemoteRepositoriesService service = getRemoteRepositoriesService();
190
191 WebClient.client(service).header("Authorization", authorizationHeader);
192 WebClient.client(service).accept("application/json");
193
194 int initialSize = service.getRemoteRepositories().size();
195
196 service.addRemoteRepository(getRemoteOracleRepository());
197
198 assertTrue(service.checkRemoteConnectivity("id-oracle"));
199
200 }
201
202 RemoteRepository getRemoteRepository()
203 {
204 return new RemoteRepository( "id-new", "new one", "http://foo.com", "default", "foo", "foopassword", 120,
205 "cool repo" );
206 }
207
208
209 RemoteRepository getRemoteMavenRepository()
210 {
211 return new RemoteRepository( "id-maven1", "Maven1", "http://repo.maven.apache.org/maven2", "default", "foo", "foopassword", 120,
212 "cool repo3" );
213 }
214
215
216 RemoteRepository getRemoteOracleRepository()
217 {
218 return new RemoteRepository( "id-oracle", "Oracle", "http://download.oracle.com/maven", "default", "foo", "foopassword", 120,
219 "cool repo4" );
220 }
221
222 }