package org.apache.archiva.configuration;
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
import java.util.Arrays;
import java.util.HashSet;
import java.util.Map;
import org.apache.archiva.test.utils.ArchivaBlockJUnit4ClassRunner;
import static org.junit.Assert.*;
import org.junit.Test;
import org.junit.runner.RunWith;
/**
* Test the generated Configuration class from Modello. This is primarily to test the hand coded methods.
*/
@RunWith( ArchivaBlockJUnit4ClassRunner.class )
public class ConfigurationTest
{
private Configuration configuration = new Configuration();
@Test
public void testNetworkProxyRetrieval()
{
NetworkProxyConfiguration proxy1 = createNetworkProxy( "id1", "host1", 8080 );
configuration.addNetworkProxy( proxy1 );
NetworkProxyConfiguration proxy2 = createNetworkProxy( "id2", "host2", 9090 );
configuration.addNetworkProxy( proxy2 );
Map<String, NetworkProxyConfiguration> map = configuration.getNetworkProxiesAsMap();
assertNotNull( map );
assertEquals( 2, map.size() );
assertEquals( new HashSet<String>( Arrays.asList( "id1", "id2" ) ), map.keySet() );
assertEquals( new HashSet<NetworkProxyConfiguration>( Arrays.asList( proxy1, proxy2 ) ),
new HashSet<NetworkProxyConfiguration>( map.values() ) );
}
private NetworkProxyConfiguration createNetworkProxy( String id, String host, int port )
{
NetworkProxyConfiguration proxy = new NetworkProxyConfiguration();
proxy.setId( id );
proxy.setHost( host );
proxy.setPort( port );
proxy.setProtocol( "http" );
return proxy;
}
@Test
public void testRemoteRepositoryRetrieval()
{
RemoteRepositoryConfiguration repo1 = createRemoteRepository( "id1", "name 1", "url 1" );
configuration.addRemoteRepository( repo1 );
RemoteRepositoryConfiguration repo2 = createRemoteRepository( "id2", "name 2", "url 2" );
configuration.addRemoteRepository( repo2 );
Map<String, RemoteRepositoryConfiguration> map = configuration.getRemoteRepositoriesAsMap();
assertNotNull( map );
assertEquals( 2, map.size() );
assertEquals( new HashSet<String>( Arrays.asList( "id1", "id2" ) ), map.keySet() );
assertEquals( new HashSet<RemoteRepositoryConfiguration>( Arrays.asList( repo1, repo2 ) ),
new HashSet<RemoteRepositoryConfiguration>( map.values() ) );
assertEquals( repo1, configuration.findRemoteRepositoryById( "id1" ) );
assertEquals( repo2, configuration.findRemoteRepositoryById( "id2" ) );
assertNull( configuration.findRemoteRepositoryById( "id3" ) );
}
private RemoteRepositoryConfiguration createRemoteRepository( String id, String name, String url )
{
RemoteRepositoryConfiguration repo = new RemoteRepositoryConfiguration();
repo.setId( id );
repo.setName( name );
repo.setLayout( "default" );
repo.setUrl( url );
return repo;
}
@Test
public void testManagedRepositoryRetrieval()
{
ManagedRepositoryConfiguration repo1 = createManagedRepository( "id1", "name 1", "path 1", false );
configuration.addManagedRepository( repo1 );
ManagedRepositoryConfiguration repo2 = createManagedRepository( "id2", "name 2", "path 2", true );
configuration.addManagedRepository( repo2 );
Map<String, ManagedRepositoryConfiguration> map = configuration.getManagedRepositoriesAsMap();
assertNotNull( map );
assertEquals( 2, map.size() );
assertEquals( new HashSet<String>( Arrays.asList( "id1", "id2" ) ), map.keySet() );
assertEquals( new HashSet<ManagedRepositoryConfiguration>( Arrays.asList( repo1, repo2 ) ),
new HashSet<ManagedRepositoryConfiguration>( map.values() ) );
assertEquals( repo1, configuration.findManagedRepositoryById( "id1" ) );
assertEquals( repo2, configuration.findManagedRepositoryById( "id2" ) );
assertNull( configuration.findManagedRepositoryById( "id3" ) );
}
private ManagedRepositoryConfiguration createManagedRepository( String id, String name, String location,
boolean scanned )
{
ManagedRepositoryConfiguration repo = new ManagedRepositoryConfiguration();
repo.setId( id );
repo.setName( name );
repo.setLocation( location );
repo.setScanned( scanned );
return repo;
}
@Test
public void testNetworkProxyRetrievalWhenEmpty()
{
Map<String, NetworkProxyConfiguration> map = configuration.getNetworkProxiesAsMap();
assertNotNull( map );
assertTrue( map.isEmpty() );
}
@Test
public void testRemoteRepositoryRetrievalWhenEmpty()
{
Map<String, RemoteRepositoryConfiguration> map = configuration.getRemoteRepositoriesAsMap();
assertNotNull( map );
assertTrue( map.isEmpty() );
assertNull( configuration.findRemoteRepositoryById( "id" ) );
}
@Test
public void testManagedRepositoryRetrievalWhenEmpty()
{
Map<String, ManagedRepositoryConfiguration> map = configuration.getManagedRepositoriesAsMap();
assertNotNull( map );
assertTrue( map.isEmpty() );
assertNull( configuration.findManagedRepositoryById( "id" ) );
}
}