]> source.dussan.org Git - archiva.git/commitdiff
add unit tests for browseService
authorOlivier Lamy <olamy@apache.org>
Sat, 24 Mar 2012 22:01:00 +0000 (22:01 +0000)
committerOlivier Lamy <olamy@apache.org>
Sat, 24 Mar 2012 22:01:00 +0000 (22:01 +0000)
git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1304938 13f79535-47bb-0310-9956-ffa450edef68

archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/BrowseResultEntry.java
archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/AbstractArchivaRestTest.java
archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/BrowseServiceTest.java

index 718d37d6e39aaf4ff15e873a6c246793b6574b30..9ee7a1f1d917ee185c32f88d66dab25c0d112e49 100644 (file)
@@ -69,4 +69,49 @@ public class BrowseResultEntry
     {
         return this.name.compareTo( browseGroupResultEntry.name );
     }
+
+    @Override
+    public String toString()
+    {
+        final StringBuilder sb = new StringBuilder();
+        sb.append( "BrowseResultEntry" );
+        sb.append( "{name='" ).append( name ).append( '\'' );
+        sb.append( ", project=" ).append( project );
+        sb.append( '}' );
+        return sb.toString();
+    }
+
+    @Override
+    public boolean equals( Object o )
+    {
+        if ( this == o )
+        {
+            return true;
+        }
+        if ( !( o instanceof BrowseResultEntry ) )
+        {
+            return false;
+        }
+
+        BrowseResultEntry that = (BrowseResultEntry) o;
+
+        if ( project != that.project )
+        {
+            return false;
+        }
+        if ( !name.equals( that.name ) )
+        {
+            return false;
+        }
+
+        return true;
+    }
+
+    @Override
+    public int hashCode()
+    {
+        int result = name.hashCode();
+        result = 31 * result + ( project ? 1 : 0 );
+        return result;
+    }
 }
index 5afb4a980905cd33e3548a293c442c5394c4d7ae..d8b3df87642a0a5dad30287480052400df83ba5c 100644 (file)
@@ -201,7 +201,7 @@ public abstract class AbstractArchivaRestTest
         return service;
     }
 
-    protected BrowseService getBrowseService( String authzHeader )
+    protected BrowseService getBrowseService( String authzHeader, boolean useXml )
     {
         BrowseService service =
             JAXRSClientFactory.create( getBaseUrl() + "/" + getRestServicesPath() + "/archivaServices/",
@@ -214,9 +214,16 @@ public abstract class AbstractArchivaRestTest
         }
 
         WebClient.getConfig( service ).getHttpConduit().getClient().setReceiveTimeout( 100000000 );
-
-        WebClient.client( service ).accept( MediaType.APPLICATION_JSON_TYPE );
-        WebClient.client( service ).type( MediaType.APPLICATION_JSON_TYPE );
+        if ( useXml )
+        {
+            WebClient.client( service ).accept( MediaType.APPLICATION_XML_TYPE );
+            WebClient.client( service ).type( MediaType.APPLICATION_XML_TYPE );
+        }
+        else
+        {
+            WebClient.client( service ).accept( MediaType.APPLICATION_JSON_TYPE );
+            WebClient.client( service ).type( MediaType.APPLICATION_JSON_TYPE );
+        }
         return service;
 
     }
@@ -348,7 +355,7 @@ public abstract class AbstractArchivaRestTest
 
     }
 
-    protected void createAndIndexRepo( String testRepoId, String repoPath )
+    protected void createAndIndexRepo( String testRepoId, String repoPath, boolean scan )
         throws Exception
     {
         if ( getManagedRepositoriesService( authorizationHeader ).getManagedRepository( testRepoId ) != null )
@@ -378,9 +385,17 @@ public abstract class AbstractArchivaRestTest
 
         getRoleManagementService( authorizationHeader ).assignTemplatedRole(
             ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER, testRepoId, "guest" );
+        if ( scan )
+        {
+            getRepositoriesService( authorizationHeader ).scanRepositoryNow( testRepoId, true );
+        }
 
-        getRepositoriesService( authorizationHeader ).scanRepositoryNow( testRepoId, true );
+    }
 
+    protected void createAndIndexRepo( String testRepoId, String repoPath )
+        throws Exception
+    {
+        createAndIndexRepo( testRepoId, repoPath, true );
     }
 
     protected void deleteTestRepo( String id )
index 1284ab92b835d9b1c8c8803ceeeab5fc564d5b19..a573ba6ce1085b305f4cb6cd95e8dd97d5ffcb5b 100644 (file)
@@ -18,6 +18,10 @@ package org.apache.archiva.rest.services;
  * under the License.
  */
 
+import org.apache.archiva.metadata.model.ProjectVersionMetadata;
+import org.apache.archiva.rest.api.model.BrowseResult;
+import org.apache.archiva.rest.api.model.BrowseResultEntry;
+import org.apache.archiva.rest.api.model.VersionsList;
 import org.apache.archiva.rest.api.services.BrowseService;
 import org.fest.assertions.MapAssert;
 import org.junit.Test;
@@ -46,7 +50,7 @@ public class BrowseServiceTest
 
         createAndIndexRepo( testRepoId, "src/test/repo-with-osgi" );
 
-        BrowseService browseService = getBrowseService( authorizationHeader );
+        BrowseService browseService = getBrowseService( authorizationHeader, false );
 
         Map<String, String> metadatas = browseService.getMetadatas( "commons-cli", "commons-cli", "1.0", testRepoId );
 
@@ -77,7 +81,7 @@ public class BrowseServiceTest
 
         createAndIndexRepo( testRepoId, "src/test/repo-with-osgi" );
 
-        BrowseService browseService = getBrowseService( authorizationHeader );
+        BrowseService browseService = getBrowseService( authorizationHeader, false );
 
         Map<String, String> metadatas = browseService.getMetadatas( "commons-cli", "commons-cli", "1.0", testRepoId );
 
@@ -98,4 +102,105 @@ public class BrowseServiceTest
         deleteTestRepo( testRepoId );
 
     }
+
+    @Test
+    public void browserootGroups()
+        throws Exception
+    {
+
+        String testRepoId = "test-repo";
+        // force guest user creation if not exists
+        if ( getUserService( authorizationHeader ).getGuestUser() == null )
+        {
+            assertNotNull( getUserService( authorizationHeader ).createGuestUser() );
+        }
+
+        createAndIndexRepo( testRepoId, "src/test/repo-with-osgi", false );
+
+        BrowseService browseService = getBrowseService( authorizationHeader, false );
+
+        BrowseResult browseResult = browseService.getRootGroups( testRepoId );
+        assertThat( browseResult ).isNotNull();
+        assertThat( browseResult.getBrowseResultEntries() ).isNotNull().isNotEmpty().hasSize( 3 ).contains(
+            new BrowseResultEntry( "commons-cli", false ), new BrowseResultEntry( "commons-logging", false ),
+            new BrowseResultEntry( "org.apache", false ) );
+
+        deleteTestRepo( testRepoId );
+
+    }
+
+    @Test
+    public void browsegroupId()
+        throws Exception
+    {
+
+        String testRepoId = "test-repo";
+        // force guest user creation if not exists
+        if ( getUserService( authorizationHeader ).getGuestUser() == null )
+        {
+            assertNotNull( getUserService( authorizationHeader ).createGuestUser() );
+        }
+
+        createAndIndexRepo( testRepoId, "src/test/repo-with-osgi", false );
+
+        BrowseService browseService = getBrowseService( authorizationHeader, false );
+
+        BrowseResult browseResult = browseService.browseGroupId( "org.apache", testRepoId );
+        assertThat( browseResult ).isNotNull();
+        assertThat( browseResult.getBrowseResultEntries() ).isNotNull().isNotEmpty().hasSize( 2 ).contains(
+            new BrowseResultEntry( "org.apache.felix", false ),
+            new BrowseResultEntry( "org.apache.karaf.features", false ) );
+
+        deleteTestRepo( testRepoId );
+
+    }
+
+    @Test
+    public void versionsList()
+        throws Exception
+    {
+
+        String testRepoId = "test-repo";
+        // force guest user creation if not exists
+        if ( getUserService( authorizationHeader ).getGuestUser() == null )
+        {
+            assertNotNull( getUserService( authorizationHeader ).createGuestUser() );
+        }
+
+        createAndIndexRepo( testRepoId, "src/test/repo-with-osgi", false );
+
+        BrowseService browseService = getBrowseService( authorizationHeader, false );
+
+        VersionsList versions =
+            browseService.getVersionsList( "org.apache.karaf.features", "org.apache.karaf.features.core", testRepoId );
+        assertThat( versions ).isNotNull();
+        assertThat( versions.getVersions() ).isNotNull().isNotEmpty().hasSize( 2 ).contains( "2.2.1", "2.2.2" );
+
+        deleteTestRepo( testRepoId );
+
+    }
+
+    @Test
+    public void getProjectVersionMetadata()
+        throws Exception
+    {
+        String testRepoId = "test-repo";
+        // force guest user creation if not exists
+        if ( getUserService( authorizationHeader ).getGuestUser() == null )
+        {
+            assertNotNull( getUserService( authorizationHeader ).createGuestUser() );
+        }
+
+        createAndIndexRepo( testRepoId, "src/test/repo-with-osgi", false );
+
+        BrowseService browseService = getBrowseService( authorizationHeader, true );
+
+        ProjectVersionMetadata metadata =
+            browseService.getProjectVersionMetadata( "org.apache.karaf.features", "org.apache.karaf.features.core",
+                                                     testRepoId );
+
+        assertThat( metadata ).isNotNull();
+
+        deleteTestRepo( testRepoId );
+    }
 }