]> source.dussan.org Git - archiva.git/blob
d3d66728338ee3228078f562decfc47828a9e21c
[archiva.git] /
1 package org.apache.archiva.rest.services;
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.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  * @author Olivier Lamy
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      * Check maven repository
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      *  Check oracle repository that allows not browsing (MRM-1933)
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 }