]> source.dussan.org Git - archiva.git/blob
34d350a686ad50cd68c0ebe9bed1802da76dc5a4
[archiva.git] /
1 package org.apache.maven.repository.configuration;
2
3 import org.codehaus.plexus.PlexusTestCase;
4 import org.easymock.MockControl;
5
6 import java.io.File;
7 import java.util.Properties;
8
9 /*
10  * Copyright 2005-2006 The Apache Software Foundation.
11  *
12  * Licensed under the Apache License, Version 2.0 (the "License");
13  * you may not use this file except in compliance with the License.
14  * You may obtain a copy of the License at
15  *
16  *     http://www.apache.org/licenses/LICENSE-2.0
17  *
18  * Unless required by applicable law or agreed to in writing, software
19  * distributed under the License is distributed on an "AS IS" BASIS,
20  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21  * See the License for the specific language governing permissions and
22  * limitations under the License.
23  */
24
25 /**
26  * Test the configuration store.
27  *
28  * @author <a href="mailto:brett@apache.org">Brett Porter</a>
29  * @noinspection JavaDoc
30  */
31 public class ConfigurationStoreTest
32     extends PlexusTestCase
33 {
34     public void testInvalidFile()
35         throws Exception
36     {
37         ConfigurationStore configurationStore = (ConfigurationStore) lookup( ConfigurationStore.ROLE, "invalid-file" );
38
39         Configuration configuration = configurationStore.getConfigurationFromStore();
40
41         // check default configuration
42         assertNotNull( "check configuration returned", configuration );
43         assertEquals( "check configuration has default elements", "0 0 * * * ?",
44                       configuration.getIndexerCronExpression() );
45         assertNull( "check configuration has default elements", configuration.getIndexPath() );
46         assertTrue( "check configuration has default elements", configuration.getRepositories().isEmpty() );
47     }
48
49     public void testCorruptFile()
50         throws Exception
51     {
52         ConfigurationStore configurationStore = (ConfigurationStore) lookup( ConfigurationStore.ROLE, "corrupt-file" );
53
54         try
55         {
56             configurationStore.getConfigurationFromStore();
57             fail( "Configuration should not have succeeded" );
58         }
59         catch ( ConfigurationStoreException e )
60         {
61             // expected
62             assertTrue( true );
63         }
64     }
65
66     public void testGetConfiguration()
67         throws Exception
68     {
69         ConfigurationStore configurationStore = (ConfigurationStore) lookup( ConfigurationStore.ROLE, "default" );
70
71         Configuration configuration = configurationStore.getConfigurationFromStore();
72
73         assertEquals( "check indexPath", ".index", configuration.getIndexPath() );
74         assertEquals( "check localRepository", "local-repository", configuration.getLocalRepository() );
75
76         assertEquals( "check managed repositories", 1, configuration.getRepositories().size() );
77         RepositoryConfiguration repository =
78             (RepositoryConfiguration) configuration.getRepositories().iterator().next();
79
80         assertEquals( "check managed repositories", "managed-repository", repository.getDirectory() );
81         assertEquals( "check managed repositories", "local", repository.getName() );
82         assertEquals( "check managed repositories", "local", repository.getId() );
83         assertEquals( "check managed repositories", "default", repository.getLayout() );
84         assertTrue( "check managed repositories", repository.isIndexed() );
85
86         assertEquals( "check proxied repositories", 1, configuration.getProxiedRepositories().size() );
87         ProxiedRepositoryConfiguration proxiedRepository =
88             (ProxiedRepositoryConfiguration) configuration.getProxiedRepositories().iterator().next();
89
90         assertEquals( "check proxied repositories", "local", proxiedRepository.getManagedRepository() );
91         assertEquals( "check proxied repositories", "http://www.ibiblio.org/maven2/", proxiedRepository.getUrl() );
92         assertEquals( "check proxied repositories", "ibiblio", proxiedRepository.getId() );
93         assertEquals( "check proxied repositories", "Ibiblio", proxiedRepository.getName() );
94         assertEquals( "check proxied repositories", 0, proxiedRepository.getSnapshotsInterval() );
95         assertEquals( "check proxied repositories", 0, proxiedRepository.getReleasesInterval() );
96         assertTrue( "check proxied repositories", proxiedRepository.isUseNetworkProxy() );
97
98         assertEquals( "check synced repositories", 1, configuration.getSyncedRepositories().size() );
99         SyncedRepositoryConfiguration syncedRepository =
100             (SyncedRepositoryConfiguration) configuration.getSyncedRepositories().iterator().next();
101
102         assertEquals( "check synced repositories", "local", syncedRepository.getManagedRepository() );
103         assertEquals( "check synced repositories", "apache", syncedRepository.getId() );
104         assertEquals( "check synced repositories", "ASF", syncedRepository.getName() );
105         assertEquals( "check synced repositories", "0 0 * * * ?", syncedRepository.getCronExpression() );
106         assertEquals( "check synced repositories", "rsync", syncedRepository.getMethod() );
107         Properties properties = new Properties();
108         properties.setProperty( "rsyncHost", "host" );
109         properties.setProperty( "rsyncMethod", "ssh" );
110         assertEquals( "check synced repositories", properties, syncedRepository.getProperties() );
111     }
112
113     public void testStoreConfiguration()
114         throws Exception
115     {
116         ConfigurationStore configurationStore = (ConfigurationStore) lookup( ConfigurationStore.ROLE, "save-file" );
117
118         Configuration configuration = new Configuration();
119         configuration.setIndexPath( "index-path" );
120
121         File file = getTestFile( "target/test/test-file.xml" );
122         file.delete();
123         assertFalse( file.exists() );
124
125         configurationStore.storeConfiguration( configuration );
126
127         assertTrue( "Check file exists", file.exists() );
128
129         // read it back
130         configuration = configurationStore.getConfigurationFromStore();
131         assertEquals( "check value", "index-path", configuration.getIndexPath() );
132     }
133
134     /**
135      * @noinspection JUnitTestMethodWithNoAssertions
136      */
137     public void testChangeListeners()
138         throws Exception
139     {
140         ConfigurationStore configurationStore = (ConfigurationStore) lookup( ConfigurationStore.ROLE, "save-file" );
141
142         MockControl control = MockControl.createControl( ConfigurationChangeListener.class );
143         ConfigurationChangeListener mock = (ConfigurationChangeListener) control.getMock();
144         configurationStore.addChangeListener( mock );
145
146         Configuration configuration = new Configuration();
147         mock.notifyOfConfigurationChange( configuration );
148         control.replay();
149
150         configurationStore.storeConfiguration( configuration );
151
152         control.verify();
153     }
154 }