]> source.dussan.org Git - archiva.git/commitdiff
[MRM-1504] repository admin module : add unit test for add repository
authorOlivier Lamy <olamy@apache.org>
Mon, 29 Aug 2011 14:02:09 +0000 (14:02 +0000)
committerOlivier Lamy <olamy@apache.org>
Mon, 29 Aug 2011 14:02:09 +0000 (14:02 +0000)
git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1162818 13f79535-47bb-0310-9956-ffa450edef68

archiva-modules/archiva-base/archiva-repository-admin/pom.xml
archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/managed/DefaultManagedRepositoryAdmin.java
archiva-modules/archiva-base/archiva-repository-admin/src/test/java/org/apache/archiva/admin/repository/managed/AbstractRepositoryAdminTest.java
archiva-modules/archiva-base/archiva-repository-admin/src/test/java/org/apache/archiva/admin/repository/managed/ManagedRepositoryAdminTest.java

index 9406abd8803a41099cdc0c632538349bc8edebf9..f0841c946056e95a87d4a1e5d4d1bd5c60a5c974 100644 (file)
     </dependency>
 
   </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <configuration>
+          <systemPropertyVariables>
+            <appserver.base>${project.build.outputDirectory}</appserver.base>
+          </systemPropertyVariables>
+        </configuration>
+
+      </plugin>
+    </plugins>
+  </build>
 </project>
index 15c41070eb4824ec85816c6c65c216dcd1486661..290a3944ffc9c2459ed2495af0e2b9374f6fbb74 100644 (file)
@@ -107,12 +107,6 @@ public class DefaultManagedRepositoryAdmin
         return null;
     }
 
-    public Boolean deleteManagedRepository( String repositoryId )
-        throws RepositoryAdminException
-    {
-        return null;  //To change body of implemented methods use File | Settings | File Templates.
-    }
-
     public Boolean addManagedRepository( ManagedRepository managedRepository, boolean needStageRepo )
         throws RepositoryAdminException
     {
@@ -133,35 +127,41 @@ public class DefaultManagedRepositoryAdmin
 
         Configuration config = archivaConfiguration.getConfiguration();
 
-        CronExpressionValidator validator = new CronExpressionValidator();
-
         if ( config.getManagedRepositoriesAsMap().containsKey( repoId ) )
         {
             throw new RepositoryAdminException( "Unable to add new repository with id [" + repoId
                                                     + "], that id already exists as a managed repository." );
         }
-        else if ( config.getRemoteRepositoriesAsMap().containsKey( repoId ) )
-        {
-            throw new RepositoryAdminException( "Unable to add new repository with id [" + repoId
-                                                    + "], that id already exists as a remote repository." );
-        }
         else if ( config.getRepositoryGroupsAsMap().containsKey( repoId ) )
         {
             throw new RepositoryAdminException( "Unable to add new repository with id [" + repoId
                                                     + "], that id already exists as a repository group." );
         }
 
-        if ( !validator.validate( cronExpression ) )
+        // FIXME : olamy can be empty to avoid scheduled scan ?
+        if ( StringUtils.isNotBlank( cronExpression ) )
         {
-            throw new RepositoryAdminException( "Invalid cron expression." );
+            CronExpressionValidator validator = new CronExpressionValidator();
+
+            if ( !validator.validate( cronExpression ) )
+            {
+                throw new RepositoryAdminException( "Invalid cron expression." );
+            }
         }
 
+        // FIXME checKid non empty
+
         if ( !GenericValidator.matchRegexp( repoId, REPOSITORY_ID_VALID_EXPRESSION ) )
         {
             throw new RepositoryAdminException(
                 "Invalid repository ID. Identifier must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
         }
 
+        if ( StringUtils.isBlank( name ) )
+        {
+            throw new RepositoryAdminException( "repository name cannot be empty" );
+        }
+
         if ( !GenericValidator.matchRegexp( name, REPOSITORY_NAME_VALID_EXPRESSION ) )
         {
             throw new RepositoryAdminException(
@@ -232,6 +232,13 @@ public class DefaultManagedRepositoryAdmin
         return null;  //To change body of implemented methods use File | Settings | File Templates.
     }
 
+
+    public Boolean deleteManagedRepository( String repositoryId )
+        throws RepositoryAdminException
+    {
+        return null;  //To change body of implemented methods use File | Settings | File Templates.
+    }
+
     //--------------------------
     // utils methods
     //--------------------------
index 753dfa522f27cba8d8a8ba254ac7dd8053c34828..59498113c1673efea7eb6b5785bbf0e52c1a4eb3 100644 (file)
@@ -20,6 +20,8 @@ package org.apache.archiva.admin.repository.managed;
 
 import junit.framework.TestCase;
 import org.junit.runner.RunWith;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.test.context.ContextConfiguration;
 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
 
@@ -31,5 +33,8 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
 public abstract class AbstractRepositoryAdminTest
     extends TestCase
 {
+    protected Logger log = LoggerFactory.getLogger( getClass() );
+
+    public static final String APPSERVER_BASE_PATH = System.getProperty( "appserver.base" );
     // no op
 }
index 907c4145edc212811895d2e84093a2ee25672b4f..9e01fc2b9a387b922e82bd4b27f37867186e5e85 100644 (file)
@@ -18,6 +18,7 @@ package org.apache.archiva.admin.repository.managed;
  * under the License.
  */
 
+import org.apache.commons.lang.StringUtils;
 import org.junit.Test;
 
 import javax.inject.Inject;
@@ -40,6 +41,13 @@ public class ManagedRepositoryAdminTest
         List<ManagedRepository> repos = managedRepositoryAdmin.getManagedRepositories();
         assertNotNull( repos );
         assertTrue( repos.size() > 0 );
+        log.info( "repos " + repos );
+
+        // check default internal
+        ManagedRepository internal = findManagedRepoById( repos, "internal" );
+        assertNotNull( internal );
+        assertTrue( internal.isReleases() );
+        assertFalse( internal.isSnapshots() );
     }
 
     @Test
@@ -50,4 +58,38 @@ public class ManagedRepositoryAdminTest
         assertNotNull( repo );
     }
 
+    @Test
+    public void addManagedRepo()
+        throws Exception
+    {
+        List<ManagedRepository> repos = managedRepositoryAdmin.getManagedRepositories();
+        assertNotNull( repos );
+        int initialSize = repos.size();
+        assertTrue( initialSize > 0 );
+
+        ManagedRepository repo = new ManagedRepository();
+        repo.setId( "test-new-one" );
+        repo.setName( "test repo" );
+        repo.setUrl( APPSERVER_BASE_PATH + repo.getId() );
+        managedRepositoryAdmin.addManagedRepository( repo, false );
+        repos = managedRepositoryAdmin.getManagedRepositories();
+        assertNotNull( repos );
+        assertEquals( initialSize + 1, repos.size() );
+
+        assertNotNull( managedRepositoryAdmin.getManagedRepository( "test-new-one" ) );
+    }
+
+
+    private ManagedRepository findManagedRepoById( List<ManagedRepository> repos, String id )
+    {
+        for ( ManagedRepository repo : repos )
+        {
+            if ( StringUtils.equals( id, repo.getId() ) )
+            {
+                return repo;
+            }
+        }
+        return null;
+    }
+
 }