]> source.dussan.org Git - archiva.git/blob
3900c02787a92582be27995ae8dfcf4d57b73e5c
[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 \r
26 import java.io.File;\r
27 import java.io.IOException;\r
28 import java.util.ArrayList;\r
29 import java.util.Iterator;\r
30 import java.util.List;\r
31 \r
32 public class ProxyConfigurationTest\r
33     extends PlexusTestCase\r
34 {\r
35     private ProxyConfiguration config;\r
36 \r
37     protected void setUp()\r
38         throws Exception\r
39     {\r
40         super.setUp();\r
41 \r
42         config = (ProxyConfiguration) container.lookup( ProxyConfiguration.ROLE );\r
43     }\r
44 \r
45     public void testBrowsable()\r
46     {\r
47         assertFalse( config.isBrowsable() );\r
48         config.setBrowsable( true );\r
49         assertTrue( config.isBrowsable() );\r
50     }\r
51 \r
52     public void testRepositoryCache()\r
53     {\r
54         File cacheFile = new File( "target/proxy-cache" );\r
55         config.setRepositoryCachePath( cacheFile.getAbsolutePath() );\r
56         ArtifactRepository cache = config.getRepositoryCache();\r
57         assertEquals( cacheFile.getAbsolutePath(), cache.getBasedir() );\r
58         assertEquals( config.getRepositoryCachePath(), cache.getBasedir() );\r
59     }\r
60 \r
61     public void testRepositories()\r
62     {\r
63         ArtifactRepositoryLayout defLayout = new DefaultRepositoryLayout();\r
64         ProxyRepository repo1 = new ProxyRepository( "repo1", "http://www.ibiblio.org/maven2", defLayout );\r
65         config.addRepository( repo1 );\r
66         assertEquals( 1, config.getRepositories().size() );\r
67 \r
68         ArtifactRepositoryLayout legacyLayout = new LegacyRepositoryLayout();\r
69         ProxyRepository repo2 = new ProxyRepository( "repo2", "http://www.ibiblio.org/maven", legacyLayout );\r
70         config.addRepository( repo2 );\r
71         assertEquals( 2, config.getRepositories().size() );\r
72 \r
73         List repositories = config.getRepositories();\r
74         ProxyRepository repo = (ProxyRepository) repositories.get( 0 );\r
75         assertEquals( repo1, repo );\r
76 \r
77         repo = (ProxyRepository) repositories.get( 1 );\r
78         assertEquals( repo2, repo );\r
79 \r
80         try\r
81         {\r
82             repositories.add( new ProxyRepository( "repo", "url", defLayout ) );\r
83             fail( "Expected UnsupportedOperationException not thrown." );\r
84         }\r
85         catch ( java.lang.UnsupportedOperationException e )\r
86         {\r
87             assertTrue( true );\r
88         }\r
89 \r
90         repositories = new ArrayList();\r
91         repositories.add( repo1 );\r
92         repositories.add( repo2 );\r
93         config.setRepositories( repositories );\r
94         assertEquals( repositories, config.getRepositories() );\r
95     }\r
96 \r
97     public void testLoadValidMavenProxyConfiguration()\r
98         throws ValidationException, IOException\r
99     {\r
100         File confFile = new File( "src/test/conf/maven-proxy-complete.conf" );\r
101 \r
102         config.loadMavenProxyConfiguration( confFile );\r
103 \r
104         assertTrue( config.getRepositoryCachePath().endsWith( "target" ) );\r
105 \r
106         assertEquals( "Count repositories", 4, config.getRepositories().size() );\r
107 \r
108         for ( Iterator repos = config.getRepositories().iterator(); repos.hasNext(); )\r
109         {\r
110             ProxyRepository repo = (ProxyRepository) repos.next();\r
111 \r
112             if ( "local-repo".equals( repo.getKey() ) )\r
113             {\r
114                 assertEquals( "file:///./src/test/remote-repo1", repo.getUrl() );\r
115             }\r
116             else if ( "www-ibiblio-org".equals( repo.getKey() ) )\r
117             {\r
118                 assertEquals( "http://www.ibiblio.org/maven2", repo.getUrl() );\r
119             }\r
120             else if ( "dist-codehaus-org".equals( repo.getKey() ) )\r
121             {\r
122                 assertEquals( "http://dist.codehaus.org", repo.getUrl() );\r
123             }\r
124             else if ( "private-example-com".equals( repo.getKey() ) )\r
125             {\r
126                 assertEquals( "http://private.example.com/internal", repo.getUrl() );\r
127             }\r
128         }\r
129     }\r
130 \r
131     protected void tearDown()\r
132         throws Exception\r
133     {\r
134         config = null;\r
135 \r
136         super.tearDown();\r
137     }\r
138 }