2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2018 Ericsson Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
21 package org.onap.policy.brms.api.nexus;
23 import static org.junit.Assert.assertEquals;
24 import static org.junit.Assert.assertNotNull;
25 import static org.junit.Assert.assertTrue;
26 import static org.junit.Assert.fail;
28 import java.util.List;
30 import org.junit.Test;
31 import org.onap.policy.brms.api.nexus.NexusRestSearchParameters;
32 import org.onap.policy.brms.api.nexus.NexusRestWrapper;
33 import org.onap.policy.brms.api.nexus.NexusRestWrapperException;
34 import org.onap.policy.brms.api.nexus.pojo.NexusArtifact;
36 public class NexusRestWrapperTest {
38 public void testRestWrapperConstructionErrors() throws NexusRestWrapperException {
40 new NexusRestWrapper(null, null, null);
41 fail("test shold throw an exception here");
42 } catch (NexusRestWrapperException e) {
43 assertEquals("nexusServerUrl must be specified for the Nexus server", e.getMessage());
47 new NexusRestWrapper("", null, null);
48 fail("test shold throw an exception here");
49 } catch (NexusRestWrapperException e) {
50 assertEquals("nexusServerUrl must be specified for the Nexus server", e.getMessage());
54 new NexusRestWrapper(" ", null, null);
55 fail("test shold throw an exception here");
56 } catch (NexusRestWrapperException e) {
57 assertEquals("nexusServerUrl must be specified for the Nexus server", e.getMessage());
61 new NexusRestWrapper("\n\t", null, null);
62 fail("test shold throw an exception here");
63 } catch (NexusRestWrapperException e) {
64 assertEquals("nexusServerUrl must be specified for the Nexus server", e.getMessage());
68 new NexusRestWrapper("server", "user", null);
69 fail("test shold throw an exception here");
70 } catch (NexusRestWrapperException e) {
71 assertEquals("if either nexusUser or nexusPassword are specified, both must be specified", e.getMessage());
75 new NexusRestWrapper("server", null, "pass");
76 fail("test shold throw an exception here");
77 } catch (NexusRestWrapperException e) {
78 assertEquals("if either nexusUser or nexusPassword are specified, both must be specified", e.getMessage());
81 NexusRestWrapper wrapper = new NexusRestWrapper("http://localhost:99999", "user", "pass");
82 assertNotNull(wrapper);
85 wrapper.findArtifact(null);
86 fail("test shold throw an exception here");
87 } catch (NexusRestWrapperException e) {
88 assertEquals("searchParameters may not be null", e.getMessage());
92 wrapper.findArtifact(new NexusRestSearchParameters());
93 fail("test shold throw an exception here");
94 } catch (NexusRestWrapperException e) {
95 assertEquals("search parameters have not been set", e.getMessage());
99 NexusRestSearchParameters searchParameters = new NexusRestSearchParameters();
101 searchParameters.useFilterSearch("org.onap.policy.engine", null, null, null, null);
102 wrapper.findArtifact(searchParameters);
103 fail("test shold throw an exception here");
104 } catch (NexusRestWrapperException e) {
105 assertEquals("search to URI http://localhost:99999/service/local/lucene/search?g=org.onap.policy.engine "
106 + "failed with message: java.lang.IllegalArgumentException: port out of range:99999",
111 wrapper = new NexusRestWrapper("http://localhost:57344", "user", "pass");
114 NexusRestSearchParameters searchParameters = new NexusRestSearchParameters();
116 searchParameters.useFilterSearch("org.onap.policy.engine", null, null, null, null);
117 wrapper.findArtifact(searchParameters);
118 fail("test shold throw an exception here");
119 } catch (NexusRestWrapperException e) {
120 assertEquals("search to URI http://localhost:57344/service/local/lucene/search?g=org.onap.policy.engine "
121 + "failed with message: java.net.ConnectException: Connection refused (Connection refused)",
126 wrapper = new NexusRestWrapper("https://nexus.onap.org", "user", "pass");
129 NexusRestSearchParameters searchParameters = new NexusRestSearchParameters();
130 searchParameters.useFilterSearch("org.onap.policy.engine", null, "", null, null);
131 wrapper.findArtifact(searchParameters);
132 fail("test shold throw an exception here");
133 } catch (NexusRestWrapperException e) {
134 assertEquals("search to URI https://nexus.onap.org/service/local/lucene/search?g=org.onap.policy.engine "
135 + "failed, response was: InboundJaxrsResponse{context=ClientResponse{method=GET, "
136 + "uri=https://nexus.onap.org/service/local/lucene/search?g=org.onap.policy.engine, status=401, reason=Unauthorized}}",
141 NexusRestSearchParameters searchParameters = new NexusRestSearchParameters();
142 searchParameters.useFilterSearch(null, null, null, null, null);
143 wrapper.findArtifact(searchParameters);
144 fail("test shold throw an exception here");
145 } catch (NexusRestWrapperException e) {
146 assertEquals("at least one filter parameter must be specified for Nexus filter searches", e.getMessage());
150 NexusRestSearchParameters searchParameters = new NexusRestSearchParameters();
151 searchParameters.useKeywordSearch(null);
152 wrapper.findArtifact(searchParameters);
153 fail("test shold throw an exception here");
154 } catch (NexusRestWrapperException e) {
155 assertEquals("keyword must be specified for Nexus keyword searches", e.getMessage());
159 NexusRestSearchParameters searchParameters = new NexusRestSearchParameters();
160 searchParameters.useClassNameSearch(null);
161 wrapper.findArtifact(searchParameters);
162 fail("test shold throw an exception here");
163 } catch (NexusRestWrapperException e) {
164 assertEquals("className must be specified for Nexus class name searches", e.getMessage());
168 NexusRestSearchParameters searchParameters = new NexusRestSearchParameters();
169 searchParameters.useChecksumSearch(null);
170 wrapper.findArtifact(searchParameters);
171 fail("test shold throw an exception here");
172 } catch (NexusRestWrapperException e) {
173 assertEquals("checksum must be specified for Nexus checksum searches", e.getMessage());
177 NexusRestSearchParameters searchParameters = new NexusRestSearchParameters();
178 searchParameters.useKeywordSearch("BRMSGateway").setRepositoryId(null);
179 wrapper.findArtifact(searchParameters);
180 fail("test shold throw an exception here");
181 } catch (NexusRestWrapperException e) {
182 assertEquals("a repositoryId must be specified", e.getMessage());
186 NexusRestSearchParameters searchParameters = new NexusRestSearchParameters();
187 searchParameters.useKeywordSearch("BRMSGateway").setFrom(-1);
188 wrapper.findArtifact(searchParameters);
189 fail("test shold throw an exception here");
190 } catch (NexusRestWrapperException e) {
191 assertEquals("from cannot be less than 0 when from is specified", e.getMessage());
195 NexusRestSearchParameters searchParameters = new NexusRestSearchParameters();
196 searchParameters.useKeywordSearch("BRMSGateway").setCount(0);
197 wrapper.findArtifact(searchParameters);
198 fail("test shold throw an exception here");
199 } catch (NexusRestWrapperException e) {
200 assertEquals("count cannot be less than 1 when count is specified", e.getMessage());
204 NexusRestSearchParameters searchParameters = new NexusRestSearchParameters();
205 searchParameters.useKeywordSearch("BRMSGateway");
206 searchParameters.getSearchUri(null);
207 fail("test shold throw an exception here");
208 } catch (NexusRestWrapperException e) {
209 assertEquals("nexusServerUrl must be specified for the search URI", e.getMessage());
216 public void testGetters() throws NexusRestWrapperException {
217 NexusRestSearchParameters searchParameters = new NexusRestSearchParameters();
219 searchParameters.useKeywordSearch("BRMSGateway");
220 assertEquals(NexusRestSearchParameters.SearchType.KEYWORD, searchParameters.getSearchType());
221 assertEquals(null, searchParameters.getArtifactId());
222 assertEquals(null, searchParameters.getChecksum());
223 assertEquals(null, searchParameters.getClassName());
224 assertEquals(null, searchParameters.getClassifier());
225 assertEquals(-1, searchParameters.getCount());
226 assertEquals(-1, searchParameters.getFrom());
227 assertEquals(null, searchParameters.getGroupId());
228 assertEquals("BRMSGateway", searchParameters.getKeyword());
229 assertEquals(null, searchParameters.getPackagingType());
230 assertEquals(null, searchParameters.getRepositoryId());
231 assertEquals(null, searchParameters.getVersion());
233 searchParameters.useFilterSearch("org.onap.policy.engine", "BRMSGateway",
234 "1.2.3", "jar", "jar-with-dependencies")
235 .setFrom(100).setCount(10).setRepositoryId("repository");
236 assertEquals(NexusRestSearchParameters.SearchType.FILTER, searchParameters.getSearchType());
237 assertEquals("BRMSGateway", searchParameters.getArtifactId());
238 assertEquals(null, searchParameters.getChecksum());
239 assertEquals(null, searchParameters.getClassName());
240 assertEquals("jar-with-dependencies", searchParameters.getClassifier());
241 assertEquals(10, searchParameters.getCount());
242 assertEquals(100, searchParameters.getFrom());
243 assertEquals("org.onap.policy.engine", searchParameters.getGroupId());
244 assertEquals(null, searchParameters.getKeyword());
245 assertEquals("jar", searchParameters.getPackagingType());
246 assertEquals("repository", searchParameters.getRepositoryId());
247 assertEquals("1.2.3", searchParameters.getVersion());
249 searchParameters.useClassNameSearch("BRMSGateway");
250 assertEquals(NexusRestSearchParameters.SearchType.CLASS_NAME, searchParameters.getSearchType());
251 assertEquals(null, searchParameters.getArtifactId());
252 assertEquals(null, searchParameters.getChecksum());
253 assertEquals("BRMSGateway", searchParameters.getClassName());
254 assertEquals(null, searchParameters.getClassifier());
255 assertEquals(-1, searchParameters.getCount());
256 assertEquals(-1, searchParameters.getFrom());
257 assertEquals(null, searchParameters.getGroupId());
258 assertEquals(null, searchParameters.getKeyword());
259 assertEquals(null, searchParameters.getPackagingType());
260 assertEquals(null, searchParameters.getRepositoryId());
261 assertEquals(null, searchParameters.getVersion());
263 searchParameters.useChecksumSearch("987654321");
264 assertEquals(NexusRestSearchParameters.SearchType.CHECKSUM, searchParameters.getSearchType());
265 assertEquals(null, searchParameters.getArtifactId());
266 assertEquals("987654321", searchParameters.getChecksum());
267 assertEquals(null, searchParameters.getClassName());
268 assertEquals(null, searchParameters.getClassifier());
269 assertEquals(-1, searchParameters.getCount());
270 assertEquals(-1, searchParameters.getFrom());
271 assertEquals(null, searchParameters.getGroupId());
272 assertEquals(null, searchParameters.getKeyword());
273 assertEquals(null, searchParameters.getPackagingType());
274 assertEquals(null, searchParameters.getRepositoryId());
275 assertEquals(null, searchParameters.getVersion());
279 public void testFilterSearch() throws NexusRestWrapperException {
280 NexusRestWrapper wrapper = new NexusRestWrapper("https://nexus.onap.org", null, null);
282 NexusRestSearchParameters searchParameters = new NexusRestSearchParameters();
284 searchParameters.useFilterSearch("org.onap.policy.dorothy", null, null, null, null).setCount(1);
285 List<NexusArtifact> foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
286 assertNotNull(foundArtifactList);
287 assertEquals(0, foundArtifactList.size());
289 searchParameters.useFilterSearch("org.onap.policy.engine", null, null, null, null).setCount(1);
290 foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
291 assertNotNull(foundArtifactList);
292 assertEquals(1, foundArtifactList.size());
294 searchParameters.useFilterSearch("org.onap.policy.engine", null, null, null, null).setFrom(2).setCount(2);
295 foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
296 assertNotNull(foundArtifactList);
297 assertEquals(2, foundArtifactList.size());
299 searchParameters.useFilterSearch("org.onap.policy.engine", null, null, null, null).setFrom(2).setCount(2);
300 foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
301 assertNotNull(foundArtifactList);
302 assertEquals(2, foundArtifactList.size());
304 searchParameters.useFilterSearch(null, "BRMSGateway", null, null, null);
305 foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
306 assertNotNull(foundArtifactList);
307 assertTrue(foundArtifactList.size() > 2);
309 searchParameters.useFilterSearch(null, null, "1.2.3", null, null).setCount(1);
310 foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
311 assertNotNull(foundArtifactList);
312 assertEquals(1, foundArtifactList.size());
314 searchParameters.useFilterSearch("org.onap.policy.engine", null, "1.1.2", null, null).setCount(1);
315 foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
316 assertNotNull(foundArtifactList);
317 assertEquals(1, foundArtifactList.size());
319 searchParameters.useFilterSearch("org.onap.policy.engine", "BRMSGateway", "1.1.2", null, null).setCount(1);
320 foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
321 assertNotNull(foundArtifactList);
322 assertEquals(1, foundArtifactList.size());
324 searchParameters.useFilterSearch(null, "BRMSGateway", "1.1.2", null, null).setCount(1);
325 foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
326 assertNotNull(foundArtifactList);
327 assertEquals(1, foundArtifactList.size());
329 searchParameters.useFilterSearch(null, "BRMSGateway", "1.1.2", "jar", null).setCount(1);
330 foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
331 assertNotNull(foundArtifactList);
332 assertEquals(1, foundArtifactList.size());
334 searchParameters.useFilterSearch(null, "BRMSGateway", "1.1.2", "jar", "jar-with-dependencies").setCount(1);
335 foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
336 assertNotNull(foundArtifactList);
337 assertEquals(1, foundArtifactList.size());
339 searchParameters.useFilterSearch(null, "BRMSGateway", "1.1.2", "jar", "jar-with-dependencies")
340 .setCount(1).setRepositoryId("releases");
341 foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
342 assertNotNull(foundArtifactList);
343 assertEquals(1, foundArtifactList.size());
349 public void testKeywordSearch() throws NexusRestWrapperException {
350 NexusRestWrapper wrapper = new NexusRestWrapper("https://nexus.onap.org", null, null);
352 NexusRestSearchParameters searchParameters = new NexusRestSearchParameters();
354 searchParameters.useKeywordSearch("TheWizardOfOz").setCount(1);
355 List<NexusArtifact> foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
356 assertNotNull(foundArtifactList);
357 assertEquals(0, foundArtifactList.size());
359 searchParameters.useKeywordSearch("BRMSGateway").setCount(1);
360 foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
361 assertNotNull(foundArtifactList);
362 assertEquals(1, foundArtifactList.size());
368 public void testClassNameSearch() throws NexusRestWrapperException {
369 NexusRestWrapper wrapper = new NexusRestWrapper("https://nexus.onap.org", null, null);
371 NexusRestSearchParameters searchParameters = new NexusRestSearchParameters();
373 searchParameters.useClassNameSearch("TheWizardOfOz").setCount(1);
374 List<NexusArtifact> foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
375 assertNotNull(foundArtifactList);
376 assertEquals(0, foundArtifactList.size());
378 searchParameters.useClassNameSearch("BRMSGateway").setCount(1);
379 foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
380 assertNotNull(foundArtifactList);
381 assertEquals(1, foundArtifactList.size());
387 public void testChecksumSearch() throws NexusRestWrapperException {
388 NexusRestWrapper wrapper = new NexusRestWrapper("https://nexus.onap.org", null, null);
390 NexusRestSearchParameters searchParameters = new NexusRestSearchParameters();
392 searchParameters.useChecksumSearch("99999999999999").setCount(1);
393 List<NexusArtifact> foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
394 assertNotNull(foundArtifactList);
395 assertEquals(0, foundArtifactList.size());
397 searchParameters.useChecksumSearch("914acda2ce67de9b45d599109d6ad8357d01b217").setCount(1);
398 foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
399 assertNotNull(foundArtifactList);
400 assertEquals(1, foundArtifactList.size());