Author: brett
Date: Tue Sep 11 19:58:42 2007
New Revision: 574771

URL: http://svn.apache.org/viewvc?rev=574771&view=rev
Log:
[MRM-462] test deletion

Modified:
    
maven/archiva/branches/MRM-462/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/ConfigureRepositoryAction.java
    
maven/archiva/branches/MRM-462/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/ConfigureRepositoryActionTest.java

Modified: 
maven/archiva/branches/MRM-462/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/ConfigureRepositoryAction.java
URL: 
http://svn.apache.org/viewvc/maven/archiva/branches/MRM-462/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/ConfigureRepositoryAction.java?rev=574771&r1=574770&r2=574771&view=diff
==============================================================================
--- 
maven/archiva/branches/MRM-462/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/ConfigureRepositoryAction.java
 (original)
+++ 
maven/archiva/branches/MRM-462/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/ConfigureRepositoryAction.java
 Tue Sep 11 19:58:42 2007
@@ -80,6 +80,7 @@
         return INPUT;
     }
 
+    // TODO: rename to confirmDelete
     public String confirm()
     {
         return INPUT;
@@ -101,8 +102,9 @@
 
             try
             {
-                removeRepository( repoid, 
archivaConfiguration.getConfiguration() );
-                result = saveConfiguration( 
archivaConfiguration.getConfiguration() );
+                Configuration configuration = 
archivaConfiguration.getConfiguration();
+                removeRepository( repoid, configuration );
+                result = saveConfiguration( configuration );
 
                 if ( result.equals( SUCCESS ) )
                 {

Modified: 
maven/archiva/branches/MRM-462/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/ConfigureRepositoryActionTest.java
URL: 
http://svn.apache.org/viewvc/maven/archiva/branches/MRM-462/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/ConfigureRepositoryActionTest.java?rev=574771&r1=574770&r2=574771&view=diff
==============================================================================
--- 
maven/archiva/branches/MRM-462/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/ConfigureRepositoryActionTest.java
 (original)
+++ 
maven/archiva/branches/MRM-462/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/ConfigureRepositoryActionTest.java
 Tue Sep 11 19:58:42 2007
@@ -23,11 +23,13 @@
 import org.apache.commons.io.FileUtils;
 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;
@@ -133,7 +135,7 @@
         assertEquals( Action.SUCCESS, status );
         assertTrue( location.exists() );
 
-        assertEquals( configuration.getManagedRepositories(), 
Collections.singletonList( repository ) );
+        assertEquals( Collections.singletonList( repository ), 
configuration.getManagedRepositories() );
 
         roleManagerControl.verify();
         archivaConfigurationControl.verify();
@@ -142,7 +144,7 @@
     public void testEditRepositoryInitialPage()
         throws Exception
     {
-        Configuration configuration = createConfigurationForEditing();
+        Configuration configuration = createConfigurationForEditing( 
createRepository() );
 
         archivaConfiguration.getConfiguration();
         archivaConfigurationControl.setReturnValue( configuration );
@@ -180,11 +182,10 @@
         assertEquals( expectedRepository.isSnapshots(), 
actualRepository.isSnapshots() );
     }
 
-    private Configuration createConfigurationForEditing()
+    private Configuration createConfigurationForEditing( 
ManagedRepositoryConfiguration repositoryConfiguration )
     {
         Configuration configuration = new Configuration();
-        ManagedRepositoryConfiguration r = createRepository();
-        configuration.addManagedRepository( r );
+        configuration.addManagedRepository( repositoryConfiguration );
         return configuration;
     }
 
@@ -205,7 +206,7 @@
 
         roleManagerControl.replay();
 
-        Configuration configuration = createConfigurationForEditing();
+        Configuration configuration = createConfigurationForEditing( 
createRepository() );
         archivaConfiguration.getConfiguration();
         archivaConfigurationControl.setReturnValue( configuration );
         archivaConfiguration.getConfiguration();
@@ -227,10 +228,99 @@
         ManagedRepositoryConfiguration newRepository = createRepository();
         newRepository.setName( "new repo name" );
         assertRepositoryEquals( repository, newRepository );
-        assertEquals( configuration.getManagedRepositories(), 
Collections.singletonList( repository ) );
+        assertEquals( Collections.singletonList( repository ), 
configuration.getManagedRepositories() );
 
         roleManagerControl.verify();
         archivaConfigurationControl.verify();
+    }
+
+    public void testDeleteRepositoryConfirmation()
+    {
+        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() );
+        assertNull( action.getMode() );
+        AdminRepositoryConfiguration repository = action.getRepository();
+        assertNotNull( repository );
+        assertRepositoryEquals( repository, createRepository() );
+
+        String status = action.confirm();
+        assertEquals( Action.INPUT, status );
+        repository = action.getRepository();
+        assertRepositoryEquals( repository, createRepository() );
+        assertEquals( Collections.singletonList( originalRepository ), 
configuration.getManagedRepositories() );
+    }
+
+    public void testDeleteRepositoryKeepContent()
+        throws RegistryException, IndeterminateConfigurationException
+    {
+        Configuration configuration = executeDeletionTest( "delete-entry", 
createRepository() );
+
+        assertTrue( configuration.getManagedRepositories().isEmpty() );
+
+        assertTrue( location.exists() );
+    }
+
+    public void testDeleteRepositoryDeleteContent()
+        throws RegistryException, IndeterminateConfigurationException
+    {
+        Configuration configuration = executeDeletionTest( "delete-contents", 
createRepository() );
+
+        assertTrue( configuration.getManagedRepositories().isEmpty() );
+
+        assertFalse( location.exists() );
+    }
+
+    public void testDeleteRepositoryCancelled()
+        throws RegistryException, IndeterminateConfigurationException
+    {
+        ManagedRepositoryConfiguration originalRepository = createRepository();
+        Configuration configuration = executeDeletionTest( "unmodified", 
originalRepository );
+
+        AdminRepositoryConfiguration repository = action.getRepository();
+        assertRepositoryEquals( repository, createRepository() );
+        assertEquals( Collections.singletonList( originalRepository ), 
configuration.getManagedRepositories() );
+
+        assertTrue( location.exists() );
+    }
+
+    private Configuration executeDeletionTest( String mode, 
ManagedRepositoryConfiguration originalRepository )
+        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.setMode( mode );
+
+        action.prepare();
+        assertEquals( REPO_ID, action.getRepoid() );
+        assertEquals( mode, action.getMode() );
+        AdminRepositoryConfiguration repository = action.getRepository();
+        assertNotNull( repository );
+        assertRepositoryEquals( repository, createRepository() );
+
+        assertTrue( location.exists() );
+        String status = action.delete();
+        assertEquals( Action.SUCCESS, status );
+        return configuration;
     }
 
     private void populateRepository( ManagedRepositoryConfiguration repository 
)


Reply via email to