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: ", e.getMessage().substring(0, 111));
110 wrapper = new NexusRestWrapper("http://localhost:57344", "user", "pass");
113 NexusRestSearchParameters searchParameters = new NexusRestSearchParameters();
115 searchParameters.useFilterSearch("org.onap.policy.engine", null, null, null, null);
116 wrapper.findArtifact(searchParameters);
117 fail("test shold throw an exception here");
118 } catch (NexusRestWrapperException e) {
119 assertEquals("search to URI http://localhost:57344/service/local/lucene/search?g=org.onap.policy.engine "
120 + "failed with message: ", e.getMessage().substring(0, 111));
124 wrapper = new NexusRestWrapper("https://nexus.onap.org", "user", "pass");
127 NexusRestSearchParameters searchParameters = new NexusRestSearchParameters();
128 searchParameters.useFilterSearch("org.onap.policy.engine", null, "", null, null);
129 wrapper.findArtifact(searchParameters);
130 fail("test shold throw an exception here");
131 } catch (NexusRestWrapperException e) {
132 assertEquals("search to URI https://nexus.onap.org/service/local/lucene/search?g=org.onap.policy.engine "
133 + "failed, response was: InboundJaxrsResponse{context=ClientResponse{method=GET, "
134 + "uri=https://nexus.onap.org/service/local/lucene/search?g=org.onap.policy.engine, status=401, reason=Unauthorized}}",
139 NexusRestSearchParameters searchParameters = new NexusRestSearchParameters();
140 searchParameters.useFilterSearch(null, null, null, null, null);
141 wrapper.findArtifact(searchParameters);
142 fail("test shold throw an exception here");
143 } catch (NexusRestWrapperException e) {
144 assertEquals("at least one filter parameter must be specified for Nexus filter searches", e.getMessage());
148 NexusRestSearchParameters searchParameters = new NexusRestSearchParameters();
149 searchParameters.useKeywordSearch(null);
150 wrapper.findArtifact(searchParameters);
151 fail("test shold throw an exception here");
152 } catch (NexusRestWrapperException e) {
153 assertEquals("keyword must be specified for Nexus keyword searches", e.getMessage());
157 NexusRestSearchParameters searchParameters = new NexusRestSearchParameters();
158 searchParameters.useClassNameSearch(null);
159 wrapper.findArtifact(searchParameters);
160 fail("test shold throw an exception here");
161 } catch (NexusRestWrapperException e) {
162 assertEquals("className must be specified for Nexus class name searches", e.getMessage());
166 NexusRestSearchParameters searchParameters = new NexusRestSearchParameters();
167 searchParameters.useChecksumSearch(null);
168 wrapper.findArtifact(searchParameters);
169 fail("test shold throw an exception here");
170 } catch (NexusRestWrapperException e) {
171 assertEquals("checksum must be specified for Nexus checksum searches", e.getMessage());
175 NexusRestSearchParameters searchParameters = new NexusRestSearchParameters();
176 searchParameters.useKeywordSearch("BRMSGateway").setRepositoryId(null);
177 wrapper.findArtifact(searchParameters);
178 fail("test shold throw an exception here");
179 } catch (NexusRestWrapperException e) {
180 assertEquals("a repositoryId must be specified", e.getMessage());
184 NexusRestSearchParameters searchParameters = new NexusRestSearchParameters();
185 searchParameters.useKeywordSearch("BRMSGateway").setFrom(-1);
186 wrapper.findArtifact(searchParameters);
187 fail("test shold throw an exception here");
188 } catch (NexusRestWrapperException e) {
189 assertEquals("from cannot be less than 0 when from is specified", e.getMessage());
193 NexusRestSearchParameters searchParameters = new NexusRestSearchParameters();
194 searchParameters.useKeywordSearch("BRMSGateway").setCount(0);
195 wrapper.findArtifact(searchParameters);
196 fail("test shold throw an exception here");
197 } catch (NexusRestWrapperException e) {
198 assertEquals("count cannot be less than 1 when count is specified", e.getMessage());
202 NexusRestSearchParameters searchParameters = new NexusRestSearchParameters();
203 searchParameters.useKeywordSearch("BRMSGateway");
204 searchParameters.getSearchUri(null);
205 fail("test shold throw an exception here");
206 } catch (NexusRestWrapperException e) {
207 assertEquals("nexusServerUrl must be specified for the search URI", e.getMessage());
214 public void testGetters() throws NexusRestWrapperException {
215 NexusRestSearchParameters searchParameters = new NexusRestSearchParameters();
217 searchParameters.useKeywordSearch("BRMSGateway");
218 assertEquals(NexusRestSearchParameters.SearchType.KEYWORD, searchParameters.getSearchType());
219 assertEquals(null, searchParameters.getArtifactId());
220 assertEquals(null, searchParameters.getChecksum());
221 assertEquals(null, searchParameters.getClassName());
222 assertEquals(null, searchParameters.getClassifier());
223 assertEquals(-1, searchParameters.getCount());
224 assertEquals(-1, searchParameters.getFrom());
225 assertEquals(null, searchParameters.getGroupId());
226 assertEquals("BRMSGateway", searchParameters.getKeyword());
227 assertEquals(null, searchParameters.getPackagingType());
228 assertEquals(null, searchParameters.getRepositoryId());
229 assertEquals(null, searchParameters.getVersion());
231 searchParameters.useFilterSearch("org.onap.policy.engine", "BRMSGateway",
232 "1.2.3", "jar", "jar-with-dependencies")
233 .setFrom(100).setCount(10).setRepositoryId("repository");
234 assertEquals(NexusRestSearchParameters.SearchType.FILTER, searchParameters.getSearchType());
235 assertEquals("BRMSGateway", searchParameters.getArtifactId());
236 assertEquals(null, searchParameters.getChecksum());
237 assertEquals(null, searchParameters.getClassName());
238 assertEquals("jar-with-dependencies", searchParameters.getClassifier());
239 assertEquals(10, searchParameters.getCount());
240 assertEquals(100, searchParameters.getFrom());
241 assertEquals("org.onap.policy.engine", searchParameters.getGroupId());
242 assertEquals(null, searchParameters.getKeyword());
243 assertEquals("jar", searchParameters.getPackagingType());
244 assertEquals("repository", searchParameters.getRepositoryId());
245 assertEquals("1.2.3", searchParameters.getVersion());
247 searchParameters.useClassNameSearch("BRMSGateway");
248 assertEquals(NexusRestSearchParameters.SearchType.CLASS_NAME, searchParameters.getSearchType());
249 assertEquals(null, searchParameters.getArtifactId());
250 assertEquals(null, searchParameters.getChecksum());
251 assertEquals("BRMSGateway", searchParameters.getClassName());
252 assertEquals(null, searchParameters.getClassifier());
253 assertEquals(-1, searchParameters.getCount());
254 assertEquals(-1, searchParameters.getFrom());
255 assertEquals(null, searchParameters.getGroupId());
256 assertEquals(null, searchParameters.getKeyword());
257 assertEquals(null, searchParameters.getPackagingType());
258 assertEquals(null, searchParameters.getRepositoryId());
259 assertEquals(null, searchParameters.getVersion());
261 searchParameters.useChecksumSearch("987654321");
262 assertEquals(NexusRestSearchParameters.SearchType.CHECKSUM, searchParameters.getSearchType());
263 assertEquals(null, searchParameters.getArtifactId());
264 assertEquals("987654321", searchParameters.getChecksum());
265 assertEquals(null, searchParameters.getClassName());
266 assertEquals(null, searchParameters.getClassifier());
267 assertEquals(-1, searchParameters.getCount());
268 assertEquals(-1, searchParameters.getFrom());
269 assertEquals(null, searchParameters.getGroupId());
270 assertEquals(null, searchParameters.getKeyword());
271 assertEquals(null, searchParameters.getPackagingType());
272 assertEquals(null, searchParameters.getRepositoryId());
273 assertEquals(null, searchParameters.getVersion());
277 public void testFilterSearch() throws NexusRestWrapperException {
278 NexusRestWrapper wrapper = new NexusRestWrapper("https://nexus.onap.org", null, null);
280 NexusRestSearchParameters searchParameters = new NexusRestSearchParameters();
282 searchParameters.useFilterSearch("org.onap.policy.dorothy", null, null, null, null).setCount(1);
283 List<NexusArtifact> foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
284 assertNotNull(foundArtifactList);
285 assertEquals(0, foundArtifactList.size());
287 searchParameters.useFilterSearch("org.onap.policy.engine", null, null, null, null).setCount(1);
288 foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
289 assertNotNull(foundArtifactList);
290 assertTrue(foundArtifactList.size() <= 1);
292 searchParameters.useFilterSearch("org.onap.policy.engine", null, null, null, null).setFrom(2).setCount(2);
293 foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
294 assertNotNull(foundArtifactList);
295 assertTrue(foundArtifactList.size() <= 2);
297 searchParameters.useFilterSearch("org.onap.policy.engine", null, null, null, null).setFrom(2).setCount(2);
298 foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
299 assertNotNull(foundArtifactList);
300 assertTrue(foundArtifactList.size() <= 2);
302 searchParameters.useFilterSearch(null, "BRMSGateway", null, null, null);
303 foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
304 assertNotNull(foundArtifactList);
305 assertTrue(foundArtifactList.size() >= 0);
307 searchParameters.useFilterSearch(null, null, "1.2.3", null, null).setCount(1);
308 foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
309 assertNotNull(foundArtifactList);
310 assertTrue(foundArtifactList.size() <= 1);
312 searchParameters.useFilterSearch("org.onap.policy.engine", null, "1.1.2", null, null).setCount(1);
313 foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
314 assertNotNull(foundArtifactList);
315 assertTrue(foundArtifactList.size() <= 1);
317 searchParameters.useFilterSearch("org.onap.policy.engine", "BRMSGateway", "1.1.2", null, null).setCount(1);
318 foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
319 assertNotNull(foundArtifactList);
320 assertTrue(foundArtifactList.size() <= 1);
322 searchParameters.useFilterSearch(null, "BRMSGateway", "1.1.2", null, null).setCount(1);
323 foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
324 assertNotNull(foundArtifactList);
325 assertTrue(foundArtifactList.size() <= 1);
327 searchParameters.useFilterSearch(null, "BRMSGateway", "1.1.2", "jar", null).setCount(1);
328 foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
329 assertNotNull(foundArtifactList);
330 assertTrue(foundArtifactList.size() <= 1);
332 searchParameters.useFilterSearch(null, "BRMSGateway", "1.1.2", "jar", "jar-with-dependencies").setCount(1);
333 foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
334 assertNotNull(foundArtifactList);
335 assertTrue(foundArtifactList.size() <= 1);
337 searchParameters.useFilterSearch(null, "BRMSGateway", "1.1.2", "jar", "jar-with-dependencies")
338 .setCount(1).setRepositoryId("releases");
339 foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
340 assertNotNull(foundArtifactList);
341 assertTrue(foundArtifactList.size() <= 1);
347 public void testKeywordSearch() throws NexusRestWrapperException {
348 NexusRestWrapper wrapper = new NexusRestWrapper("https://nexus.onap.org", null, null);
350 NexusRestSearchParameters searchParameters = new NexusRestSearchParameters();
352 searchParameters.useKeywordSearch("TheWizardOfOz").setCount(1);
353 List<NexusArtifact> foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
354 assertNotNull(foundArtifactList);
355 assertEquals(0, foundArtifactList.size());
357 searchParameters.useKeywordSearch("BRMSGateway").setCount(1);
358 foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
359 assertNotNull(foundArtifactList);
360 assertEquals(1, foundArtifactList.size());
366 public void testClassNameSearch() throws NexusRestWrapperException {
367 NexusRestWrapper wrapper = new NexusRestWrapper("https://nexus.onap.org", null, null);
369 NexusRestSearchParameters searchParameters = new NexusRestSearchParameters();
371 searchParameters.useClassNameSearch("TheWizardOfOz").setCount(1);
372 List<NexusArtifact> foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
373 assertNotNull(foundArtifactList);
374 assertEquals(0, foundArtifactList.size());
376 searchParameters.useClassNameSearch("BRMSGateway").setCount(1);
377 foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
378 assertNotNull(foundArtifactList);
379 assertEquals(1, foundArtifactList.size());
385 public void testChecksumSearch() throws NexusRestWrapperException {
386 NexusRestWrapper wrapper = new NexusRestWrapper("https://nexus.onap.org", null, null);
388 NexusRestSearchParameters searchParameters = new NexusRestSearchParameters();
390 searchParameters.useChecksumSearch("99999999999999").setCount(1);
391 List<NexusArtifact> foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
392 assertNotNull(foundArtifactList);
393 assertEquals(0, foundArtifactList.size());
395 searchParameters.useChecksumSearch("914acda2ce67de9b45d599109d6ad8357d01b217").setCount(1);
396 foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
397 assertNotNull(foundArtifactList);
398 assertEquals(1, foundArtifactList.size());