]> source.dussan.org Git - archiva.git/blob
66ee8acf6e9ec6b0f584f9b1de4c7a7f69d9898d
[archiva.git] /
1 package org.apache.archiva.admin.repository;
2 /*
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  */
20
21 import junit.framework.TestCase;
22 import org.apache.archiva.admin.mock.MockAuditListener;
23 import org.apache.archiva.admin.model.AuditInformation;
24 import org.apache.archiva.admin.model.beans.ManagedRepository;
25 import org.apache.archiva.admin.model.beans.RemoteRepository;
26 import org.apache.archiva.admin.model.managed.ManagedRepositoryAdmin;
27 import org.apache.archiva.admin.model.proxyconnector.ProxyConnectorAdmin;
28 import org.apache.archiva.admin.model.remote.RemoteRepositoryAdmin;
29 import org.apache.archiva.redback.users.User;
30 import org.apache.commons.io.FileUtils;
31 import org.apache.commons.lang.StringUtils;
32 import org.apache.archiva.redback.role.RoleManager;
33 import org.apache.archiva.redback.users.memory.SimpleUser;
34 import org.junit.runner.RunWith;
35 import org.slf4j.Logger;
36 import org.slf4j.LoggerFactory;
37 import org.springframework.test.context.ContextConfiguration;
38
39 import javax.inject.Inject;
40 import java.io.File;
41 import java.util.List;
42 import org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner;
43
44 /**
45  * @author Olivier Lamy
46  */
47 @RunWith( ArchivaSpringJUnit4ClassRunner.class )
48 @ContextConfiguration( locations = { "classpath*:/META-INF/spring-context.xml", "classpath:/spring-context.xml" } )
49 public abstract class AbstractRepositoryAdminTest
50     extends TestCase
51 {
52     protected Logger log = LoggerFactory.getLogger( getClass() );
53
54     public static final String APPSERVER_BASE_PATH = AbstractRepositoryAdminTest.fixPath( System.getProperty( "appserver.base" ) );
55
56     @Inject
57     protected MockAuditListener mockAuditListener;
58
59     @Inject
60     protected RoleManager roleManager;
61
62     @Inject
63     protected RemoteRepositoryAdmin remoteRepositoryAdmin;
64
65     @Inject
66     protected ManagedRepositoryAdmin managedRepositoryAdmin;
67
68     @Inject
69     protected ProxyConnectorAdmin proxyConnectorAdmin;
70
71     protected AuditInformation getFakeAuditInformation()
72     {
73         AuditInformation auditInformation = new AuditInformation( getFakeUser(), "archiva-localhost" );
74         return auditInformation;
75     }
76     
77    // make a nice repo path to allow unit test to run
78     private static String fixPath ( String path ) 
79     {
80         String SPACE = " ";
81         if ( path.contains( SPACE ) )
82         {
83             LoggerFactory.getLogger( AbstractRepositoryAdminTest.class.getName() ).error( 
84                     "You are building and testing  with {appserver.base}: \n " + path + " containing space. Consider relocating." );
85         }
86         return path.replaceAll( SPACE, "&20");
87     }
88     
89     protected User getFakeUser()
90     {
91         SimpleUser user = new SimpleUser()
92         {
93             @Override
94             public Object getPrincipal()
95             {
96                 return "root";
97             }
98
99         };
100
101         user.setUsername( "root" );
102         user.setFullName( "The top user" );
103         return user;
104     }
105
106     protected ManagedRepository getTestManagedRepository( String repoId, String repoLocation )
107     {
108         return new ManagedRepository( repoId, "test repo", repoLocation, "default", false, true, true, "0 0 * * * ?",
109                                       repoLocation + "/.index", false, 1, 2, true, false );
110     }
111
112     protected File clearRepoLocation( String path )
113         throws Exception
114     {
115         File repoDir = new File( path );
116         if ( repoDir.exists() )
117         {
118             FileUtils.deleteDirectory( repoDir );
119         }
120         assertFalse( repoDir.exists() );
121         return repoDir;
122     }
123
124     protected ManagedRepository findManagedRepoById( List<ManagedRepository> repos, String id )
125     {
126         for ( ManagedRepository repo : repos )
127         {
128             if ( StringUtils.equals( id, repo.getId() ) )
129             {
130                 return repo;
131             }
132         }
133         return null;
134     }
135
136     protected RemoteRepository getRemoteRepository()
137     {
138         return getRemoteRepository( "foo" );
139     }
140
141     protected RemoteRepository getRemoteRepository(String id)
142     {
143         RemoteRepository remoteRepository = new RemoteRepository();
144         remoteRepository.setUrl( "http://foo.com/maven-it-rocks" );
145         remoteRepository.setTimeout( 10 );
146         remoteRepository.setName( "maven foo" );
147         remoteRepository.setUserName( "foo-name" );
148         remoteRepository.setPassword( "toto" );
149         remoteRepository.setId( id );
150         remoteRepository.setRemoteDownloadNetworkProxyId( "foo" );
151         remoteRepository.setDescription( "cool apache repo" );
152         return remoteRepository;
153     }
154 }