From: Brett Porter Date: Thu, 31 Jul 2014 23:50:00 +0000 (+1000) Subject: refactor service tests X-Git-Tag: archiva-2.1.1~14 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=8b1e1ffa7120b6da1cef6e357d99c290014d9d37;p=archiva.git refactor service tests Split out scan call to be explicit to make it easier to refactor duplicate sections, then move repeated configuration to before/after methods. Make sure scanning has finished before operations that might concurrently try to modify the metadata. This also means we can now verify the deletion of the repository is successful --- diff --git a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRepositoriesService.java b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRepositoriesService.java index 6c3aaa7d4..f69d56627 100644 --- a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRepositoriesService.java +++ b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRepositoriesService.java @@ -64,6 +64,7 @@ import org.apache.archiva.repository.metadata.RepositoryMetadataWriter; import org.apache.archiva.repository.scanner.RepositoryScanStatistics; import org.apache.archiva.repository.scanner.RepositoryScanner; import org.apache.archiva.repository.scanner.RepositoryScannerException; +import org.apache.archiva.repository.scanner.RepositoryScannerInstance; import org.apache.archiva.rest.api.model.ArtifactTransferRequest; import org.apache.archiva.rest.api.model.StringList; import org.apache.archiva.rest.api.services.ArchivaRestServiceException; @@ -169,6 +170,13 @@ public class DefaultRepositoriesService @Override public Boolean alreadyScanning( String repositoryId ) { + for ( RepositoryScannerInstance scan : repoScanner.getInProgressScans() ) + { + if ( scan.getRepository().getId().equals( repositoryId ) ) + { + return true; + } + } return repositoryTaskScheduler.isProcessingRepositoryTask( repositoryId ); } diff --git a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/AbstractArchivaRestTest.java b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/AbstractArchivaRestTest.java index 470fe7d89..310448015 100644 --- a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/AbstractArchivaRestTest.java +++ b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/AbstractArchivaRestTest.java @@ -22,8 +22,10 @@ package org.apache.archiva.rest.services; import com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider; import org.apache.archiva.admin.model.beans.ManagedRepository; import org.apache.archiva.common.utils.FileUtil; +import org.apache.archiva.redback.rest.api.services.RedbackServiceException; import org.apache.archiva.redback.rest.services.AbstractRestServicesTest; import org.apache.archiva.rest.api.services.ArchivaAdministrationService; +import org.apache.archiva.rest.api.services.ArchivaRestServiceException; import org.apache.archiva.rest.api.services.RedbackRuntimeConfigurationService; import org.apache.archiva.rest.api.services.BrowseService; import org.apache.archiva.rest.api.services.CommonServices; @@ -51,6 +53,7 @@ import org.slf4j.LoggerFactory; import javax.ws.rs.core.MediaType; import java.io.File; +import java.io.IOException; import java.util.Collections; import java.util.Date; import org.apache.archiva.rest.api.services.PluginsService; @@ -417,14 +420,8 @@ public abstract class AbstractArchivaRestTest } - protected void createAndIndexRepo( String testRepoId, String repoPath, boolean scan ) - throws Exception - { - createAndIndexRepo( testRepoId, repoPath, scan, false ); - } - - protected void createAndIndexRepo( String testRepoId, String repoPath, boolean scan, boolean stageNeeded ) - throws Exception + protected void createAndIndexRepo( String testRepoId, String repoPath, boolean stageNeeded ) + throws ArchivaRestServiceException, IOException, RedbackServiceException { if ( getManagedRepositoriesService( authorizationHeader ).getManagedRepository( testRepoId ) != null ) { @@ -464,23 +461,30 @@ public abstract class AbstractArchivaRestTest getRoleManagementService( authorizationHeader ).assignTemplatedRole( ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER, testRepoId, "guest" ); - if ( scan ) - { - getRepositoriesService( authorizationHeader ).scanRepositoryNow( testRepoId, true ); - } + } + protected void scanRepo( String testRepoId ) + throws ArchivaRestServiceException + { + getRepositoriesService( authorizationHeader ).scanRepositoryNow( testRepoId, true ); } protected void createAndIndexRepo( String testRepoId, String repoPath ) throws Exception { - createAndIndexRepo( testRepoId, repoPath, true, false ); + createAndIndexRepo( testRepoId, repoPath, false ); + scanRepo( testRepoId ); } protected void createStagedNeededRepo( String testRepoId, String repoPath, boolean scan ) throws Exception { - createAndIndexRepo( testRepoId, repoPath, scan, true ); + createAndIndexRepo( testRepoId, repoPath, true ); + if ( scan ) + { + scanRepo( testRepoId ); + } + RepositoriesService repositoriesService = getRepositoriesService( authorizationHeader ); repositoriesService.scanRepositoryDirectoriesNow( testRepoId ); if ( scan ) @@ -494,16 +498,9 @@ public abstract class AbstractArchivaRestTest protected void deleteTestRepo( String id ) throws Exception { - try + if ( getManagedRepositoriesService( authorizationHeader ).getManagedRepository( id ) != null ) { - if ( getManagedRepositoriesService( authorizationHeader ).getManagedRepository( id ) != null ) - { - getManagedRepositoriesService( authorizationHeader ).deleteManagedRepository( id, false ); - } - } - catch ( Exception e ) - { - log.warn( "skip error deleting repo {}", id, e ); + getManagedRepositoriesService( authorizationHeader ).deleteManagedRepository( id, false ); } } @@ -511,4 +508,13 @@ public abstract class AbstractArchivaRestTest { return System.getProperty( "basedir" ); } + + protected void waitForScanToComplete( String repoId ) + throws ArchivaRestServiceException, InterruptedException + { + while ( getRepositoriesService( authorizationHeader ).alreadyScanning( repoId ) ) { + // Would be better to cancel, if we had that capacity + Thread.sleep( 100 ); + } + } } diff --git a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/BrowseServiceTest.java b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/BrowseServiceTest.java index cf28db7e1..9a1dbd6ad 100644 --- a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/BrowseServiceTest.java +++ b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/BrowseServiceTest.java @@ -20,23 +20,27 @@ package org.apache.archiva.rest.services; import org.apache.archiva.maven2.model.Artifact; import org.apache.archiva.metadata.model.ProjectVersionMetadata; +import org.apache.archiva.redback.rest.api.services.RedbackServiceException; import org.apache.archiva.rest.api.model.ArtifactContentEntry; import org.apache.archiva.rest.api.model.BrowseResult; import org.apache.archiva.rest.api.model.BrowseResultEntry; import org.apache.archiva.rest.api.model.Entry; import org.apache.archiva.rest.api.model.MetadataAddRequest; import org.apache.archiva.rest.api.model.VersionsList; +import org.apache.archiva.rest.api.services.ArchivaRestServiceException; import org.apache.archiva.rest.api.services.BrowseService; import org.apache.cxf.jaxrs.client.WebClient; - import org.assertj.core.data.MapEntry; +import org.junit.After; +import org.junit.Before; import org.junit.Test; -import javax.ws.rs.core.MediaType; import java.io.File; +import java.io.IOException; import java.util.HashMap; import java.util.List; import java.util.Map; +import javax.ws.rs.core.MediaType; import static org.assertj.core.api.Assertions.assertThat; @@ -46,6 +50,7 @@ import static org.assertj.core.api.Assertions.assertThat; public class BrowseServiceTest extends AbstractArchivaRestTest { + private static final String TEST_REPO_ID = "test-repo"; Map toMap( List entries ) { @@ -64,31 +69,20 @@ public class BrowseServiceTest public void metadatagetthenadd() throws Exception { - - String testRepoId = "test-repo"; - // force guest user creation if not exists - if ( getUserService( authorizationHeader ).getGuestUser() == null ) - { - assertNotNull( getUserService( authorizationHeader ).createGuestUser() ); - } - - createAndIndexRepo( testRepoId, new File( getBasedir(), "src/test/repo-with-osgi" ).getAbsolutePath() ); + scanRepo( TEST_REPO_ID ); BrowseService browseService = getBrowseService( authorizationHeader, false ); Map metadatas = - toMap( browseService.getMetadatas( "commons-cli", "commons-cli", "1.0", testRepoId ) ); + toMap( browseService.getMetadatas( "commons-cli", "commons-cli", "1.0", TEST_REPO_ID ) ); assertThat( metadatas ).isNotNull().isEmpty(); - browseService.addMetadata( "commons-cli", "commons-cli", "1.0", "wine", "bordeaux", testRepoId ); + browseService.addMetadata( "commons-cli", "commons-cli", "1.0", "wine", "bordeaux", TEST_REPO_ID ); - metadatas = toMap( browseService.getMetadatas( "commons-cli", "commons-cli", "1.0", testRepoId ) ); + metadatas = toMap( browseService.getMetadatas( "commons-cli", "commons-cli", "1.0", TEST_REPO_ID ) ); assertThat( metadatas ).isNotNull().isNotEmpty().contains( MapEntry.entry( "wine", "bordeaux" ) ); - - deleteTestRepo( testRepoId ); - } @@ -96,89 +90,52 @@ public class BrowseServiceTest public void metadatagetthenaddthendelete() throws Exception { - - String testRepoId = "test-repo"; - // force guest user creation if not exists - if ( getUserService( authorizationHeader ).getGuestUser() == null ) - { - assertNotNull( getUserService( authorizationHeader ).createGuestUser() ); - } - - createAndIndexRepo( testRepoId, new File( getBasedir(), "src/test/repo-with-osgi" ).getAbsolutePath() ); + scanRepo( TEST_REPO_ID ); BrowseService browseService = getBrowseService( authorizationHeader, false ); Map metadatas = - toMap( browseService.getMetadatas( "commons-cli", "commons-cli", "1.0", testRepoId ) ); + toMap( browseService.getMetadatas( "commons-cli", "commons-cli", "1.0", TEST_REPO_ID ) ); assertThat( metadatas ).isNotNull().isEmpty(); - browseService.addMetadata( "commons-cli", "commons-cli", "1.0", "wine", "bordeaux", testRepoId ); + browseService.addMetadata( "commons-cli", "commons-cli", "1.0", "wine", "bordeaux", TEST_REPO_ID ); - metadatas = toMap( browseService.getMetadatas( "commons-cli", "commons-cli", "1.0", testRepoId ) ); + metadatas = toMap( browseService.getMetadatas( "commons-cli", "commons-cli", "1.0", TEST_REPO_ID ) ); assertThat( metadatas ).isNotNull().isNotEmpty().contains( MapEntry.entry( "wine", "bordeaux" ) ); - browseService.deleteMetadata( "commons-cli", "commons-cli", "1.0", "wine", testRepoId ); + browseService.deleteMetadata( "commons-cli", "commons-cli", "1.0", "wine", TEST_REPO_ID ); - metadatas = toMap( browseService.getMetadatas( "commons-cli", "commons-cli", "1.0", testRepoId ) ); + metadatas = toMap( browseService.getMetadatas( "commons-cli", "commons-cli", "1.0", TEST_REPO_ID ) ); assertThat( metadatas ).isNotNull().isEmpty(); - - 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, new File( getBasedir(), "src/test/repo-with-osgi" ).getAbsolutePath(), false ); - BrowseService browseService = getBrowseService( authorizationHeader, false ); - BrowseResult browseResult = browseService.getRootGroups( testRepoId ); + BrowseResult browseResult = browseService.getRootGroups( TEST_REPO_ID ); 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, new File( getBasedir(), "src/test/repo-with-osgi" ).getAbsolutePath(), false ); - BrowseService browseService = getBrowseService( authorizationHeader, false ); - BrowseResult browseResult = browseService.browseGroupId( "org.apache", testRepoId ); + BrowseResult browseResult = browseService.browseGroupId( "org.apache", TEST_REPO_ID ); 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 ); - } @@ -186,183 +143,96 @@ public class BrowseServiceTest public void browsegroupIdWithReleaseStartNumber() throws Exception { - - String testRepoId = "test-repo"; - // force guest user creation if not exists - if ( getUserService( authorizationHeader ).getGuestUser() == null ) - { - assertNotNull( getUserService( authorizationHeader ).createGuestUser() ); - } - - createAndIndexRepo( testRepoId, new File( getBasedir(), "src/test/repo-with-osgi" ).getAbsolutePath(), false ); - BrowseService browseService = getBrowseService( authorizationHeader, false ); - BrowseResult browseResult = browseService.browseGroupId( "commons-logging.commons-logging", testRepoId ); + BrowseResult browseResult = browseService.browseGroupId( "commons-logging.commons-logging", TEST_REPO_ID ); log.info( "browseResult: {}", browseResult ); - - 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, new File( getBasedir(), "src/test/repo-with-osgi" ).getAbsolutePath(), false ); - BrowseService browseService = getBrowseService( authorizationHeader, false ); VersionsList versions = - browseService.getVersionsList( "org.apache.karaf.features", "org.apache.karaf.features.core", testRepoId ); + browseService.getVersionsList( "org.apache.karaf.features", "org.apache.karaf.features.core", TEST_REPO_ID ); 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, new File( getBasedir(), "src/test/repo-with-osgi" ).getAbsolutePath(), false ); - BrowseService browseService = getBrowseService( authorizationHeader, true ); - ProjectVersionMetadata metadata = - browseService.getProjectVersionMetadata( "org.apache.karaf.features", "org.apache.karaf.features.core", - testRepoId ); + ProjectVersionMetadata metadata = browseService.getProjectVersionMetadata( "org.apache.karaf.features", + "org.apache.karaf.features.core", + TEST_REPO_ID ); assertThat( metadata ).isNotNull(); - - deleteTestRepo( testRepoId ); } @Test public void readArtifactContentEntries() throws Exception { - String testRepoId = "test-repo"; - // force guest user creation if not exists - if ( getUserService( authorizationHeader ).getGuestUser() == null ) - { - assertNotNull( getUserService( authorizationHeader ).createGuestUser() ); - } - - createAndIndexRepo( testRepoId, new File( getBasedir(), "src/test/repo-with-osgi" ).getAbsolutePath(), false ); - BrowseService browseService = getBrowseService( authorizationHeader, true ); List artifactContentEntries = browseService.getArtifactContentEntries( "commons-logging", "commons-logging", "1.1", null, null, null, - testRepoId ); + TEST_REPO_ID ); log.info( "artifactContentEntries: {}", artifactContentEntries ); - assertThat( artifactContentEntries ).isNotNull().isNotEmpty().hasSize( 2 ).contains( - new ArtifactContentEntry( "org", false, 0, testRepoId ), - new ArtifactContentEntry( "META-INF", false, 0, testRepoId ) ); - deleteTestRepo( testRepoId ); + assertThat( artifactContentEntries ).isNotNull().isNotEmpty().hasSize( 2 ).contains( new ArtifactContentEntry( + "org", false, 0, TEST_REPO_ID ), new ArtifactContentEntry( "META-INF", false, 0, TEST_REPO_ID ) ); } @Test public void readArtifactContentEntriesRootPath() throws Exception { - String testRepoId = "test-repo"; - // force guest user creation if not exists - if ( getUserService( authorizationHeader ).getGuestUser() == null ) - { - assertNotNull( getUserService( authorizationHeader ).createGuestUser() ); - } - - createAndIndexRepo( testRepoId, new File( getBasedir(), "src/test/repo-with-osgi" ).getAbsolutePath(), false ); - BrowseService browseService = getBrowseService( authorizationHeader, true ); List artifactContentEntries = browseService.getArtifactContentEntries( "commons-logging", "commons-logging", "1.1", null, null, "org/", - testRepoId ); + TEST_REPO_ID ); log.info( "artifactContentEntries: {}", artifactContentEntries ); assertThat( artifactContentEntries ).isNotNull().isNotEmpty().hasSize( 1 ).contains( - new ArtifactContentEntry( "org/apache", false, 1, testRepoId ) ); - deleteTestRepo( testRepoId ); + new ArtifactContentEntry( "org/apache", false, 1, TEST_REPO_ID ) ); } @Test public void readArtifactContentEntriesFilesAndDirectories() throws Exception { - String testRepoId = "test-repo"; - // force guest user creation if not exists - if ( getUserService( authorizationHeader ).getGuestUser() == null ) - { - assertNotNull( getUserService( authorizationHeader ).createGuestUser() ); - } - - createAndIndexRepo( testRepoId, new File( getBasedir(), "src/test/repo-with-osgi" ).getAbsolutePath(), false ); - BrowseService browseService = getBrowseService( authorizationHeader, true ); List artifactContentEntries = browseService.getArtifactContentEntries( "commons-logging", "commons-logging", "1.1", null, null, - "org/apache/commons/logging/", testRepoId ); + "org/apache/commons/logging/", TEST_REPO_ID ); log.info( "artifactContentEntries: {}", artifactContentEntries ); assertThat( artifactContentEntries ).isNotNull().isNotEmpty().hasSize( 10 ).contains( - new ArtifactContentEntry( "org/apache/commons/logging/impl", false, 4, testRepoId ), - new ArtifactContentEntry( "org/apache/commons/logging/LogSource.class", true, 4, testRepoId ) ); - deleteTestRepo( testRepoId ); + new ArtifactContentEntry( "org/apache/commons/logging/impl", false, 4, TEST_REPO_ID ), + new ArtifactContentEntry( "org/apache/commons/logging/LogSource.class", true, 4, TEST_REPO_ID ) ); } @Test public void getArtifactDownloadInfos() throws Exception { - try - { - String testRepoId = "test-repo"; - // force guest user creation if not exists - if ( getUserService( authorizationHeader ).getGuestUser() == null ) - { - assertNotNull( getUserService( authorizationHeader ).createGuestUser() ); - } - - createAndIndexRepo( testRepoId, new File( getBasedir(), "src/test/repo-with-osgi" ).getAbsolutePath(), - false ); - - BrowseService browseService = getBrowseService( authorizationHeader, true ); + BrowseService browseService = getBrowseService( authorizationHeader, true ); - List artifactDownloadInfos = - browseService.getArtifactDownloadInfos( "commons-logging", "commons-logging", "1.1", testRepoId ); + List artifactDownloadInfos = + browseService.getArtifactDownloadInfos( "commons-logging", "commons-logging", "1.1", TEST_REPO_ID ); - log.info( "artifactDownloadInfos {}", artifactDownloadInfos ); - assertThat( artifactDownloadInfos ).isNotNull().isNotEmpty().hasSize( 3 ); - deleteTestRepo( testRepoId ); - } - catch ( Exception e ) - { - log.error( e.getMessage(), e ); - throw e; - } + log.info( "artifactDownloadInfos {}", artifactDownloadInfos ); + assertThat( artifactDownloadInfos ).isNotNull().isNotEmpty().hasSize( 3 ); } @@ -370,35 +240,18 @@ public class BrowseServiceTest public void readArtifactContentText() throws Exception { - String testRepoId = "test-repo"; - // force guest user creation if not exists - if ( getUserService( authorizationHeader ).getGuestUser() == null ) - { - assertNotNull( getUserService( authorizationHeader ).createGuestUser() ); - } - - createAndIndexRepo( testRepoId, new File( getBasedir(), "src/test/repo-with-osgi" ).getAbsolutePath(), false ); - BrowseService browseService = getBrowseService( authorizationHeader, true ); WebClient.client( browseService ).accept( MediaType.TEXT_PLAIN ); - try - { - String text = - browseService.getArtifactContentText( "commons-logging", "commons-logging", "1.1", "sources", null, - "org/apache/commons/logging/LogSource.java", - testRepoId ).getContent(); + String text = + browseService.getArtifactContentText( "commons-logging", "commons-logging", "1.1", "sources", null, + "org/apache/commons/logging/LogSource.java", + TEST_REPO_ID ).getContent(); - log.debug( "text: {}", text ); + log.debug( "text: {}", text ); - assertThat( text ).contains( "package org.apache.commons.logging;" ).contains( "public class LogSource {" ); - } - catch ( Exception e ) - { - log.error( e.getMessage(), e ); - throw e; - } + assertThat( text ).contains( "package org.apache.commons.logging;" ).contains( "public class LogSource {" ); } @@ -406,36 +259,19 @@ public class BrowseServiceTest public void readArtifactContentTextPom() throws Exception { - String testRepoId = "test-repo"; - // force guest user creation if not exists - if ( getUserService( authorizationHeader ).getGuestUser() == null ) - { - assertNotNull( getUserService( authorizationHeader ).createGuestUser() ); - } - - createAndIndexRepo( testRepoId, new File( getBasedir(), "src/test/repo-with-osgi" ).getAbsolutePath(), false ); - BrowseService browseService = getBrowseService( authorizationHeader, true ); WebClient.client( browseService ).accept( MediaType.TEXT_PLAIN ); - try - { - String text = - browseService.getArtifactContentText( "commons-logging", "commons-logging", "1.1", null, "pom", null, - testRepoId ).getContent(); + String text = + browseService.getArtifactContentText( "commons-logging", "commons-logging", "1.1", null, "pom", null, + TEST_REPO_ID ).getContent(); - log.info( "text: {}", text ); + log.info( "text: {}", text ); - assertThat( text ).contains( - "http://jakarta.apache.org/commons/${pom.artifactId.substring(8)}/" ).contains( - "commons-dev-subscribe@jakarta.apache.org" ); - } - catch ( Exception e ) - { - log.error( e.getMessage(), e ); - throw e; - } + assertThat( text ).contains( + "http://jakarta.apache.org/commons/${pom.artifactId.substring(8)}/" ).contains( + "commons-dev-subscribe@jakarta.apache.org" ); } @@ -443,47 +279,22 @@ public class BrowseServiceTest public void artifactsNumber() throws Exception { - String testRepoId = "test-repo"; - // force guest user creation if not exists - if ( getUserService( authorizationHeader ).getGuestUser() == null ) - { - assertNotNull( getUserService( authorizationHeader ).createGuestUser() ); - } - - createAndIndexRepo( testRepoId, new File( getBasedir(), "src/test/repo-with-osgi" ).getAbsolutePath(), false ); - BrowseService browseService = getBrowseService( authorizationHeader, true ); //WebClient.client( browseService ).accept( MediaType.TEXT_PLAIN ); - try - { - int number = browseService.getArtifacts( testRepoId ).size(); + int number = browseService.getArtifacts( TEST_REPO_ID ).size(); - log.info( "getArtifactsNumber: {}", number ); + log.info( "getArtifactsNumber: {}", number ); - assertTrue( number > 1 ); - } - catch ( Exception e ) - { - log.error( e.getMessage(), e ); - throw e; - } + assertTrue( number > 1 ); } @Test public void metadatainbatchmode() throws Exception { - - String testRepoId = "test-repo"; - // force guest user creation if not exists - if ( getUserService( authorizationHeader ).getGuestUser() == null ) - { - assertNotNull( getUserService( authorizationHeader ).createGuestUser() ); - } - - createAndIndexRepo( testRepoId, new File( getBasedir(), "src/test/repo-with-osgi" ).getAbsolutePath() ); + scanRepo( TEST_REPO_ID ); BrowseService browseService = getBrowseService( authorizationHeader, false ); @@ -497,15 +308,35 @@ public class BrowseServiceTest metadataAddRequest.setArtifactId( "commons-cli" ); metadataAddRequest.setVersion( "1.0" ); metadataAddRequest.setMetadatas( inputMetadata ); - browseService.importMetadata( metadataAddRequest, testRepoId ); + browseService.importMetadata( metadataAddRequest, TEST_REPO_ID ); Map metadatas = - toMap( browseService.getMetadatas( "commons-cli", "commons-cli", "1.0", testRepoId ) ); + toMap( browseService.getMetadatas( "commons-cli", "commons-cli", "1.0", TEST_REPO_ID ) ); assertThat( metadatas ).isNotNull().isNotEmpty().contains( MapEntry.entry( "buildNumber", "1" ) ).contains( MapEntry.entry( "author", "alecharp" ) ).contains( MapEntry.entry( "jenkins_version", "1.486" ) ); + } + + @Before + public void initialiseTestRepo() + throws RedbackServiceException, ArchivaRestServiceException, IOException, InterruptedException + { + // force guest user creation if not exists + if ( getUserService( authorizationHeader ).getGuestUser() == null ) + { + assertNotNull( getUserService( authorizationHeader ).createGuestUser() ); + } - deleteTestRepo( testRepoId ); + createAndIndexRepo( TEST_REPO_ID, new File( getBasedir(), "src/test/repo-with-osgi" ).getAbsolutePath(), + false ); + + waitForScanToComplete( TEST_REPO_ID ); } + @After + public void deleteTestRepo() + throws Exception + { + deleteTestRepo( TEST_REPO_ID ); + } } diff --git a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/MergeRepositoriesServiceTest.java b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/MergeRepositoriesServiceTest.java index 5f866a4e7..7ec1ede96 100644 --- a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/MergeRepositoriesServiceTest.java +++ b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/MergeRepositoriesServiceTest.java @@ -36,98 +36,66 @@ public class MergeRepositoriesServiceTest extends AbstractArchivaRestTest { + private static final String TEST_REPOSITORY = "test-repository"; + private File repo = new File( System.getProperty( "builddir" ), "test-repository" ); private File repoStage = new File( System.getProperty( "builddir" ), "test-repository-stage" ); - @Override - @Before - public void startServer() + @Test + public void getMergeConflictedArtifacts() throws Exception { + MergeRepositoriesService service = getMergeRepositoriesService( authorizationHeader ); - FileUtils.copyDirectory( new File( System.getProperty( "basedir" ), "src/test/repo-with-osgi" ), repo ); - FileUtils.copyDirectory( new File( System.getProperty( "basedir" ), "src/test/repo-with-osgi-stage" ), - repoStage ); - super.startServer(); + List artifactMetadatas = service.getMergeConflictedArtifacts( TEST_REPOSITORY + "-stage", + TEST_REPOSITORY ); - } + log.info( "conflicts: {}", artifactMetadatas ); - @Override - @After - public void stopServer() - throws Exception - { - // TODO delete repositories - super.stopServer(); - FileUtils.deleteDirectory( repo ); - FileUtils.deleteDirectory( repoStage ); + assertThat( artifactMetadatas ).isNotNull().isNotEmpty().hasSize( 8 ); } @Test - public void getMergeConflictedArtifacts() + public void merge() throws Exception { - String testRepoId = "test-repository"; - try - { + String mergedArtifactPath = + "org/apache/felix/org.apache.felix.bundlerepository/1.6.4/org.apache.felix.bundlerepository-1.6.4.jar"; + String mergedArtifactPomPath = + "org/apache/felix/org.apache.felix.bundlerepository/1.6.4/org.apache.felix.bundlerepository-1.6.4.pom"; - createStagedNeededRepo( testRepoId, repo.getAbsolutePath(), true ); + assertTrue( new File( repoStage, mergedArtifactPath ).exists() ); + assertTrue( new File( repoStage, mergedArtifactPomPath ).exists() ); - MergeRepositoriesService service = getMergeRepositoriesService( authorizationHeader ); + MergeRepositoriesService service = getMergeRepositoriesService( authorizationHeader ); - List artifactMetadatas = service.getMergeConflictedArtifacts( testRepoId + "-stage", testRepoId ); + service.mergeRepositories( TEST_REPOSITORY + "-stage", TEST_REPOSITORY, true ); - log.info( "conflicts: {}", artifactMetadatas ); + assertTrue( new File( repo, mergedArtifactPath ).exists() ); + assertTrue( new File( repo, mergedArtifactPomPath ).exists() ); + } - assertThat( artifactMetadatas ).isNotNull().isNotEmpty().hasSize( 8 ); + @After + public void deleteStageRepo() + throws Exception + { + waitForScanToComplete( TEST_REPOSITORY ); + deleteTestRepo( TEST_REPOSITORY ); - } - catch ( Exception e ) - { - log.error( e.getMessage(), e ); - throw e; - } - finally - { - deleteTestRepo( testRepoId ); - } + FileUtils.deleteDirectory( repo ); + FileUtils.deleteDirectory( repoStage ); } - @Test - public void merge() + @Before + public void createStageRepo() throws Exception { - String testRepoId = "test-repository"; - try - { - createStagedNeededRepo( testRepoId, repo.getAbsolutePath(), true ); - - String mergedArtifactPath = - "org/apache/felix/org.apache.felix.bundlerepository/1.6.4/org.apache.felix.bundlerepository-1.6.4.jar"; - String mergedArtifactPomPath = - "org/apache/felix/org.apache.felix.bundlerepository/1.6.4/org.apache.felix.bundlerepository-1.6.4.pom"; - - assertTrue( new File( repoStage, mergedArtifactPath ).exists() ); - assertTrue( new File( repoStage, mergedArtifactPomPath ).exists() ); - - MergeRepositoriesService service = getMergeRepositoriesService( authorizationHeader ); - - service.mergeRepositories( testRepoId + "-stage", testRepoId, true ); - - assertTrue( new File( repo, mergedArtifactPath ).exists() ); - assertTrue( new File( repo, mergedArtifactPomPath ).exists() ); - - } - catch ( Exception e ) - { - log.error( e.getMessage(), e ); - throw e; - } - finally - { - deleteTestRepo( testRepoId ); - } + FileUtils.copyDirectory( new File( System.getProperty( "basedir" ), "src/test/repo-with-osgi" ), repo ); + FileUtils.copyDirectory( new File( System.getProperty( "basedir" ), "src/test/repo-with-osgi-stage" ), + repoStage ); + + createStagedNeededRepo( TEST_REPOSITORY, repo.getAbsolutePath(), true ); } } diff --git a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/SearchServiceTest.java b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/SearchServiceTest.java index a073b2430..d9e751b7f 100644 --- a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/SearchServiceTest.java +++ b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/SearchServiceTest.java @@ -23,6 +23,8 @@ import org.apache.archiva.maven2.model.Artifact; import org.apache.archiva.rest.api.model.SearchRequest; import org.apache.archiva.rest.api.services.SearchService; import org.assertj.core.api.Assertions; +import org.junit.After; +import org.junit.Before; import org.junit.Test; import java.util.Arrays; @@ -37,22 +39,12 @@ import static org.assertj.core.api.Assertions.assertThat; public class SearchServiceTest extends AbstractArchivaRestTest { - + private static final String TEST_REPO = "test-repo"; @Test public void quickSearchOnArtifactId() 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" ); - SearchService searchService = getSearchService( authorizationHeader ); // START SNIPPET: quick-search @@ -65,8 +57,6 @@ public class SearchServiceTest assertTrue( " not 6 results for commons-logging search but " + artifacts.size() + ":" + artifacts, artifacts.size() == 6 ); log.info( "artifacts for commons-logging size {} search {}", artifacts.size(), artifacts ); - - deleteTestRepo( testRepoId ); } /** @@ -78,16 +68,6 @@ public class SearchServiceTest public void quickSearchOnArtifactIdGuest() 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" ); - SearchService searchService = getSearchService( null ); // START SNIPPET: quick-search @@ -100,24 +80,12 @@ public class SearchServiceTest assertTrue( " not 6 results for commons-logging search but " + artifacts.size() + ":" + artifacts, artifacts.size() == 6 ); log.info( "artifacts for commons-logging size {} search {}", artifacts.size(), artifacts ); - - deleteTestRepo( testRepoId ); } @Test public void searchArtifactVersions() 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" ); - // START SNIPPET: searchservice-artifact-versions SearchService searchService = getSearchService( authorizationHeader ); @@ -138,24 +106,12 @@ public class SearchServiceTest } - - deleteTestRepo( testRepoId ); } @Test public void searchWithSearchRequestGroupIdAndArtifactIdAndClassifier() 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" ); - SearchService searchService = getSearchService( authorizationHeader ); // START SNIPPET: searchservice-with-classifier @@ -171,24 +127,12 @@ public class SearchServiceTest assertTrue( " not 2 results for commons-logging search but " + artifacts.size() + ":" + artifacts, artifacts.size() == 2 ); log.info( "artifacts for commons-logging size {} search {}", artifacts.size(), artifacts ); - - deleteTestRepo( testRepoId ); } @Test public void searchWithSearchRequestBundleSymbolicNameOneVersion() 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" ); - SearchService searchService = getSearchService( authorizationHeader ); // START SNIPPET: searchservice-with-osgi @@ -203,25 +147,15 @@ public class SearchServiceTest " not 1 results for Bundle Symbolic Name org.apache.karaf.features.command but " + artifacts.size() + ":" + artifacts, artifacts.size() == 1 ); - - deleteTestRepo( testRepoId ); } @Test public void searchWithSearchRequestBundleSymbolicNameTwoVersion() throws Exception { - - String testRepoId = "test-repo"; - // force guest user creation if not exists - if ( getUserService( authorizationHeader ).getGuestUser() == null ) - { - assertNotNull( getUserService( authorizationHeader ).createGuestUser() ); - } UiConfiguration uiConfiguration = new UiConfiguration(); uiConfiguration.setApplicationUrl( null ); getArchivaAdministrationService().setUiConfiguration( uiConfiguration ); - createAndIndexRepo( testRepoId, "src/test/repo-with-osgi" ); SearchService searchService = getSearchService( authorizationHeader ); @@ -243,29 +177,17 @@ public class SearchServiceTest } - - deleteTestRepo( testRepoId ); } @Test public void searchWithSearchRequestExportPackageOneVersion() throws Exception { - - String testRepoId = "test-repo"; - // force guest user creation if not exists - if ( getUserService( authorizationHeader ).getGuestUser() == null ) - { - assertNotNull( getUserService( authorizationHeader ).createGuestUser() ); - } - - createAndIndexRepo( testRepoId, getBasedir() + "/src/test/repo-with-osgi" ); - SearchService searchService = getSearchService( authorizationHeader ); SearchRequest searchRequest = new SearchRequest(); searchRequest.setBundleExportPackage( "org.apache.karaf.features.command.completers" ); - searchRequest.setRepositories( Arrays.asList( testRepoId ) ); + searchRequest.setRepositories( Arrays.asList( TEST_REPO ) ); List artifacts = searchService.searchArtifacts( searchRequest ); @@ -274,7 +196,6 @@ public class SearchServiceTest + artifacts.size() + ":" + artifacts, artifacts.size() == 1 ); log.info( "artifact url {}", artifacts.get( 0 ).getUrl() ); - deleteTestRepo( testRepoId ); } @Test @@ -284,16 +205,6 @@ public class SearchServiceTest public void searchWithSearchUnknwownRepoId() 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" ); - SearchService searchService = getSearchService( authorizationHeader ); SearchRequest searchRequest = new SearchRequest(); @@ -303,10 +214,8 @@ public class SearchServiceTest List artifacts = searchService.searchArtifacts( searchRequest ); assertNotNull( artifacts ); - assertTrue( " not 0 results for Bundle ExportPackage org.apache.karaf.features.command.completers but " - + artifacts.size() + ":" + artifacts, artifacts.size() == 0 ); - - deleteTestRepo( testRepoId ); + assertTrue( " not 0 results for Bundle ExportPackage org.apache.karaf.features.command.completers but " + + artifacts.size() + ":" + artifacts, artifacts.size() == 0 ); } @Test @@ -316,16 +225,6 @@ public class SearchServiceTest public void searchWithSearchNoRepos() 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" ); - SearchService searchService = getSearchService( authorizationHeader ); SearchRequest searchRequest = new SearchRequest(); @@ -338,31 +237,19 @@ public class SearchServiceTest + artifacts.size() + ":" + artifacts, artifacts.size() == 1 ); log.info( "artifact url {}", artifacts.get( 0 ).getUrl() ); - deleteTestRepo( testRepoId ); } @Test public void getAllGroupIds() 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" ); - SearchService searchService = getSearchService( authorizationHeader ); - Collection groupIds = searchService.getAllGroupIds( Arrays.asList( testRepoId ) ).getGroupIds(); + Collection groupIds = searchService.getAllGroupIds( Arrays.asList( TEST_REPO ) ).getGroupIds(); log.info( "groupIds {}", groupIds ); assertFalse( groupIds.isEmpty() ); assertTrue( groupIds.contains( "commons-cli" ) ); assertTrue( groupIds.contains( "org.apache.felix" ) ); - deleteTestRepo( testRepoId ); } @Test @@ -372,25 +259,44 @@ public class SearchServiceTest public void getSearchArtifactsWithOnlyClassifier() 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-classifier-only" ); + createAndIndexRepo( TEST_REPO, "src/test/repo-with-classifier-only" ); SearchService searchService = getSearchService( authorizationHeader ); SearchRequest searchRequest = - new SearchRequest( "org.foo", "studio-all-update-site", null, null, null, Arrays.asList( "test-repo" ) ); + new SearchRequest( "org.foo", "studio-all-update-site", null, null, null, Arrays.asList( TEST_REPO ) ); List artifacts = searchService.searchArtifacts( searchRequest ); log.info( "artifacts: {}", artifacts ); assertEquals( 1, artifacts.size() ); - deleteTestRepo( testRepoId ); + } + + @Before + public void createRepo() + throws Exception + { + // force guest user creation if not exists + if ( getUserService( authorizationHeader ).getGuestUser() == null ) + { + assertNotNull( getUserService( authorizationHeader ).createGuestUser() ); + } + + createAndIndexRepo( TEST_REPO, "src/test/repo-with-osgi" ); + + waitForScanToComplete( TEST_REPO ); + } + + @After + public void deleteRepo() + throws Exception + { + deleteTestRepo( TEST_REPO ); } }