Add JUnit for direct Sonar Nexus REST interface
[policy/engine.git] / BRMSGateway / src / test / java / org / onap / policy / brms / api / nexus / NexusRestWrapperTest.java
index 489014e..bc666fb 100644 (file)
 
 package org.onap.policy.brms.api.nexus;
 
+import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
 
 import java.util.List;
 
@@ -31,22 +34,371 @@ import org.onap.policy.brms.api.nexus.NexusRestWrapperException;
 import org.onap.policy.brms.api.nexus.pojo.NexusArtifact;
 
 public class NexusRestWrapperTest {
+    @Test
+    public void testRestWrapperConstructionErrors() throws NexusRestWrapperException {
+        try {
+            new NexusRestWrapper(null, null, null);
+            fail("test shold throw an exception here");
+        } catch (NexusRestWrapperException e) {
+            assertEquals("nexusServerUrl must be specified for the Nexus server", e.getMessage());
+        }
+
+        try {
+            new NexusRestWrapper("", null, null);
+            fail("test shold throw an exception here");
+        } catch (NexusRestWrapperException e) {
+            assertEquals("nexusServerUrl must be specified for the Nexus server", e.getMessage());
+        }
+
+        try {
+            new NexusRestWrapper("   ", null, null);
+            fail("test shold throw an exception here");
+        } catch (NexusRestWrapperException e) {
+            assertEquals("nexusServerUrl must be specified for the Nexus server", e.getMessage());
+        }
+
+        try {
+            new NexusRestWrapper("\n\t", null, null);
+            fail("test shold throw an exception here");
+        } catch (NexusRestWrapperException e) {
+            assertEquals("nexusServerUrl must be specified for the Nexus server", e.getMessage());
+        }
+
+        try {
+            new NexusRestWrapper("server", "user", null);
+            fail("test shold throw an exception here");
+        } catch (NexusRestWrapperException e) {
+            assertEquals("if either nexusUser or nexusPassword are specified, both must be specified", e.getMessage());
+        }
+
+        try {
+            new NexusRestWrapper("server", null, "pass");
+            fail("test shold throw an exception here");
+        } catch (NexusRestWrapperException e) {
+            assertEquals("if either nexusUser or nexusPassword are specified, both must be specified", e.getMessage());
+        }
+
+        NexusRestWrapper wrapper = new NexusRestWrapper("http://localhost:99999", "user", "pass");
+        assertNotNull(wrapper);
+
+        try {
+            wrapper.findArtifact(null);
+            fail("test shold throw an exception here");
+        } catch (NexusRestWrapperException e) {
+            assertEquals("searchParameters may not be null", e.getMessage());
+        }
+
+        try {
+            wrapper.findArtifact(new NexusRestSearchParameters());
+            fail("test shold throw an exception here");
+        } catch (NexusRestWrapperException e) {
+            assertEquals("search parameters have not been set", e.getMessage());
+        }
+
+        try {
+            NexusRestSearchParameters searchParameters = new NexusRestSearchParameters();
+
+            searchParameters.useFilterSearch("org.onap.policy.engine", null, null, null, null);
+            wrapper.findArtifact(searchParameters);
+            fail("test shold throw an exception here");
+        } catch (NexusRestWrapperException e) {
+            assertEquals("search to URI http://localhost:99999/service/local/lucene/search?g=org.onap.policy.engine "
+                            + "failed with message: java.lang.IllegalArgumentException: port out of range:99999",
+                            e.getMessage());
+        }
+
+        wrapper.close();
+        wrapper = new NexusRestWrapper("http://localhost:57344", "user", "pass");
+
+        try {
+            NexusRestSearchParameters searchParameters = new NexusRestSearchParameters();
+
+            searchParameters.useFilterSearch("org.onap.policy.engine", null, null, null, null);
+            wrapper.findArtifact(searchParameters);
+            fail("test shold throw an exception here");
+        } catch (NexusRestWrapperException e) {
+            assertEquals("search to URI http://localhost:57344/service/local/lucene/search?g=org.onap.policy.engine "
+                            + "failed with message: java.net.ConnectException: Connection refused (Connection refused)",
+                            e.getMessage());
+        }
+
+        wrapper.close();
+        wrapper = new NexusRestWrapper("https://nexus.onap.org", "user", "pass");
+
+        try {
+            NexusRestSearchParameters searchParameters = new NexusRestSearchParameters();
+            searchParameters.useFilterSearch("org.onap.policy.engine", null, "", null, null);
+            wrapper.findArtifact(searchParameters);
+            fail("test shold throw an exception here");
+        } catch (NexusRestWrapperException e) {
+            assertEquals("search to URI https://nexus.onap.org/service/local/lucene/search?g=org.onap.policy.engine "
+                            + "failed, response was: InboundJaxrsResponse{context=ClientResponse{method=GET, "
+                            + "uri=https://nexus.onap.org/service/local/lucene/search?g=org.onap.policy.engine, status=401, reason=Unauthorized}}",
+                            e.getMessage());
+        }
+
+        try {
+            NexusRestSearchParameters searchParameters = new NexusRestSearchParameters();
+            searchParameters.useFilterSearch(null, null, null, null, null);
+            wrapper.findArtifact(searchParameters);
+            fail("test shold throw an exception here");
+        } catch (NexusRestWrapperException e) {
+            assertEquals("at least one filter parameter must be specified for Nexus filter searches", e.getMessage());
+        }
+
+        try {
+            NexusRestSearchParameters searchParameters = new NexusRestSearchParameters();
+            searchParameters.useKeywordSearch(null);
+            wrapper.findArtifact(searchParameters);
+            fail("test shold throw an exception here");
+        } catch (NexusRestWrapperException e) {
+            assertEquals("keyword must be specified for Nexus keyword searches", e.getMessage());
+        }
+
+        try {
+            NexusRestSearchParameters searchParameters = new NexusRestSearchParameters();
+            searchParameters.useClassNameSearch(null);
+            wrapper.findArtifact(searchParameters);
+            fail("test shold throw an exception here");
+        } catch (NexusRestWrapperException e) {
+            assertEquals("className must be specified for Nexus class name searches", e.getMessage());
+        }
+
+        try {
+            NexusRestSearchParameters searchParameters = new NexusRestSearchParameters();
+            searchParameters.useChecksumSearch(null);
+            wrapper.findArtifact(searchParameters);
+            fail("test shold throw an exception here");
+        } catch (NexusRestWrapperException e) {
+            assertEquals("checksum must be specified for Nexus checksum searches", e.getMessage());
+        }
+
+        try {
+            NexusRestSearchParameters searchParameters = new NexusRestSearchParameters();
+            searchParameters.useKeywordSearch("BRMSGateway").setRepositoryId(null);
+            wrapper.findArtifact(searchParameters);
+            fail("test shold throw an exception here");
+        } catch (NexusRestWrapperException e) {
+            assertEquals("a repositoryId must be specified", e.getMessage());
+        }
+
+        try {
+            NexusRestSearchParameters searchParameters = new NexusRestSearchParameters();
+            searchParameters.useKeywordSearch("BRMSGateway").setFrom(-1);
+            wrapper.findArtifact(searchParameters);
+            fail("test shold throw an exception here");
+        } catch (NexusRestWrapperException e) {
+            assertEquals("from cannot be less than 0 when from is specified", e.getMessage());
+        }
+
+        try {
+            NexusRestSearchParameters searchParameters = new NexusRestSearchParameters();
+            searchParameters.useKeywordSearch("BRMSGateway").setCount(0);
+            wrapper.findArtifact(searchParameters);
+            fail("test shold throw an exception here");
+        } catch (NexusRestWrapperException e) {
+            assertEquals("count cannot be less than 1 when count is specified", e.getMessage());
+        }
+
+        try {
+            NexusRestSearchParameters searchParameters = new NexusRestSearchParameters();
+            searchParameters.useKeywordSearch("BRMSGateway");
+            searchParameters.getSearchUri(null);
+            fail("test shold throw an exception here");
+        } catch (NexusRestWrapperException e) {
+            assertEquals("nexusServerUrl must be specified for the search URI", e.getMessage());
+        }
+
+        wrapper.close();
+    }
 
     @Test
-    public void test() throws NexusRestWrapperException {
-        NexusRestWrapper wrapper = new NexusRestWrapper("https://nexus.onap.org");
-        
+    public void testGetters() throws NexusRestWrapperException {
         NexusRestSearchParameters searchParameters = new NexusRestSearchParameters();
-        searchParameters.useFilterSearch("org.onap.policy.engine", "BRMSGateway", null, null, null);
         
-        List<NexusArtifact> foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
+        searchParameters.useKeywordSearch("BRMSGateway");
+        assertEquals(NexusRestSearchParameters.SearchType.KEYWORD, searchParameters.getSearchType());
+        assertEquals(null, searchParameters.getArtifactId());
+        assertEquals(null, searchParameters.getChecksum());
+        assertEquals(null, searchParameters.getClassName());
+        assertEquals(null, searchParameters.getClassifier());
+        assertEquals(-1, searchParameters.getCount());
+        assertEquals(-1, searchParameters.getFrom());
+        assertEquals(null, searchParameters.getGroupId());
+        assertEquals("BRMSGateway", searchParameters.getKeyword());
+        assertEquals(null, searchParameters.getPackagingType());
+        assertEquals(null, searchParameters.getRepositoryId());
+        assertEquals(null, searchParameters.getVersion());
         
+        searchParameters.useFilterSearch("org.onap.policy.engine", "BRMSGateway",
+                        "1.2.3", "jar", "jar-with-dependencies")
+            .setFrom(100).setCount(10).setRepositoryId("repository");
+        assertEquals(NexusRestSearchParameters.SearchType.FILTER, searchParameters.getSearchType());
+        assertEquals("BRMSGateway", searchParameters.getArtifactId());
+        assertEquals(null, searchParameters.getChecksum());
+        assertEquals(null, searchParameters.getClassName());
+        assertEquals("jar-with-dependencies", searchParameters.getClassifier());
+        assertEquals(10, searchParameters.getCount());
+        assertEquals(100, searchParameters.getFrom());
+        assertEquals("org.onap.policy.engine", searchParameters.getGroupId());
+        assertEquals(null, searchParameters.getKeyword());
+        assertEquals("jar", searchParameters.getPackagingType());
+        assertEquals("repository", searchParameters.getRepositoryId());
+        assertEquals("1.2.3", searchParameters.getVersion());
+
+        searchParameters.useClassNameSearch("BRMSGateway");
+        assertEquals(NexusRestSearchParameters.SearchType.CLASS_NAME, searchParameters.getSearchType());
+        assertEquals(null, searchParameters.getArtifactId());
+        assertEquals(null, searchParameters.getChecksum());
+        assertEquals("BRMSGateway", searchParameters.getClassName());
+        assertEquals(null, searchParameters.getClassifier());
+        assertEquals(-1, searchParameters.getCount());
+        assertEquals(-1, searchParameters.getFrom());
+        assertEquals(null, searchParameters.getGroupId());
+        assertEquals(null, searchParameters.getKeyword());
+        assertEquals(null, searchParameters.getPackagingType());
+        assertEquals(null, searchParameters.getRepositoryId());
+        assertEquals(null, searchParameters.getVersion());
+
+        searchParameters.useChecksumSearch("987654321");
+        assertEquals(NexusRestSearchParameters.SearchType.CHECKSUM, searchParameters.getSearchType());
+        assertEquals(null, searchParameters.getArtifactId());
+        assertEquals("987654321", searchParameters.getChecksum());
+        assertEquals(null, searchParameters.getClassName());
+        assertEquals(null, searchParameters.getClassifier());
+        assertEquals(-1, searchParameters.getCount());
+        assertEquals(-1, searchParameters.getFrom());
+        assertEquals(null, searchParameters.getGroupId());
+        assertEquals(null, searchParameters.getKeyword());
+        assertEquals(null, searchParameters.getPackagingType());
+        assertEquals(null, searchParameters.getRepositoryId());
+        assertEquals(null, searchParameters.getVersion());
+    }
+
+    @Test
+    public void testFilterSearch() throws NexusRestWrapperException {
+        NexusRestWrapper wrapper = new NexusRestWrapper("https://nexus.onap.org", null, null);
+
+        NexusRestSearchParameters searchParameters = new NexusRestSearchParameters();
+
+        searchParameters.useFilterSearch("org.onap.policy.dorothy", null, null, null, null).setCount(1);
+        List<NexusArtifact> foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
         assertNotNull(foundArtifactList);
-        
-        for (NexusArtifact artifact: foundArtifactList) {
-            System.out.println(artifact.getUrlPath());
-        }
-        
+        assertEquals(0, foundArtifactList.size());
+
+        searchParameters.useFilterSearch("org.onap.policy.engine", null, null, null, null).setCount(1);
+        foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
+        assertNotNull(foundArtifactList);
+        assertEquals(1, foundArtifactList.size());
+
+        searchParameters.useFilterSearch("org.onap.policy.engine", null, null, null, null).setFrom(2).setCount(2);
+        foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
+        assertNotNull(foundArtifactList);
+        assertEquals(2, foundArtifactList.size());
+
+        searchParameters.useFilterSearch("org.onap.policy.engine", null, null, null, null).setFrom(2).setCount(2);
+        foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
+        assertNotNull(foundArtifactList);
+        assertEquals(2, foundArtifactList.size());
+
+        searchParameters.useFilterSearch(null, "BRMSGateway", null, null, null);
+        foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
+        assertNotNull(foundArtifactList);
+        assertTrue(foundArtifactList.size() > 2);
+
+        searchParameters.useFilterSearch(null, null, "1.2.3", null, null).setCount(1);
+        foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
+        assertNotNull(foundArtifactList);
+        assertEquals(1, foundArtifactList.size());
+
+        searchParameters.useFilterSearch("org.onap.policy.engine", null, "1.1.2", null, null).setCount(1);
+        foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
+        assertNotNull(foundArtifactList);
+        assertEquals(1, foundArtifactList.size());
+
+        searchParameters.useFilterSearch("org.onap.policy.engine", "BRMSGateway", "1.1.2", null, null).setCount(1);
+        foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
+        assertNotNull(foundArtifactList);
+        assertEquals(1, foundArtifactList.size());
+
+        searchParameters.useFilterSearch(null, "BRMSGateway", "1.1.2", null, null).setCount(1);
+        foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
+        assertNotNull(foundArtifactList);
+        assertEquals(1, foundArtifactList.size());
+
+        searchParameters.useFilterSearch(null, "BRMSGateway", "1.1.2", "jar", null).setCount(1);
+        foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
+        assertNotNull(foundArtifactList);
+        assertEquals(1, foundArtifactList.size());
+
+        searchParameters.useFilterSearch(null, "BRMSGateway", "1.1.2", "jar", "jar-with-dependencies").setCount(1);
+        foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
+        assertNotNull(foundArtifactList);
+        assertEquals(1, foundArtifactList.size());
+
+        searchParameters.useFilterSearch(null, "BRMSGateway", "1.1.2", "jar", "jar-with-dependencies")
+            .setCount(1).setRepositoryId("releases");
+        foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
+        assertNotNull(foundArtifactList);
+        assertEquals(1, foundArtifactList.size());
+
+        wrapper.close();
+    }
+
+    @Test
+    public void testKeywordSearch() throws NexusRestWrapperException {
+        NexusRestWrapper wrapper = new NexusRestWrapper("https://nexus.onap.org", null, null);
+
+        NexusRestSearchParameters searchParameters = new NexusRestSearchParameters();
+
+        searchParameters.useKeywordSearch("TheWizardOfOz").setCount(1);
+        List<NexusArtifact> foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
+        assertNotNull(foundArtifactList);
+        assertEquals(0, foundArtifactList.size());
+
+        searchParameters.useKeywordSearch("BRMSGateway").setCount(1);
+        foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
+        assertNotNull(foundArtifactList);
+        assertEquals(1, foundArtifactList.size());
+
+        wrapper.close();
+    }
+
+    @Test
+    public void testClassNameSearch() throws NexusRestWrapperException {
+        NexusRestWrapper wrapper = new NexusRestWrapper("https://nexus.onap.org", null, null);
+
+        NexusRestSearchParameters searchParameters = new NexusRestSearchParameters();
+
+        searchParameters.useClassNameSearch("TheWizardOfOz").setCount(1);
+        List<NexusArtifact> foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
+        assertNotNull(foundArtifactList);
+        assertEquals(0, foundArtifactList.size());
+
+        searchParameters.useClassNameSearch("BRMSGateway").setCount(1);
+        foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
+        assertNotNull(foundArtifactList);
+        assertEquals(1, foundArtifactList.size());
+
+        wrapper.close();
+    }
+
+    @Test
+    public void testChecksumSearch() throws NexusRestWrapperException {
+        NexusRestWrapper wrapper = new NexusRestWrapper("https://nexus.onap.org", null, null);
+
+        NexusRestSearchParameters searchParameters = new NexusRestSearchParameters();
+
+        searchParameters.useChecksumSearch("99999999999999").setCount(1);
+        List<NexusArtifact> foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
+        assertNotNull(foundArtifactList);
+        assertEquals(0, foundArtifactList.size());
+
+        searchParameters.useChecksumSearch("914acda2ce67de9b45d599109d6ad8357d01b217").setCount(1);
+        foundArtifactList = wrapper.findArtifact(searchParameters).getArtifactList();
+        assertNotNull(foundArtifactList);
+        assertEquals(1, foundArtifactList.size());
+
         wrapper.close();
     }
 }