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


Reply via email to