mirror of https://github.com/apache/archiva.git
extract common test methods,add unit test for staged repo
git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1163509 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
005b157da7
commit
d12d5d853a
|
@ -21,6 +21,7 @@ package org.apache.archiva.admin.repository.managed;
|
||||||
import org.apache.archiva.admin.AuditInformation;
|
import org.apache.archiva.admin.AuditInformation;
|
||||||
import org.apache.archiva.admin.mock.MockAuditListener;
|
import org.apache.archiva.admin.mock.MockAuditListener;
|
||||||
import org.apache.archiva.audit.AuditEvent;
|
import org.apache.archiva.audit.AuditEvent;
|
||||||
|
import org.apache.commons.io.FileUtils;
|
||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
import org.apache.maven.archiva.security.ArchivaRoleConstants;
|
import org.apache.maven.archiva.security.ArchivaRoleConstants;
|
||||||
import org.codehaus.plexus.redback.role.RoleManager;
|
import org.codehaus.plexus.redback.role.RoleManager;
|
||||||
|
@ -81,46 +82,47 @@ public class ManagedRepositoryAdminTest
|
||||||
throws Exception
|
throws Exception
|
||||||
{
|
{
|
||||||
mockAuditListener.clearEvents();
|
mockAuditListener.clearEvents();
|
||||||
|
|
||||||
|
String repoId = "test-new-one";
|
||||||
|
|
||||||
|
String repoLocation = APPSERVER_BASE_PATH + File.separator + repoId;
|
||||||
|
|
||||||
|
File repoDir = clearRepoLocation( repoLocation );
|
||||||
|
|
||||||
List<ManagedRepository> repos = managedRepositoryAdmin.getManagedRepositories();
|
List<ManagedRepository> repos = managedRepositoryAdmin.getManagedRepositories();
|
||||||
assertNotNull( repos );
|
assertNotNull( repos );
|
||||||
int initialSize = repos.size();
|
int initialSize = repos.size();
|
||||||
assertTrue( initialSize > 0 );
|
assertTrue( initialSize > 0 );
|
||||||
|
|
||||||
ManagedRepository repo = new ManagedRepository();
|
ManagedRepository repo = new ManagedRepository();
|
||||||
repo.setId( "test-new-one" );
|
repo.setId( repoId );
|
||||||
repo.setName( "test repo" );
|
repo.setName( "test repo" );
|
||||||
repo.setLocation( APPSERVER_BASE_PATH + repo.getId() );
|
repo.setLocation( repoLocation );
|
||||||
managedRepositoryAdmin.addManagedRepository( repo, false, getFakeAuditInformation() );
|
managedRepositoryAdmin.addManagedRepository( repo, false, getFakeAuditInformation() );
|
||||||
repos = managedRepositoryAdmin.getManagedRepositories();
|
repos = managedRepositoryAdmin.getManagedRepositories();
|
||||||
assertNotNull( repos );
|
assertNotNull( repos );
|
||||||
assertEquals( initialSize + 1, repos.size() );
|
assertEquals( initialSize + 1, repos.size() );
|
||||||
|
|
||||||
assertNotNull( managedRepositoryAdmin.getManagedRepository( "test-new-one" ) );
|
assertNotNull( managedRepositoryAdmin.getManagedRepository( repoId ) );
|
||||||
|
|
||||||
assertTrue(
|
assertTemplateRoleExists( repoId );
|
||||||
roleManager.templatedRoleExists( ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER, "test-new-one" ) );
|
|
||||||
assertTrue(
|
|
||||||
roleManager.templatedRoleExists( ArchivaRoleConstants.TEMPLATE_REPOSITORY_MANAGER, "test-new-one" ) );
|
|
||||||
|
|
||||||
managedRepositoryAdmin.deleteManagedRepository( "test-new-one", getFakeAuditInformation(), false );
|
managedRepositoryAdmin.deleteManagedRepository( repoId, getFakeAuditInformation(), false );
|
||||||
|
|
||||||
|
|
||||||
|
// deleteContents false
|
||||||
|
assertTrue( repoDir.exists() );
|
||||||
|
|
||||||
repos = managedRepositoryAdmin.getManagedRepositories();
|
repos = managedRepositoryAdmin.getManagedRepositories();
|
||||||
assertNotNull( repos );
|
assertNotNull( repos );
|
||||||
assertEquals( initialSize, repos.size() );
|
assertEquals( initialSize, repos.size() );
|
||||||
|
|
||||||
assertFalse(
|
assertTemplateRoleNotExists( repoId );
|
||||||
roleManager.templatedRoleExists( ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER, "test-new-one" ) );
|
|
||||||
assertFalse(
|
|
||||||
roleManager.templatedRoleExists( ArchivaRoleConstants.TEMPLATE_REPOSITORY_MANAGER, "test-new-one" ) );
|
|
||||||
|
|
||||||
assertEquals( 2, mockAuditListener.getAuditEvents().size() );
|
assertEquals( 2, mockAuditListener.getAuditEvents().size() );
|
||||||
|
|
||||||
assertEquals( AuditEvent.ADD_MANAGED_REPO, mockAuditListener.getAuditEvents().get( 0 ).getAction() );
|
assertAuditListenerCallAddAndDelete();
|
||||||
assertEquals( "root", mockAuditListener.getAuditEvents().get( 0 ).getUserId() );
|
|
||||||
assertEquals( "archiva-localhost", mockAuditListener.getAuditEvents().get( 0 ).getRemoteIP() );
|
|
||||||
|
|
||||||
assertEquals( AuditEvent.DELETE_MANAGED_REPO, mockAuditListener.getAuditEvents().get( 1 ).getAction() );
|
|
||||||
assertEquals( "root", mockAuditListener.getAuditEvents().get( 0 ).getUserId() );
|
|
||||||
mockAuditListener.clearEvents();
|
mockAuditListener.clearEvents();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -128,6 +130,12 @@ public class ManagedRepositoryAdminTest
|
||||||
public void updateDeleteManagedRepo()
|
public void updateDeleteManagedRepo()
|
||||||
throws Exception
|
throws Exception
|
||||||
{
|
{
|
||||||
|
String repoId = "test-new-one";
|
||||||
|
|
||||||
|
String repoLocation = APPSERVER_BASE_PATH + File.separator + "new-path";
|
||||||
|
|
||||||
|
File repoDir = clearRepoLocation( repoLocation );
|
||||||
|
|
||||||
mockAuditListener.clearEvents();
|
mockAuditListener.clearEvents();
|
||||||
List<ManagedRepository> repos = managedRepositoryAdmin.getManagedRepositories();
|
List<ManagedRepository> repos = managedRepositoryAdmin.getManagedRepositories();
|
||||||
assertNotNull( repos );
|
assertNotNull( repos );
|
||||||
|
@ -135,15 +143,12 @@ public class ManagedRepositoryAdminTest
|
||||||
assertTrue( initialSize > 0 );
|
assertTrue( initialSize > 0 );
|
||||||
|
|
||||||
ManagedRepository repo = new ManagedRepository();
|
ManagedRepository repo = new ManagedRepository();
|
||||||
repo.setId( "test-new-one" );
|
repo.setId( repoId );
|
||||||
repo.setName( "test repo" );
|
repo.setName( "test repo" );
|
||||||
repo.setLocation( APPSERVER_BASE_PATH + repo.getId() );
|
repo.setLocation( repoLocation );
|
||||||
managedRepositoryAdmin.addManagedRepository( repo, false, getFakeAuditInformation() );
|
managedRepositoryAdmin.addManagedRepository( repo, false, getFakeAuditInformation() );
|
||||||
|
|
||||||
assertTrue(
|
assertTemplateRoleExists( repoId );
|
||||||
roleManager.templatedRoleExists( ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER, "test-new-one" ) );
|
|
||||||
assertTrue(
|
|
||||||
roleManager.templatedRoleExists( ArchivaRoleConstants.TEMPLATE_REPOSITORY_MANAGER, "test-new-one" ) );
|
|
||||||
|
|
||||||
repos = managedRepositoryAdmin.getManagedRepositories();
|
repos = managedRepositoryAdmin.getManagedRepositories();
|
||||||
assertNotNull( repos );
|
assertNotNull( repos );
|
||||||
|
@ -153,28 +158,24 @@ public class ManagedRepositoryAdminTest
|
||||||
|
|
||||||
repo.setName( newName );
|
repo.setName( newName );
|
||||||
|
|
||||||
repo.setLocation( APPSERVER_BASE_PATH + "/new-path" );
|
repo.setLocation( repoLocation );
|
||||||
|
|
||||||
managedRepositoryAdmin.updateManagedRepository( repo, false, getFakeAuditInformation() );
|
managedRepositoryAdmin.updateManagedRepository( repo, false, getFakeAuditInformation() );
|
||||||
|
|
||||||
repo = managedRepositoryAdmin.getManagedRepository( "test-new-one" );
|
repo = managedRepositoryAdmin.getManagedRepository( repoId );
|
||||||
assertNotNull( repo );
|
assertNotNull( repo );
|
||||||
assertEquals( newName, repo.getName() );
|
assertEquals( newName, repo.getName() );
|
||||||
assertEquals( new File( APPSERVER_BASE_PATH + "/new-path" ).getCanonicalPath(),
|
assertEquals( new File( repoLocation ).getCanonicalPath(), new File( repo.getLocation() ).getCanonicalPath() );
|
||||||
new File( repo.getLocation() ).getCanonicalPath() );
|
assertTrue( new File( repoLocation ).exists() );
|
||||||
assertTrue( new File( APPSERVER_BASE_PATH + "/new-path" ).exists() );
|
|
||||||
|
|
||||||
assertTrue(
|
assertTemplateRoleExists( repoId );
|
||||||
roleManager.templatedRoleExists( ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER, "test-new-one" ) );
|
|
||||||
assertTrue(
|
|
||||||
roleManager.templatedRoleExists( ArchivaRoleConstants.TEMPLATE_REPOSITORY_MANAGER, "test-new-one" ) );
|
|
||||||
|
|
||||||
managedRepositoryAdmin.deleteManagedRepository( repo.getId(), getFakeAuditInformation(), false );
|
managedRepositoryAdmin.deleteManagedRepository( repo.getId(), getFakeAuditInformation(), false );
|
||||||
|
|
||||||
assertFalse(
|
// check deleteContents false
|
||||||
roleManager.templatedRoleExists( ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER, "test-new-one" ) );
|
assertTrue( repoDir.exists() );
|
||||||
assertFalse(
|
|
||||||
roleManager.templatedRoleExists( ArchivaRoleConstants.TEMPLATE_REPOSITORY_MANAGER, "test-new-one" ) );
|
assertTemplateRoleNotExists( repoId );
|
||||||
|
|
||||||
assertEquals( "not 3 audit events " + mockAuditListener.getAuditEvents(), 3,
|
assertEquals( "not 3 audit events " + mockAuditListener.getAuditEvents(), 3,
|
||||||
mockAuditListener.getAuditEvents().size() );
|
mockAuditListener.getAuditEvents().size() );
|
||||||
|
@ -191,6 +192,90 @@ public class ManagedRepositoryAdminTest
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void addDeleteManagedRepoWithStaged()
|
||||||
|
throws Exception
|
||||||
|
{
|
||||||
|
|
||||||
|
String repoId = "test-new-one";
|
||||||
|
String repoLocation = APPSERVER_BASE_PATH + File.separator + repoId;
|
||||||
|
|
||||||
|
File repoDir = clearRepoLocation( repoLocation );
|
||||||
|
|
||||||
|
mockAuditListener.clearEvents();
|
||||||
|
List<ManagedRepository> repos = managedRepositoryAdmin.getManagedRepositories();
|
||||||
|
assertNotNull( repos );
|
||||||
|
int initialSize = repos.size();
|
||||||
|
assertTrue( initialSize > 0 );
|
||||||
|
|
||||||
|
ManagedRepository repo = new ManagedRepository();
|
||||||
|
repo.setId( repoId );
|
||||||
|
repo.setName( "test repo" );
|
||||||
|
repo.setLocation( repoLocation );
|
||||||
|
managedRepositoryAdmin.addManagedRepository( repo, true, getFakeAuditInformation() );
|
||||||
|
repos = managedRepositoryAdmin.getManagedRepositories();
|
||||||
|
assertNotNull( repos );
|
||||||
|
assertEquals( initialSize + 2, repos.size() );
|
||||||
|
|
||||||
|
assertNotNull( managedRepositoryAdmin.getManagedRepository( repoId ) );
|
||||||
|
|
||||||
|
assertTemplateRoleExists( repoId );
|
||||||
|
|
||||||
|
managedRepositoryAdmin.deleteManagedRepository( repoId, getFakeAuditInformation(), true );
|
||||||
|
|
||||||
|
assertFalse( repoDir.exists() );
|
||||||
|
|
||||||
|
repos = managedRepositoryAdmin.getManagedRepositories();
|
||||||
|
assertNotNull( repos );
|
||||||
|
assertEquals( initialSize, repos.size() );
|
||||||
|
|
||||||
|
assertTemplateRoleNotExists( repoId );
|
||||||
|
|
||||||
|
mockAuditListener.clearEvents();
|
||||||
|
}
|
||||||
|
|
||||||
|
//----------------------------------
|
||||||
|
// utility methods
|
||||||
|
//----------------------------------
|
||||||
|
|
||||||
|
private void assertTemplateRoleExists( String repoId )
|
||||||
|
throws Exception
|
||||||
|
{
|
||||||
|
assertTrue( roleManager.templatedRoleExists( ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER, repoId ) );
|
||||||
|
assertTrue( roleManager.templatedRoleExists( ArchivaRoleConstants.TEMPLATE_REPOSITORY_MANAGER, repoId ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void assertTemplateRoleNotExists( String repoId )
|
||||||
|
throws Exception
|
||||||
|
{
|
||||||
|
assertFalse( roleManager.templatedRoleExists( ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER, repoId ) );
|
||||||
|
assertFalse( roleManager.templatedRoleExists( ArchivaRoleConstants.TEMPLATE_REPOSITORY_MANAGER, repoId ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
private void assertAuditListenerCallAddAndDelete()
|
||||||
|
{
|
||||||
|
assertEquals( 2, mockAuditListener.getAuditEvents().size() );
|
||||||
|
|
||||||
|
assertEquals( AuditEvent.ADD_MANAGED_REPO, mockAuditListener.getAuditEvents().get( 0 ).getAction() );
|
||||||
|
assertEquals( "root", mockAuditListener.getAuditEvents().get( 0 ).getUserId() );
|
||||||
|
assertEquals( "archiva-localhost", mockAuditListener.getAuditEvents().get( 0 ).getRemoteIP() );
|
||||||
|
|
||||||
|
assertEquals( AuditEvent.DELETE_MANAGED_REPO, mockAuditListener.getAuditEvents().get( 1 ).getAction() );
|
||||||
|
assertEquals( "root", mockAuditListener.getAuditEvents().get( 0 ).getUserId() );
|
||||||
|
}
|
||||||
|
|
||||||
|
private File clearRepoLocation(String path) throws Exception
|
||||||
|
{
|
||||||
|
File repoDir = new File( path );
|
||||||
|
if ( repoDir.exists() )
|
||||||
|
{
|
||||||
|
FileUtils.deleteDirectory( repoDir );
|
||||||
|
}
|
||||||
|
assertFalse( repoDir.exists() );
|
||||||
|
return repoDir;
|
||||||
|
}
|
||||||
|
|
||||||
private ManagedRepository findManagedRepoById( List<ManagedRepository> repos, String id )
|
private ManagedRepository findManagedRepoById( List<ManagedRepository> repos, String id )
|
||||||
{
|
{
|
||||||
for ( ManagedRepository repo : repos )
|
for ( ManagedRepository repo : repos )
|
||||||
|
|
Loading…
Reference in New Issue