blob: 3057d1b2ef8809c0d69a9ebc8d9d9befe0d8eaaa [file] [log] [blame]
package org.apache.archiva.admin.repository.group;
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
import org.apache.archiva.admin.model.beans.ManagedRepository;
import org.apache.archiva.admin.model.beans.RepositoryGroup;
import org.apache.archiva.admin.model.group.RepositoryGroupAdmin;
import org.apache.archiva.admin.repository.AbstractRepositoryAdminTest;
import org.apache.archiva.audit.AuditEvent;
import org.junit.Test;
import javax.inject.Inject;
import java.io.File;
import java.util.Arrays;
/**
* @author Olivier Lamy
*/
public class RepositoryGroupAdminTest
extends AbstractRepositoryAdminTest
{
@Inject
RepositoryGroupAdmin repositoryGroupAdmin;
@Test
public void addAndDeleteGroup()
throws Exception
{
try
{
ManagedRepository managedRepositoryOne =
getTestManagedRepository( "test-new-one", APPSERVER_BASE_PATH + File.separator + "test-new-one" );
ManagedRepository managedRepositoryTwo =
getTestManagedRepository( "test-new-two", APPSERVER_BASE_PATH + File.separator + "test-new-two" );
managedRepositoryAdmin.addManagedRepository( managedRepositoryOne, getFakeAuditInformation() );
managedRepositoryAdmin.addManagedRepository( managedRepositoryTwo, getFakeAuditInformation() );
RepositoryGroup repositoryGroup =
new RepositoryGroup( "repo-group-one", Arrays.asList( "test-new-one", "test-new-two" ) );
mockAuditListener.clearEvents();
repositoryGroupAdmin.addRepositoryGroup( repositoryGroup, getFakeAuditInformation() );
assertEquals( 1, repositoryGroupAdmin.getRepositoriesGroups().size() );
assertEquals( "repo-group-one", repositoryGroupAdmin.getRepositoriesGroups().get( 0 ).getId() );
assertEquals( 2, repositoryGroupAdmin.getRepositoriesGroups().get( 0 ).getRepositories().size() );
assertEquals( Arrays.asList( "test-new-one", "test-new-two" ),
repositoryGroupAdmin.getRepositoriesGroups().get( 0 ).getRepositories() );
repositoryGroupAdmin.deleteRepositoryGroup( "repo-group-one", getFakeAuditInformation() );
assertEquals( 0, repositoryGroupAdmin.getRepositoriesGroups().size() );
assertEquals( 2, mockAuditListener.getAuditEvents().size() );
assertEquals( AuditEvent.ADD_REPO_GROUP, mockAuditListener.getAuditEvents().get( 0 ).getAction() );
assertEquals( AuditEvent.DELETE_REPO_GROUP, mockAuditListener.getAuditEvents().get( 1 ).getAction() );
}
finally
{
mockAuditListener.clearEvents();
managedRepositoryAdmin.deleteManagedRepository( "test-new-one", getFakeAuditInformation(), true );
managedRepositoryAdmin.deleteManagedRepository( "test-new-two", getFakeAuditInformation(), true );
}
}
@Test
public void addAndUpdateAndDeleteGroup()
throws Exception
{
try
{
ManagedRepository managedRepositoryOne =
getTestManagedRepository( "test-new-one", APPSERVER_BASE_PATH + File.separator + "test-new-one" );
ManagedRepository managedRepositoryTwo =
getTestManagedRepository( "test-new-two", APPSERVER_BASE_PATH + File.separator + "test-new-two" );
managedRepositoryAdmin.addManagedRepository( managedRepositoryOne, getFakeAuditInformation() );
managedRepositoryAdmin.addManagedRepository( managedRepositoryTwo, getFakeAuditInformation() );
RepositoryGroup repositoryGroup = new RepositoryGroup( "repo-group-one", Arrays.asList( "test-new-one" ) );
mockAuditListener.clearEvents();
repositoryGroupAdmin.addRepositoryGroup( repositoryGroup, getFakeAuditInformation() );
assertEquals( 1, repositoryGroupAdmin.getRepositoriesGroups().size() );
assertEquals( "repo-group-one", repositoryGroupAdmin.getRepositoriesGroups().get( 0 ).getId() );
assertEquals( 1, repositoryGroupAdmin.getRepositoriesGroups().get( 0 ).getRepositories().size() );
assertEquals( Arrays.asList( "test-new-one" ),
repositoryGroupAdmin.getRepositoriesGroups().get( 0 ).getRepositories() );
repositoryGroup = repositoryGroupAdmin.getRepositoryGroup( "repo-group-one" );
assertNotNull( repositoryGroup );
repositoryGroup.addRepository( managedRepositoryTwo.getId() );
repositoryGroupAdmin.updateRepositoryGroup( repositoryGroup, getFakeAuditInformation() );
assertEquals( 1, repositoryGroupAdmin.getRepositoriesGroups().size() );
assertEquals( "repo-group-one", repositoryGroupAdmin.getRepositoriesGroups().get( 0 ).getId() );
assertEquals( 2, repositoryGroupAdmin.getRepositoriesGroups().get( 0 ).getRepositories().size() );
assertEquals( Arrays.asList( "test-new-one", "test-new-two" ),
repositoryGroupAdmin.getRepositoriesGroups().get( 0 ).getRepositories() );
repositoryGroupAdmin.deleteRepositoryGroup( "repo-group-one", getFakeAuditInformation() );
assertEquals( 0, repositoryGroupAdmin.getRepositoriesGroups().size() );
assertEquals( 3, mockAuditListener.getAuditEvents().size() );
assertEquals( AuditEvent.ADD_REPO_GROUP, mockAuditListener.getAuditEvents().get( 0 ).getAction() );
assertEquals( AuditEvent.MODIFY_REPO_GROUP, mockAuditListener.getAuditEvents().get( 1 ).getAction() );
assertEquals( AuditEvent.DELETE_REPO_GROUP, mockAuditListener.getAuditEvents().get( 2 ).getAction() );
}
finally
{
mockAuditListener.clearEvents();
managedRepositoryAdmin.deleteManagedRepository( "test-new-one", getFakeAuditInformation(), true );
managedRepositoryAdmin.deleteManagedRepository( "test-new-two", getFakeAuditInformation(), true );
}
}
@Test
public void addAndDeleteGroupWithRemowingManagedRepo()
throws Exception
{
try
{
ManagedRepository managedRepositoryOne =
getTestManagedRepository( "test-new-one", APPSERVER_BASE_PATH + File.separator + "test-new-one" );
ManagedRepository managedRepositoryTwo =
getTestManagedRepository( "test-new-two", APPSERVER_BASE_PATH + File.separator + "test-new-two" );
managedRepositoryAdmin.addManagedRepository( managedRepositoryOne, getFakeAuditInformation() );
managedRepositoryAdmin.addManagedRepository( managedRepositoryTwo, getFakeAuditInformation() );
RepositoryGroup repositoryGroup =
new RepositoryGroup( "repo-group-one", Arrays.asList( "test-new-one", "test-new-two" ) );
mockAuditListener.clearEvents();
repositoryGroupAdmin.addRepositoryGroup( repositoryGroup, getFakeAuditInformation() );
assertEquals( 1, repositoryGroupAdmin.getRepositoriesGroups().size() );
assertEquals( "repo-group-one", repositoryGroupAdmin.getRepositoriesGroups().get( 0 ).getId() );
assertEquals( 2, repositoryGroupAdmin.getRepositoriesGroups().get( 0 ).getRepositories().size() );
assertEquals( Arrays.asList( "test-new-one", "test-new-two" ),
repositoryGroupAdmin.getRepositoriesGroups().get( 0 ).getRepositories() );
// deleting a managed repo to validate repogroup correctly updated !
managedRepositoryAdmin.deleteManagedRepository( "test-new-one", getFakeAuditInformation(), true );
assertEquals( 1, repositoryGroupAdmin.getRepositoriesGroups().size() );
assertEquals( "repo-group-one", repositoryGroupAdmin.getRepositoriesGroups().get( 0 ).getId() );
assertEquals( 1, repositoryGroupAdmin.getRepositoriesGroups().get( 0 ).getRepositories().size() );
assertEquals( Arrays.asList( "test-new-two" ),
repositoryGroupAdmin.getRepositoriesGroups().get( 0 ).getRepositories() );
repositoryGroupAdmin.deleteRepositoryGroup( "repo-group-one", getFakeAuditInformation() );
assertEquals( 0, repositoryGroupAdmin.getRepositoriesGroups().size() );
assertEquals( 3, mockAuditListener.getAuditEvents().size() );
assertEquals( AuditEvent.ADD_REPO_GROUP, mockAuditListener.getAuditEvents().get( 0 ).getAction() );
assertEquals( AuditEvent.DELETE_MANAGED_REPO, mockAuditListener.getAuditEvents().get( 1 ).getAction() );
assertEquals( AuditEvent.DELETE_REPO_GROUP, mockAuditListener.getAuditEvents().get( 2 ).getAction() );
}
finally
{
mockAuditListener.clearEvents();
managedRepositoryAdmin.deleteManagedRepository( "test-new-two", getFakeAuditInformation(), true );
}
}
}