]> source.dussan.org Git - archiva.git/blob
c4ea859cc5c913969a8957c011a9fbc8d61943da
[archiva.git] /
1 package org.apache.maven.repository.proxy.configuration;\r
2 \r
3 /*\r
4  * Copyright 2005-2006 The Apache Software Foundation.\r
5  *\r
6  * Licensed under the Apache License, Version 2.0 (the "License");\r
7  * you may not use this file except in compliance with the License.\r
8  * You may obtain a copy of the License at\r
9  *\r
10  *      http://www.apache.org/licenses/LICENSE-2.0\r
11  *\r
12  * Unless required by applicable law or agreed to in writing, software\r
13  * distributed under the License is distributed on an "AS IS" BASIS,\r
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
15  * See the License for the specific language governing permissions and\r
16  * limitations under the License.\r
17  */\r
18 \r
19 import org.apache.maven.artifact.repository.ArtifactRepository;\r
20 import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;\r
21 import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout;\r
22 import org.apache.maven.artifact.repository.layout.LegacyRepositoryLayout;\r
23 import org.apache.maven.repository.proxy.repository.ProxyRepository;\r
24 import org.codehaus.plexus.PlexusTestCase;\r
25 import org.codehaus.plexus.util.FileUtils;\r
26 \r
27 import java.io.File;\r
28 import java.io.IOException;\r
29 import java.util.ArrayList;\r
30 import java.util.Iterator;\r
31 import java.util.List;\r
32 \r
33 public class ProxyConfigurationTest\r
34     extends PlexusTestCase\r
35 {\r
36     private ProxyConfiguration config;\r
37 \r
38     protected void setUp()\r
39         throws Exception\r
40     {\r
41         super.setUp();\r
42 \r
43         config = (ProxyConfiguration) container.lookup( ProxyConfiguration.ROLE );\r
44     }\r
45 \r
46     public void testBrowsable()\r
47     {\r
48         assertFalse( config.isBrowsable() );\r
49         config.setBrowsable( true );\r
50         assertTrue( config.isBrowsable() );\r
51     }\r
52 \r
53     public void testRepositoryCache()\r
54     {\r
55         File cacheFile = new File( "target/proxy-cache" );\r
56         config.setRepositoryCachePath( cacheFile.getAbsolutePath() );\r
57         ArtifactRepository cache = config.getRepositoryCache();\r
58         assertEquals( cacheFile.getAbsolutePath(), cache.getBasedir() );\r
59         assertEquals( config.getRepositoryCachePath(), cache.getBasedir() );\r
60     }\r
61 \r
62     public void testRepositories()\r
63     {\r
64         ArtifactRepositoryLayout defLayout = new DefaultRepositoryLayout();\r
65         ProxyRepository repo1 = new ProxyRepository( "repo1", "http://www.ibiblio.org/maven2", defLayout );\r
66         config.addRepository( repo1 );\r
67         assertEquals( 1, config.getRepositories().size() );\r
68 \r
69         ArtifactRepositoryLayout legacyLayout = new LegacyRepositoryLayout();\r
70         ProxyRepository repo2 = new ProxyRepository( "repo2", "http://www.ibiblio.org/maven", legacyLayout );\r
71         config.addRepository( repo2 );\r
72         assertEquals( 2, config.getRepositories().size() );\r
73 \r
74         List repositories = config.getRepositories();\r
75         ProxyRepository repo = (ProxyRepository) repositories.get( 0 );\r
76         assertEquals( repo1, repo );\r
77 \r
78         repo = (ProxyRepository) repositories.get( 1 );\r
79         assertEquals( repo2, repo );\r
80 \r
81         try\r
82         {\r
83             repositories.add( new ProxyRepository( "repo", "url", defLayout ) );\r
84             fail( "Expected UnsupportedOperationException not thrown." );\r
85         }\r
86         catch ( java.lang.UnsupportedOperationException e )\r
87         {\r
88             assertTrue( true );\r
89         }\r
90 \r
91         repositories = new ArrayList();\r
92         repositories.add( repo1 );\r
93         repositories.add( repo2 );\r
94         config.setRepositories( repositories );\r
95         assertEquals( repositories, config.getRepositories() );\r
96     }\r
97 \r
98     public void testLoadValidMavenProxyConfiguration()\r
99         throws ValidationException, IOException\r
100     {\r
101         //must create the test directory bec configuration is using relative path which varies\r
102         FileUtils.mkdir( "target/remote-repo1" );\r
103 \r
104         try\r
105         {\r
106             File confFile = getTestFile( "src/test/conf/maven-proxy-complete.conf" );\r
107 \r
108             config.loadMavenProxyConfiguration( confFile );\r
109 \r
110             assertTrue( config.getRepositoryCachePath().endsWith( "target" ) );\r
111 \r
112             assertEquals( "Count repositories", 4, config.getRepositories().size() );\r
113 \r
114             for ( Iterator repos = config.getRepositories().iterator(); repos.hasNext(); )\r
115             {\r
116                 ProxyRepository repo = (ProxyRepository) repos.next();\r
117 \r
118                 if ( "local-repo".equals( repo.getKey() ) )\r
119                 {\r
120                     assertEquals( "file:///./target/remote-repo1", repo.getUrl() );\r
121                 }\r
122                 else if ( "www-ibiblio-org".equals( repo.getKey() ) )\r
123                 {\r
124                     assertEquals( "http://www.ibiblio.org/maven2", repo.getUrl() );\r
125                 }\r
126                 else if ( "dist-codehaus-org".equals( repo.getKey() ) )\r
127                 {\r
128                     assertEquals( "http://dist.codehaus.org", repo.getUrl() );\r
129                 }\r
130                 else if ( "private-example-com".equals( repo.getKey() ) )\r
131                 {\r
132                     assertEquals( "http://private.example.com/internal", repo.getUrl() );\r
133                 }\r
134             }\r
135         }\r
136         //make sure to delete the test directory after tests\r
137         finally\r
138         {\r
139             FileUtils.deleteDirectory( "target/remote-repo1" );\r
140         }\r
141     }\r
142 \r
143     protected void tearDown()\r
144         throws Exception\r
145     {\r
146         config = null;\r
147 \r
148         super.tearDown();\r
149     }\r
150 }