Remove unit test Java version dependency
[policy/engine.git] / BRMSGateway / src / test / java / org / onap / policy / brms / api / nexus / NexusRestWrapperTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP Policy Engine
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
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
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=========================================================
19  */
20
21 package org.onap.policy.brms.api.nexus;
22
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;
27
28 import java.util.List;
29
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;
35
36 public class NexusRestWrapperTest {
37     @Test
38     public void testRestWrapperConstructionErrors() throws NexusRestWrapperException {
39         try {
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());
44         }
45
46         try {
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());
51         }
52
53         try {
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());
58         }
59
60         try {
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());
65         }
66
67         try {
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());
72         }
73
74         try {
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());
79         }
80
81         NexusRestWrapper wrapper = new NexusRestWrapper("http://localhost:99999", "user", "pass");
82         assertNotNull(wrapper);
83
84         try {
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());
89         }
90
91         try {
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());
96         }
97
98         try {
99             NexusRestSearchParameters searchParameters = new NexusRestSearchParameters();
100
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));
107         }
108
109         wrapper.close();
110         wrapper = new NexusRestWrapper("http://localhost:57344", "user", "pass");
111
112         try {
113             NexusRestSearchParameters searchParameters = new NexusRestSearchParameters();
114
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));
121         }
122
123         wrapper.close();
124         wrapper = new NexusRestWrapper("https://nexus.onap.org", "user", "pass");
125
126         try {
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}}",
135                             e.getMessage());
136         }
137
138         try {
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());
145         }
146
147         try {
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());
154         }
155
156         try {
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());
163         }
164
165         try {
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());
172         }
173
174         try {
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());
181         }
182
183         try {
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());
190         }
191
192         try {
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());
199         }
200
201         try {
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());
208         }
209
210         wrapper.close();
211     }
212
213     @Test
214     public void testGetters() throws NexusRestWrapperException {
215         NexusRestSearchParameters searchParameters = new NexusRestSearchParameters();
216         
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());
230         
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());
246
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());
260
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());
274     }
275
276     @Test
277     public void testFilterSearch() throws NexusRestWrapperException {
278         NexusRestWrapper wrapper = new NexusRestWrapper("https://nexus.onap.org", null, null);
279
280         NexusRestSearchParameters searchParameters = new NexusRestSearchParameters();
281
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());
286
287         searchParameters.useFilterSearch("org.onap.policy.engine", null, null, null, null).setCount(1);
288         foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
289         assertNotNull(foundArtifactList);
290         assertEquals(1, foundArtifactList.size());
291
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         assertEquals(2, foundArtifactList.size());
296
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         assertEquals(2, foundArtifactList.size());
301
302         searchParameters.useFilterSearch(null, "BRMSGateway", null, null, null);
303         foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
304         assertNotNull(foundArtifactList);
305         assertTrue(foundArtifactList.size() > 2);
306
307         searchParameters.useFilterSearch(null, null, "1.2.3", null, null).setCount(1);
308         foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
309         assertNotNull(foundArtifactList);
310         assertEquals(1, foundArtifactList.size());
311
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         assertEquals(1, foundArtifactList.size());
316
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         assertEquals(1, foundArtifactList.size());
321
322         searchParameters.useFilterSearch(null, "BRMSGateway", "1.1.2", null, null).setCount(1);
323         foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
324         assertNotNull(foundArtifactList);
325         assertEquals(1, foundArtifactList.size());
326
327         searchParameters.useFilterSearch(null, "BRMSGateway", "1.1.2", "jar", null).setCount(1);
328         foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
329         assertNotNull(foundArtifactList);
330         assertEquals(1, foundArtifactList.size());
331
332         searchParameters.useFilterSearch(null, "BRMSGateway", "1.1.2", "jar", "jar-with-dependencies").setCount(1);
333         foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
334         assertNotNull(foundArtifactList);
335         assertEquals(1, foundArtifactList.size());
336
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         assertEquals(1, foundArtifactList.size());
342
343         wrapper.close();
344     }
345
346     @Test
347     public void testKeywordSearch() throws NexusRestWrapperException {
348         NexusRestWrapper wrapper = new NexusRestWrapper("https://nexus.onap.org", null, null);
349
350         NexusRestSearchParameters searchParameters = new NexusRestSearchParameters();
351
352         searchParameters.useKeywordSearch("TheWizardOfOz").setCount(1);
353         List<NexusArtifact> foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
354         assertNotNull(foundArtifactList);
355         assertEquals(0, foundArtifactList.size());
356
357         searchParameters.useKeywordSearch("BRMSGateway").setCount(1);
358         foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
359         assertNotNull(foundArtifactList);
360         assertEquals(1, foundArtifactList.size());
361
362         wrapper.close();
363     }
364
365     @Test
366     public void testClassNameSearch() throws NexusRestWrapperException {
367         NexusRestWrapper wrapper = new NexusRestWrapper("https://nexus.onap.org", null, null);
368
369         NexusRestSearchParameters searchParameters = new NexusRestSearchParameters();
370
371         searchParameters.useClassNameSearch("TheWizardOfOz").setCount(1);
372         List<NexusArtifact> foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
373         assertNotNull(foundArtifactList);
374         assertEquals(0, foundArtifactList.size());
375
376         searchParameters.useClassNameSearch("BRMSGateway").setCount(1);
377         foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
378         assertNotNull(foundArtifactList);
379         assertEquals(1, foundArtifactList.size());
380
381         wrapper.close();
382     }
383
384     @Test
385     public void testChecksumSearch() throws NexusRestWrapperException {
386         NexusRestWrapper wrapper = new NexusRestWrapper("https://nexus.onap.org", null, null);
387
388         NexusRestSearchParameters searchParameters = new NexusRestSearchParameters();
389
390         searchParameters.useChecksumSearch("99999999999999").setCount(1);
391         List<NexusArtifact> foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
392         assertNotNull(foundArtifactList);
393         assertEquals(0, foundArtifactList.size());
394
395         searchParameters.useChecksumSearch("914acda2ce67de9b45d599109d6ad8357d01b217").setCount(1);
396         foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
397         assertNotNull(foundArtifactList);
398         assertEquals(1, foundArtifactList.size());
399
400         wrapper.close();
401     }
402 }