You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by mb...@apache.org on 2010/07/02 10:02:35 UTC
svn commit: r959907 -
/archiva/branches/archiva-1.3.x/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/test/java/org/apache/archiva/web/xmlrpc/services/SearchServiceImplTest.java
Author: mbaclay
Date: Fri Jul 2 08:02:35 2010
New Revision: 959907
URL: http://svn.apache.org/viewvc?rev=959907&view=rev
Log:
[MRM-1230] Type of artifact is always "pom"
- additional unit test (modified the patch since it has not been applied in 1.3 as set in the fixed version)
Submitted by: Maria Catherine Tan
Modified:
archiva/branches/archiva-1.3.x/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/test/java/org/apache/archiva/web/xmlrpc/services/SearchServiceImplTest.java
Modified: archiva/branches/archiva-1.3.x/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/test/java/org/apache/archiva/web/xmlrpc/services/SearchServiceImplTest.java
URL: http://svn.apache.org/viewvc/archiva/branches/archiva-1.3.x/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/test/java/org/apache/archiva/web/xmlrpc/services/SearchServiceImplTest.java?rev=959907&r1=959906&r2=959907&view=diff
==============================================================================
--- archiva/branches/archiva-1.3.x/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/test/java/org/apache/archiva/web/xmlrpc/services/SearchServiceImplTest.java (original)
+++ archiva/branches/archiva-1.3.x/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/test/java/org/apache/archiva/web/xmlrpc/services/SearchServiceImplTest.java Fri Jul 2 08:02:35 2010
@@ -34,6 +34,7 @@ import org.apache.archiva.web.xmlrpc.api
import org.apache.archiva.web.xmlrpc.api.beans.Dependency;
import org.apache.archiva.web.xmlrpc.security.XmlRpcUserRepositories;
import org.apache.maven.archiva.database.ArchivaDAO;
+import org.apache.maven.archiva.database.ArchivaDatabaseException;
import org.apache.maven.archiva.database.ArtifactDAO;
import org.apache.maven.archiva.database.ObjectNotFoundException;
import org.apache.maven.archiva.database.browsing.BrowsingResults;
@@ -45,6 +46,7 @@ import org.apache.maven.archiva.model.Ar
import org.codehaus.plexus.spring.PlexusInSpringTestCase;
import org.easymock.MockControl;
import org.easymock.classextension.MockClassControl;
+import org.slf4j.Logger;
/**
* SearchServiceImplTest
@@ -76,6 +78,10 @@ public class SearchServiceImplTest
private RepositoryBrowsing repoBrowsing;
+ private MockControl loggerControl;
+
+ private Logger logger;
+
private static final String ARCHIVA_TEST_ARTIFACT_ID = "archiva-xmlrpc-test";
private static final String ARCHIVA_TEST_GROUP_ID = "org.apache.archiva";
@@ -102,6 +108,10 @@ public class SearchServiceImplTest
artifactDAOControl = MockControl.createControl( ArtifactDAO.class );
artifactDAO = ( ArtifactDAO ) artifactDAOControl.getMock();
+
+ loggerControl = MockControl.createControl( Logger.class );
+ logger = ( Logger ) loggerControl.getMock();
+
}
// MRM-1230
@@ -224,6 +234,110 @@ public class SearchServiceImplTest
assertEquals( "jar", artifact.getType() );
assertNull( "Repository should be null since the model was not found in the database!", artifact.getRepositoryId() );
}
+
+ public void testQuickSearchArtifactObjectNotFoundException()
+ throws Exception
+ {
+ List<String> observableRepoIds = new ArrayList<String>();
+ observableRepoIds.add( "repo1.mirror" );
+
+ userReposControl.expectAndReturn( userRepos.getObservableRepositories(), observableRepoIds );
+
+ SearchResults results = new SearchResults();
+ List<String> versions = new ArrayList<String>();
+ versions.add( "1.0" );
+
+ SearchResultHit resultHit = new SearchResultHit();
+ resultHit.setRepositoryId( "repo1.mirror" );
+ resultHit.setGroupId( "org.apache.archiva" );
+ resultHit.setArtifactId( "archiva-test" );
+ resultHit.setVersions( versions );
+
+ results.addHit( SearchUtil.getHitId( "org.apache.archiva", "archiva-test" ), resultHit );
+
+ SearchResultLimits limits = new SearchResultLimits( SearchResultLimits.ALL_PAGES );
+
+ searchControl.expectAndDefaultReturn( search.search( "", observableRepoIds, "archiva", limits, null ), results );
+
+ archivaDAOControl.expectAndReturn( archivaDAO.query( new UniqueVersionConstraint( observableRepoIds, resultHit.getGroupId(),
+ resultHit.getArtifactId() ) ), null );
+
+ ObjectNotFoundException exception = new ObjectNotFoundException( "org.apache.archiva.archiva-test:1.0" );
+
+ repoBrowsingControl.expectAndThrow( repoBrowsing.selectVersion( "", observableRepoIds, "org.apache.archiva", "archiva-test", "1.0" ), exception );
+
+ logger.debug( "Unable to find pom artifact : " + exception.getMessage() );
+ loggerControl.setDefaultVoidCallable();
+
+ userReposControl.replay();
+ searchControl.replay();
+ repoBrowsingControl.replay();
+ archivaDAOControl.replay();
+ loggerControl.replay();
+
+ List<Artifact> artifacts = searchService.quickSearch( "archiva" );
+
+ userReposControl.verify();
+ searchControl.verify();
+ repoBrowsingControl.verify();
+ archivaDAOControl.verify();
+ loggerControl.verify();
+
+ assertNotNull( artifacts );
+ assertEquals( 0, artifacts.size() );
+ }
+
+ public void testQuickSearchArtifactArchivaDatabaseException()
+ throws Exception
+ {
+ List<String> observableRepoIds = new ArrayList<String>();
+ observableRepoIds.add( "repo1.mirror" );
+
+ userReposControl.expectAndReturn( userRepos.getObservableRepositories(), observableRepoIds );
+
+ SearchResults results = new SearchResults();
+ List<String> versions = new ArrayList<String>();
+ versions.add( "1.0" );
+
+ SearchResultHit resultHit = new SearchResultHit();
+ resultHit.setRepositoryId( "repo1.mirror" );
+ resultHit.setGroupId( "org.apache.archiva" );
+ resultHit.setArtifactId( "archiva-test" );
+ resultHit.setVersions( versions );
+
+ results.addHit( SearchUtil.getHitId( "org.apache.archiva", "archiva-test" ), resultHit );
+
+ SearchResultLimits limits = new SearchResultLimits( SearchResultLimits.ALL_PAGES );
+
+ searchControl.expectAndDefaultReturn( search.search( "", observableRepoIds, "archiva", limits, null ), results );
+
+ archivaDAOControl.expectAndReturn( archivaDAO.query( new UniqueVersionConstraint( observableRepoIds, resultHit.getGroupId(),
+ resultHit.getArtifactId() ) ), null );
+
+ ArchivaDatabaseException exception = new ArchivaDatabaseException( "org.apache.archiva.archiva-test:1.0" );
+
+ repoBrowsingControl.expectAndThrow( repoBrowsing.selectVersion( "", observableRepoIds, "org.apache.archiva", "archiva-test", "1.0" ), exception );
+
+ logger.debug( "Error occurred while getting pom artifact from database : " + exception.getMessage() );
+ loggerControl.setDefaultVoidCallable();
+
+ userReposControl.replay();
+ searchControl.replay();
+ repoBrowsingControl.replay();
+ archivaDAOControl.replay();
+ loggerControl.replay();
+
+ List<Artifact> artifacts = searchService.quickSearch( "archiva" );
+
+ userReposControl.verify();
+ searchControl.verify();
+ repoBrowsingControl.verify();
+ archivaDAOControl.verify();
+ loggerControl.verify();
+
+ assertNotNull( artifacts );
+ assertEquals( 0, artifacts.size() );
+ }
/*
* quick/general text search which returns a list of artifacts
@@ -662,4 +776,4 @@ public class SearchServiceImplTest
userReposControl.verify();
}
}
-}
\ No newline at end of file
+}