Propchange:
maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/AddManagedRepositoryActionTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/AddManagedRepositoryActionTest.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Propchange:
maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/AddManagedRepositoryActionTest.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added:
maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/AddRemoteRepositoryActionTest.java
URL:
http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/AddRemoteRepositoryActionTest.java?rev=579417&view=auto
==============================================================================
---
maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/AddRemoteRepositoryActionTest.java
(added)
+++
maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/AddRemoteRepositoryActionTest.java
Tue Sep 25 17:01:01 2007
@@ -0,0 +1,124 @@
+package org.apache.maven.archiva.web.action.admin.repositories;
+
+/*
+ * 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 com.opensymphony.xwork.Action;
+
+import org.apache.maven.archiva.configuration.ArchivaConfiguration;
+import org.apache.maven.archiva.configuration.Configuration;
+import org.apache.maven.archiva.configuration.RemoteRepositoryConfiguration;
+import org.codehaus.plexus.PlexusTestCase;
+import org.codehaus.plexus.redback.xwork.interceptor.SecureActionBundle;
+import org.codehaus.plexus.redback.xwork.interceptor.SecureActionException;
+import org.easymock.MockControl;
+
+import java.util.Collections;
+
+/**
+ * AddRemoteRepositoryActionTest
+ *
+ * @author <a href="mailto:[EMAIL PROTECTED]">Joakim Erdfelt</a>
+ * @version $Id$
+ */
+public class AddRemoteRepositoryActionTest
+ extends PlexusTestCase
+{
+ private AddRemoteRepositoryAction action;
+
+ private MockControl archivaConfigurationControl;
+
+ private ArchivaConfiguration archivaConfiguration;
+
+ private static final String REPO_ID = "remote-repo-ident";
+
+ protected void setUp()
+ throws Exception
+ {
+ super.setUp();
+
+ action = (AddRemoteRepositoryAction) lookup( Action.class.getName(),
"addRemoteRepositoryAction" );
+
+ archivaConfigurationControl = MockControl.createControl(
ArchivaConfiguration.class );
+ archivaConfiguration = (ArchivaConfiguration)
archivaConfigurationControl.getMock();
+ action.setArchivaConfiguration( archivaConfiguration );
+ }
+
+ public void testSecureActionBundle()
+ throws SecureActionException
+ {
+ archivaConfiguration.getConfiguration();
+ archivaConfigurationControl.setReturnValue( new Configuration() );
+ archivaConfigurationControl.replay();
+
+ action.prepare();
+ SecureActionBundle bundle = action.getSecureActionBundle();
+ assertTrue( bundle.requiresAuthentication() );
+ assertEquals( 1, bundle.getAuthorizationTuples().size() );
+ }
+
+ public void testAddRemoteRepositoryInitialPage()
+ throws Exception
+ {
+ archivaConfiguration.getConfiguration();
+ archivaConfigurationControl.setReturnValue( new Configuration() );
+ archivaConfigurationControl.replay();
+
+ action.prepare();
+ RemoteRepositoryConfiguration configuration = action.getRepository();
+ assertNotNull( configuration );
+ assertNull( configuration.getId() );
+
+ String status = action.input();
+ assertEquals( Action.INPUT, status );
+ }
+
+ public void testAddRemoteRepository()
+ throws Exception
+ {
+ Configuration configuration = new Configuration();
+ archivaConfiguration.getConfiguration();
+ archivaConfigurationControl.setReturnValue( configuration );
+
+ archivaConfiguration.save( configuration );
+
+ archivaConfigurationControl.replay();
+
+ action.prepare();
+ RemoteRepositoryConfiguration repository = action.getRepository();
+ populateRepository( repository );
+
+ String status = action.commit();
+ assertEquals( Action.SUCCESS, status );
+
+ assertEquals( Collections.singletonList( repository ),
configuration.getRemoteRepositories() );
+
+ archivaConfigurationControl.verify();
+ }
+
+ private void populateRepository( RemoteRepositoryConfiguration repository )
+ {
+ repository.setId( REPO_ID );
+ repository.setName( "repo name" );
+ repository.setUrl( "url" );
+ repository.setLayout( "default" );
+ }
+
+ // TODO: test errors during add, other actions
+}
Propchange:
maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/AddRemoteRepositoryActionTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/AddRemoteRepositoryActionTest.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Propchange:
maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/AddRemoteRepositoryActionTest.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added:
maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryActionTest.java
URL:
http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryActionTest.java?rev=579417&view=auto
==============================================================================
---
maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryActionTest.java
(added)
+++
maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryActionTest.java
Tue Sep 25 17:01:01 2007
@@ -0,0 +1,229 @@
+package org.apache.maven.archiva.web.action.admin.repositories;
+
+/*
+ * 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 com.opensymphony.xwork.Action;
+
+import org.apache.maven.archiva.configuration.ArchivaConfiguration;
+import org.apache.maven.archiva.configuration.Configuration;
+import
org.apache.maven.archiva.configuration.IndeterminateConfigurationException;
+import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
+import org.codehaus.plexus.PlexusTestCase;
+import org.codehaus.plexus.redback.role.RoleManager;
+import org.codehaus.plexus.redback.xwork.interceptor.SecureActionBundle;
+import org.codehaus.plexus.redback.xwork.interceptor.SecureActionException;
+import org.codehaus.plexus.registry.RegistryException;
+import org.easymock.MockControl;
+
+import java.io.File;
+import java.util.Collections;
+
+/**
+ * DeleteManagedRepositoryActionTest
+ *
+ * @author <a href="mailto:[EMAIL PROTECTED]">Joakim Erdfelt</a>
+ * @version $Id$
+ */
+public class DeleteManagedRepositoryActionTest
+ extends PlexusTestCase
+{
+ private DeleteManagedRepositoryAction action;
+
+ private RoleManager roleManager;
+
+ private MockControl roleManagerControl;
+
+ private MockControl archivaConfigurationControl;
+
+ private ArchivaConfiguration archivaConfiguration;
+
+ private static final String REPO_ID = "repo-ident";
+
+ private File location;
+
+ protected void setUp()
+ throws Exception
+ {
+ super.setUp();
+
+ action = (DeleteManagedRepositoryAction) lookup(
Action.class.getName(), "deleteManagedRepositoryAction" );
+
+ archivaConfigurationControl = MockControl.createControl(
ArchivaConfiguration.class );
+ archivaConfiguration = (ArchivaConfiguration)
archivaConfigurationControl.getMock();
+ action.setArchivaConfiguration( archivaConfiguration );
+
+ roleManagerControl = MockControl.createControl( RoleManager.class );
+ roleManager = (RoleManager) roleManagerControl.getMock();
+ action.setRoleManager( roleManager );
+ location = getTestFile( "target/test/location" );
+ }
+
+ public void testSecureActionBundle()
+ throws SecureActionException
+ {
+ archivaConfiguration.getConfiguration();
+ archivaConfigurationControl.setReturnValue( new Configuration() );
+ archivaConfigurationControl.replay();
+
+ action.prepare();
+ SecureActionBundle bundle = action.getSecureActionBundle();
+ assertTrue( bundle.requiresAuthentication() );
+ assertEquals( 1, bundle.getAuthorizationTuples().size() );
+ }
+
+ public void testDeleteRepositoryConfirmation()
+ throws Exception
+ {
+ ManagedRepositoryConfiguration originalRepository = createRepository();
+ Configuration configuration = createConfigurationForEditing(
originalRepository );
+
+ archivaConfiguration.getConfiguration();
+ archivaConfigurationControl.setReturnValue( configuration );
+ archivaConfigurationControl.replay();
+
+ action.setRepoid( REPO_ID );
+
+ action.prepare();
+ assertEquals( REPO_ID, action.getRepoid() );
+ ManagedRepositoryConfiguration repository = action.getRepository();
+ assertNotNull( repository );
+ assertRepositoryEquals( repository, createRepository() );
+
+ String status = action.execute();
+ assertEquals( Action.SUCCESS, status );
+ repository = action.getRepository();
+ assertRepositoryEquals( repository, createRepository() );
+ assertEquals( Collections.singletonList( originalRepository ),
configuration.getManagedRepositories() );
+ }
+
+ public void testDeleteRepositoryKeepContent()
+ throws RegistryException, IndeterminateConfigurationException
+ {
+ Configuration configuration = prepDeletionTest( createRepository(),
"delete-entry" );
+ String status = action.deleteEntry();
+ assertEquals( Action.SUCCESS, status );
+
+ assertTrue( configuration.getManagedRepositories().isEmpty() );
+
+ assertTrue( location.exists() );
+ }
+
+ public void testDeleteRepositoryDeleteContent()
+ throws RegistryException, IndeterminateConfigurationException
+ {
+ Configuration configuration = prepDeletionTest( createRepository(),
"delete-contents" );
+ String status = action.deleteContents();
+ assertEquals( Action.SUCCESS, status );
+
+ assertTrue( configuration.getManagedRepositories().isEmpty() );
+
+ assertFalse( location.exists() );
+ }
+
+ public void testDeleteRepositoryCancelled()
+ throws Exception
+ {
+ ManagedRepositoryConfiguration originalRepository = createRepository();
+ Configuration configuration = prepDeletionTest( originalRepository,
null );
+ String status = action.execute();
+ assertEquals( Action.SUCCESS, status );
+
+ ManagedRepositoryConfiguration repository = action.getRepository();
+ assertRepositoryEquals( repository, createRepository() );
+ assertEquals( Collections.singletonList( originalRepository ),
configuration.getManagedRepositories() );
+
+ assertTrue( location.exists() );
+ }
+
+ private Configuration prepDeletionTest( ManagedRepositoryConfiguration
originalRepository, String mode )
+ throws RegistryException, IndeterminateConfigurationException
+ {
+ location.mkdirs();
+
+ Configuration configuration = createConfigurationForEditing(
originalRepository );
+
+ archivaConfiguration.getConfiguration();
+ archivaConfigurationControl.setReturnValue( configuration );
+ archivaConfiguration.getConfiguration();
+ archivaConfigurationControl.setReturnValue( configuration );
+
+ archivaConfiguration.save( configuration );
+ archivaConfigurationControl.replay();
+
+ action.setRepoid( REPO_ID );
+
+ action.prepare();
+ assertEquals( REPO_ID, action.getRepoid() );
+ ManagedRepositoryConfiguration repository = action.getRepository();
+ assertNotNull( repository );
+ assertRepositoryEquals( repository, createRepository() );
+
+ assertTrue( location.exists() );
+ return configuration;
+ }
+
+ private void assertRepositoryEquals( ManagedRepositoryConfiguration
expectedRepository,
+ ManagedRepositoryConfiguration
actualRepository )
+ {
+ assertEquals( expectedRepository.getDaysOlder(),
actualRepository.getDaysOlder() );
+ assertEquals( expectedRepository.getId(), actualRepository.getId() );
+ assertEquals( expectedRepository.getIndexDir(),
actualRepository.getIndexDir() );
+ assertEquals( expectedRepository.getLayout(),
actualRepository.getLayout() );
+ assertEquals( expectedRepository.getLocation(),
actualRepository.getLocation() );
+ assertEquals( expectedRepository.getName(), actualRepository.getName()
);
+ assertEquals( expectedRepository.getRefreshCronExpression(),
actualRepository.getRefreshCronExpression() );
+ assertEquals( expectedRepository.getRetentionCount(),
actualRepository.getRetentionCount() );
+ assertEquals( expectedRepository.isDeleteReleasedSnapshots(),
actualRepository.isDeleteReleasedSnapshots() );
+ assertEquals( expectedRepository.isScanned(),
actualRepository.isScanned() );
+ assertEquals( expectedRepository.isReleases(),
actualRepository.isReleases() );
+ assertEquals( expectedRepository.isSnapshots(),
actualRepository.isSnapshots() );
+ }
+
+ private Configuration createConfigurationForEditing(
ManagedRepositoryConfiguration repositoryConfiguration )
+ {
+ Configuration configuration = new Configuration();
+ configuration.addManagedRepository( repositoryConfiguration );
+ return configuration;
+ }
+
+ private ManagedRepositoryConfiguration createRepository()
+ {
+ ManagedRepositoryConfiguration r = new
ManagedRepositoryConfiguration();
+ r.setId( REPO_ID );
+ populateRepository( r );
+ return r;
+ }
+
+ private void populateRepository( ManagedRepositoryConfiguration repository
)
+ {
+ repository.setId( REPO_ID );
+ repository.setName( "repo name" );
+ repository.setLocation( location.getAbsolutePath() );
+ repository.setLayout( "default" );
+ repository.setRefreshCronExpression( "* 0/5 * * * ?" );
+ repository.setDaysOlder( 31 );
+ repository.setRetentionCount( 20 );
+ repository.setReleases( true );
+ repository.setSnapshots( true );
+ repository.setScanned( false );
+ repository.setDeleteReleasedSnapshots( true );
+ }
+
+}
Propchange:
maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryActionTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryActionTest.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Propchange:
maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryActionTest.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added:
maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteRemoteRepositoryActionTest.java
URL:
http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteRemoteRepositoryActionTest.java?rev=579417&view=auto
==============================================================================
---
maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteRemoteRepositoryActionTest.java
(added)
+++
maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteRemoteRepositoryActionTest.java
Tue Sep 25 17:01:01 2007
@@ -0,0 +1,179 @@
+package org.apache.maven.archiva.web.action.admin.repositories;
+
+/*
+ * 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 com.opensymphony.xwork.Action;
+
+import org.apache.maven.archiva.configuration.ArchivaConfiguration;
+import org.apache.maven.archiva.configuration.Configuration;
+import
org.apache.maven.archiva.configuration.IndeterminateConfigurationException;
+import org.apache.maven.archiva.configuration.RemoteRepositoryConfiguration;
+import org.codehaus.plexus.PlexusTestCase;
+import org.codehaus.plexus.registry.RegistryException;
+import org.easymock.MockControl;
+
+import java.util.Collections;
+
+/**
+ * DeleteRemoteRepositoryActionTest
+ *
+ * @author <a href="mailto:[EMAIL PROTECTED]">Joakim Erdfelt</a>
+ * @version $Id$
+ */
+public class DeleteRemoteRepositoryActionTest
+ extends PlexusTestCase
+{
+ private static final String REPO_ID = "remote-repo-ident";
+
+ private DeleteRemoteRepositoryAction action;
+
+ private MockControl archivaConfigurationControl;
+
+ private ArchivaConfiguration archivaConfiguration;
+
+ protected void setUp()
+ throws Exception
+ {
+ super.setUp();
+
+ action = (DeleteRemoteRepositoryAction) lookup(
Action.class.getName(), "deleteRemoteRepositoryAction" );
+
+ archivaConfigurationControl = MockControl.createControl(
ArchivaConfiguration.class );
+ archivaConfiguration = (ArchivaConfiguration)
archivaConfigurationControl.getMock();
+ action.setArchivaConfiguration( archivaConfiguration );
+ }
+
+ public void testDeleteRemoteRepositoryConfirmation()
+ throws Exception
+ {
+ RemoteRepositoryConfiguration originalRepository = createRepository();
+ Configuration configuration = createConfigurationForEditing(
originalRepository );
+
+ archivaConfiguration.getConfiguration();
+ archivaConfigurationControl.setReturnValue( configuration );
+ archivaConfigurationControl.replay();
+
+ action.setRepoid( REPO_ID );
+
+ action.prepare();
+ assertEquals( REPO_ID, action.getRepoid() );
+ RemoteRepositoryConfiguration repository = action.getRepository();
+ assertNotNull( repository );
+ assertRepositoryEquals( repository, createRepository() );
+
+ String status = action.confirmDelete();
+ assertEquals( Action.INPUT, status );
+ repository = action.getRepository();
+ assertRepositoryEquals( repository, createRepository() );
+ assertEquals( Collections.singletonList( originalRepository ),
configuration.getRemoteRepositories() );
+ }
+
+ public void testDeleteRemoteRepository()
+ throws RegistryException, IndeterminateConfigurationException
+ {
+ Configuration configuration = createConfigurationForEditing(
createRepository() );
+
+ archivaConfiguration.getConfiguration();
+ archivaConfigurationControl.setReturnValue( configuration );
+ archivaConfiguration.getConfiguration();
+ archivaConfigurationControl.setReturnValue( configuration );
+
+ archivaConfiguration.save( configuration );
+ archivaConfigurationControl.replay();
+
+ action.setRepoid( REPO_ID );
+
+ action.prepare();
+ assertEquals( REPO_ID, action.getRepoid() );
+ RemoteRepositoryConfiguration repository = action.getRepository();
+ assertNotNull( repository );
+ assertRepositoryEquals( repository, createRepository() );
+
+ String status = action.delete();
+ assertEquals( Action.SUCCESS, status );
+
+ assertTrue( configuration.getRemoteRepositories().isEmpty() );
+ }
+
+ public void testDeleteRemoteRepositoryCancelled()
+ throws Exception
+ {
+ RemoteRepositoryConfiguration originalRepository = createRepository();
+ Configuration configuration = createConfigurationForEditing(
originalRepository );
+
+ archivaConfiguration.getConfiguration();
+ archivaConfigurationControl.setReturnValue( configuration );
+ archivaConfiguration.getConfiguration();
+ archivaConfigurationControl.setReturnValue( configuration );
+
+ archivaConfiguration.save( configuration );
+ archivaConfigurationControl.replay();
+
+ action.setRepoid( REPO_ID );
+
+ action.prepare();
+ assertEquals( REPO_ID, action.getRepoid() );
+ RemoteRepositoryConfiguration repositoryConfiguration =
action.getRepository();
+ assertNotNull( repositoryConfiguration );
+ assertRepositoryEquals( repositoryConfiguration, createRepository() );
+
+ String status = action.execute();
+ assertEquals( Action.SUCCESS, status );
+
+ RemoteRepositoryConfiguration repository = action.getRepository();
+ assertRepositoryEquals( repository, createRepository() );
+ assertEquals( Collections.singletonList( originalRepository ),
configuration.getRemoteRepositories() );
+ }
+
+ private Configuration createConfigurationForEditing(
RemoteRepositoryConfiguration repositoryConfiguration )
+ {
+ Configuration configuration = new Configuration();
+ configuration.addRemoteRepository( repositoryConfiguration );
+ return configuration;
+ }
+
+ private RemoteRepositoryConfiguration createRepository()
+ {
+ RemoteRepositoryConfiguration r = new RemoteRepositoryConfiguration();
+ r.setId( REPO_ID );
+ populateRepository( r );
+ return r;
+ }
+
+ private void assertRepositoryEquals( RemoteRepositoryConfiguration
expectedRepository,
+ RemoteRepositoryConfiguration
actualRepository )
+ {
+ assertEquals( expectedRepository.getId(), actualRepository.getId() );
+ assertEquals( expectedRepository.getLayout(),
actualRepository.getLayout() );
+ assertEquals( expectedRepository.getUrl(), actualRepository.getUrl() );
+ assertEquals( expectedRepository.getName(), actualRepository.getName()
);
+ }
+
+ private void populateRepository( RemoteRepositoryConfiguration repository )
+ {
+ repository.setId( REPO_ID );
+ repository.setName( "repo name" );
+ repository.setUrl( "url" );
+ repository.setLayout( "default" );
+ }
+
+ // TODO: what if there are proxy connectors attached to a deleted
repository?
+ // TODO: what about removing proxied content if a proxy is removed?
+}
Propchange:
maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteRemoteRepositoryActionTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteRemoteRepositoryActionTest.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Propchange:
maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteRemoteRepositoryActionTest.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added:
maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/EditManagedRepositoryActionTest.java
URL:
http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/EditManagedRepositoryActionTest.java?rev=579417&view=auto
==============================================================================
---
maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/EditManagedRepositoryActionTest.java
(added)
+++
maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/EditManagedRepositoryActionTest.java
Tue Sep 25 17:01:01 2007
@@ -0,0 +1,196 @@
+package org.apache.maven.archiva.web.action.admin.repositories;
+
+/*
+ * 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 com.opensymphony.xwork.Action;
+
+import org.apache.maven.archiva.configuration.ArchivaConfiguration;
+import org.apache.maven.archiva.configuration.Configuration;
+import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
+import org.codehaus.plexus.PlexusTestCase;
+import org.codehaus.plexus.redback.role.RoleManager;
+import org.codehaus.plexus.redback.xwork.interceptor.SecureActionBundle;
+import org.codehaus.plexus.redback.xwork.interceptor.SecureActionException;
+import org.easymock.MockControl;
+
+import java.io.File;
+import java.util.Collections;
+
+/**
+ * EditManagedRepositoryActionTest
+ *
+ * @author <a href="mailto:[EMAIL PROTECTED]">Joakim Erdfelt</a>
+ * @version $Id$
+ */
+public class EditManagedRepositoryActionTest
+ extends PlexusTestCase
+{
+ private EditManagedRepositoryAction action;
+
+ private RoleManager roleManager;
+
+ private MockControl roleManagerControl;
+
+ private MockControl archivaConfigurationControl;
+
+ private ArchivaConfiguration archivaConfiguration;
+
+ private static final String REPO_ID = "repo-ident";
+
+ private File location;
+
+ protected void setUp()
+ throws Exception
+ {
+ super.setUp();
+
+ action = (EditManagedRepositoryAction) lookup( Action.class.getName(),
"editManagedRepositoryAction" );
+
+ archivaConfigurationControl = MockControl.createControl(
ArchivaConfiguration.class );
+ archivaConfiguration = (ArchivaConfiguration)
archivaConfigurationControl.getMock();
+ action.setArchivaConfiguration( archivaConfiguration );
+
+ roleManagerControl = MockControl.createControl( RoleManager.class );
+ roleManager = (RoleManager) roleManagerControl.getMock();
+ action.setRoleManager( roleManager );
+ location = getTestFile( "target/test/location" );
+ }
+
+ public void testSecureActionBundle()
+ throws SecureActionException
+ {
+ archivaConfiguration.getConfiguration();
+ archivaConfigurationControl.setReturnValue( new Configuration() );
+ archivaConfigurationControl.replay();
+
+ action.prepare();
+ SecureActionBundle bundle = action.getSecureActionBundle();
+ assertTrue( bundle.requiresAuthentication() );
+ assertEquals( 1, bundle.getAuthorizationTuples().size() );
+ }
+
+ public void testEditRepositoryInitialPage()
+ throws Exception
+ {
+ Configuration configuration = createConfigurationForEditing(
createRepository() );
+
+ archivaConfiguration.getConfiguration();
+ archivaConfigurationControl.setReturnValue( configuration );
+ archivaConfigurationControl.replay();
+
+ action.setRepoid( REPO_ID );
+
+ action.prepare();
+ assertEquals( REPO_ID, action.getRepoid() );
+ ManagedRepositoryConfiguration repository = action.getRepository();
+ assertNotNull( repository );
+ assertRepositoryEquals( repository, createRepository() );
+
+ String status = action.input();
+ assertEquals( Action.INPUT, status );
+ repository = action.getRepository();
+ assertRepositoryEquals( repository, createRepository() );
+ }
+
+ public void testEditRepository()
+ throws Exception
+ {
+ // TODO: should be in the business model
+ roleManager.createTemplatedRole( "archiva-repository-manager", REPO_ID
);
+ roleManager.createTemplatedRole( "archiva-repository-observer",
REPO_ID );
+
+ roleManagerControl.replay();
+
+ Configuration configuration = createConfigurationForEditing(
createRepository() );
+ archivaConfiguration.getConfiguration();
+ archivaConfigurationControl.setReturnValue( configuration );
+ archivaConfigurationControl.setReturnValue( configuration );
+
+ archivaConfiguration.save( configuration );
+
+ archivaConfigurationControl.replay();
+
+ action.setRepoid( REPO_ID );
+ action.prepare();
+ assertEquals( REPO_ID, action.getRepoid() );
+ ManagedRepositoryConfiguration repository = action.getRepository();
+ populateRepository( repository );
+ repository.setName( "new repo name" );
+
+ String status = action.commit();
+ assertEquals( Action.SUCCESS, status );
+
+ ManagedRepositoryConfiguration newRepository = createRepository();
+ newRepository.setName( "new repo name" );
+ assertRepositoryEquals( repository, newRepository );
+ assertEquals( Collections.singletonList( repository ),
configuration.getManagedRepositories() );
+
+ roleManagerControl.verify();
+ archivaConfigurationControl.verify();
+ }
+
+ private void assertRepositoryEquals( ManagedRepositoryConfiguration
expectedRepository,
+ ManagedRepositoryConfiguration
actualRepository )
+ {
+ assertEquals( expectedRepository.getDaysOlder(),
actualRepository.getDaysOlder() );
+ assertEquals( expectedRepository.getId(), actualRepository.getId() );
+ assertEquals( expectedRepository.getIndexDir(),
actualRepository.getIndexDir() );
+ assertEquals( expectedRepository.getLayout(),
actualRepository.getLayout() );
+ assertEquals( expectedRepository.getLocation(),
actualRepository.getLocation() );
+ assertEquals( expectedRepository.getName(), actualRepository.getName()
);
+ assertEquals( expectedRepository.getRefreshCronExpression(),
actualRepository.getRefreshCronExpression() );
+ assertEquals( expectedRepository.getRetentionCount(),
actualRepository.getRetentionCount() );
+ assertEquals( expectedRepository.isDeleteReleasedSnapshots(),
actualRepository.isDeleteReleasedSnapshots() );
+ assertEquals( expectedRepository.isScanned(),
actualRepository.isScanned() );
+ assertEquals( expectedRepository.isReleases(),
actualRepository.isReleases() );
+ assertEquals( expectedRepository.isSnapshots(),
actualRepository.isSnapshots() );
+ }
+
+ private Configuration createConfigurationForEditing(
ManagedRepositoryConfiguration repositoryConfiguration )
+ {
+ Configuration configuration = new Configuration();
+ configuration.addManagedRepository( repositoryConfiguration );
+ return configuration;
+ }
+
+ private ManagedRepositoryConfiguration createRepository()
+ {
+ ManagedRepositoryConfiguration r = new
ManagedRepositoryConfiguration();
+ r.setId( REPO_ID );
+ populateRepository( r );
+ return r;
+ }
+
+ private void populateRepository( ManagedRepositoryConfiguration repository
)
+ {
+ repository.setId( REPO_ID );
+ repository.setName( "repo name" );
+ repository.setLocation( location.getAbsolutePath() );
+ repository.setLayout( "default" );
+ repository.setRefreshCronExpression( "* 0/5 * * * ?" );
+ repository.setDaysOlder( 31 );
+ repository.setRetentionCount( 20 );
+ repository.setReleases( true );
+ repository.setSnapshots( true );
+ repository.setScanned( false );
+ repository.setDeleteReleasedSnapshots( true );
+ }
+
+}
Propchange:
maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/EditManagedRepositoryActionTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/EditManagedRepositoryActionTest.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Propchange:
maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/EditManagedRepositoryActionTest.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added:
maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/EditRemoteRepositoryActionTest.java
URL:
http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/EditRemoteRepositoryActionTest.java?rev=579417&view=auto
==============================================================================
---
maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/EditRemoteRepositoryActionTest.java
(added)
+++
maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/EditRemoteRepositoryActionTest.java
Tue Sep 25 17:01:01 2007
@@ -0,0 +1,158 @@
+package org.apache.maven.archiva.web.action.admin.repositories;
+
+/*
+ * 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 com.opensymphony.xwork.Action;
+
+import org.apache.maven.archiva.configuration.ArchivaConfiguration;
+import org.apache.maven.archiva.configuration.Configuration;
+import org.apache.maven.archiva.configuration.RemoteRepositoryConfiguration;
+import org.codehaus.plexus.PlexusTestCase;
+import org.codehaus.plexus.redback.xwork.interceptor.SecureActionBundle;
+import org.codehaus.plexus.redback.xwork.interceptor.SecureActionException;
+import org.easymock.MockControl;
+
+import java.util.Collections;
+
+/**
+ * EditRemoteRepositoryActionTest
+ *
+ * @author <a href="mailto:[EMAIL PROTECTED]">Joakim Erdfelt</a>
+ * @version $Id$
+ */
+public class EditRemoteRepositoryActionTest
+ extends PlexusTestCase
+{
+ private static final String REPO_ID = "remote-repo-ident";
+
+ private EditRemoteRepositoryAction action;
+
+ private MockControl archivaConfigurationControl;
+
+ private ArchivaConfiguration archivaConfiguration;
+
+ public void testEditRemoteRepository()
+ throws Exception
+ {
+ Configuration configuration = createConfigurationForEditing(
createRepository() );
+ archivaConfiguration.getConfiguration();
+ archivaConfigurationControl.setReturnValue( configuration );
+ archivaConfigurationControl.setReturnValue( configuration );
+ archivaConfiguration.save( configuration );
+ archivaConfigurationControl.replay();
+
+ action.setRepoid( REPO_ID );
+ action.prepare();
+ assertEquals( REPO_ID, action.getRepoid() );
+ RemoteRepositoryConfiguration repository = action.getRepository();
+ populateRepository( repository );
+ repository.setName( "new repo name" );
+
+ String status = action.commit();
+ assertEquals( Action.SUCCESS, status );
+
+ RemoteRepositoryConfiguration newRepository = createRepository();
+ newRepository.setName( "new repo name" );
+ assertRepositoryEquals( repository, newRepository );
+ assertEquals( Collections.singletonList( repository ),
configuration.getRemoteRepositories() );
+
+ archivaConfigurationControl.verify();
+ }
+
+ public void testEditRemoteRepositoryInitialPage()
+ throws Exception
+ {
+ Configuration configuration = createConfigurationForEditing(
createRepository() );
+
+ archivaConfiguration.getConfiguration();
+ archivaConfigurationControl.setReturnValue( configuration );
+ archivaConfigurationControl.replay();
+
+ action.setRepoid( REPO_ID );
+
+ action.prepare();
+ assertEquals( REPO_ID, action.getRepoid() );
+ RemoteRepositoryConfiguration repository = action.getRepository();
+ assertNotNull( repository );
+ assertRepositoryEquals( repository, createRepository() );
+
+ String status = action.input();
+ assertEquals( Action.INPUT, status );
+ repository = action.getRepository();
+ assertRepositoryEquals( repository, createRepository() );
+ }
+
+ public void testSecureActionBundle()
+ throws SecureActionException
+ {
+ archivaConfiguration.getConfiguration();
+ archivaConfigurationControl.setReturnValue( new Configuration() );
+ archivaConfigurationControl.replay();
+
+ action.prepare();
+ SecureActionBundle bundle = action.getSecureActionBundle();
+ assertTrue( bundle.requiresAuthentication() );
+ assertEquals( 1, bundle.getAuthorizationTuples().size() );
+ }
+
+ private void assertRepositoryEquals( RemoteRepositoryConfiguration
expectedRepository,
+ RemoteRepositoryConfiguration
actualRepository )
+ {
+ assertEquals( expectedRepository.getId(), actualRepository.getId() );
+ assertEquals( expectedRepository.getLayout(),
actualRepository.getLayout() );
+ assertEquals( expectedRepository.getUrl(), actualRepository.getUrl() );
+ assertEquals( expectedRepository.getName(), actualRepository.getName()
);
+ }
+
+ private Configuration createConfigurationForEditing(
RemoteRepositoryConfiguration repositoryConfiguration )
+ {
+ Configuration configuration = new Configuration();
+ configuration.addRemoteRepository( repositoryConfiguration );
+ return configuration;
+ }
+
+ private RemoteRepositoryConfiguration createRepository()
+ {
+ RemoteRepositoryConfiguration r = new RemoteRepositoryConfiguration();
+ r.setId( REPO_ID );
+ populateRepository( r );
+ return r;
+ }
+
+ private void populateRepository( RemoteRepositoryConfiguration repository )
+ {
+ repository.setId( REPO_ID );
+ repository.setName( "repo name" );
+ repository.setUrl( "url" );
+ repository.setLayout( "default" );
+ }
+
+ protected void setUp()
+ throws Exception
+ {
+ super.setUp();
+
+ action = (EditRemoteRepositoryAction) lookup( Action.class.getName(),
"editRemoteRepositoryAction" );
+
+ archivaConfigurationControl = MockControl.createControl(
ArchivaConfiguration.class );
+ archivaConfiguration = (ArchivaConfiguration)
archivaConfigurationControl.getMock();
+ action.setArchivaConfiguration( archivaConfiguration );
+ }
+}
Propchange:
maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/EditRemoteRepositoryActionTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/EditRemoteRepositoryActionTest.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Propchange:
maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/EditRemoteRepositoryActionTest.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added:
maven/archiva/trunk/archiva-web/archiva-webapp/src/test/resources/log4j.xml
URL:
http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/test/resources/log4j.xml?rev=579417&view=auto
==============================================================================
--- maven/archiva/trunk/archiva-web/archiva-webapp/src/test/resources/log4j.xml
(added)
+++ maven/archiva/trunk/archiva-web/archiva-webapp/src/test/resources/log4j.xml
Tue Sep 25 17:01:01 2007
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
+
+ <appender name="console" class="org.apache.log4j.ConsoleAppender">
+ <param name="Target" value="System.out"/>
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%5p|%t|%5r|%-30c{1} - %m%n"/>
+ </layout>
+ </appender>
+
+ <!-- Help identify bugs during testing -->
+ <logger name="org.apache.maven.archiva">
+ <level value="debug"/>
+ </logger>
+
+ <logger name="org.codehaus.plexus.security">
+ <level value="info"/>
+ </logger>
+
+ <logger name="org.codehaus.plexus.PlexusContainer">
+ <level value="info"/>
+ </logger>
+
+ <logger name="JPOX">
+ <level value="warn"/>
+ </logger>
+
+ <logger name="JPOX.MetaData">
+ <level value="error"/>
+ </logger>
+
+ <logger name="JPOX.RDBMS.SQL">
+ <level value="error"/>
+ </logger>
+
+ <logger name="SQL">
+ <level value="error"/>
+ </logger>
+
+ <root>
+ <priority value ="debug" />
+ <appender-ref ref="console" />
+ </root>
+
+</log4j:configuration>
Propchange:
maven/archiva/trunk/archiva-web/archiva-webapp/src/test/resources/log4j.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/archiva/trunk/archiva-web/archiva-webapp/src/test/resources/log4j.xml
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Propchange:
maven/archiva/trunk/archiva-web/archiva-webapp/src/test/resources/log4j.xml
------------------------------------------------------------------------------
svn:mime-type = text/xml