]> source.dussan.org Git - archiva.git/blob
cf0c112450afe2945acfc6cdba4614424f0beb19
[archiva.git] /
1 package org.apache.archiva.configuration.functors;
2
3 /*
4  * Licensed to the Apache Software Foundation (ASF) under one
5  * or more contributor license agreements.  See the NOTICE file
6  * distributed with this work for additional information
7  * regarding copyright ownership.  The ASF licenses this file
8  * to you under the Apache License, Version 2.0 (the
9  * "License"); you may not use this file except in compliance
10  * with the License.  You may obtain a copy of the License at
11  *
12  *  http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing,
15  * software distributed under the License is distributed on an
16  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17  * KIND, either express or implied.  See the License for the
18  * specific language governing permissions and limitations
19  * under the License.
20  */
21
22 import org.apache.archiva.configuration.ProxyConnectorConfiguration;
23 import org.apache.commons.lang.StringUtils;
24
25 import java.util.ArrayList;
26 import java.util.Collections;
27 import java.util.List;
28
29 import junit.framework.TestCase;
30
31 /**
32  * ProxyConnectorConfigurationOrderComparatorTest 
33  *
34  * @version $Id$
35  */
36 public class ProxyConnectorConfigurationOrderComparatorTest
37     extends TestCase
38 {
39     public void testSortOfAllZeros()
40     {
41         List<ProxyConnectorConfiguration> proxies = new ArrayList<ProxyConnectorConfiguration>();
42
43         proxies.add( createConnector( "corporate", 0 ) );
44         proxies.add( createConnector( "snapshots", 0 ) );
45         proxies.add( createConnector( "3rdparty", 0 ) );
46         proxies.add( createConnector( "sandbox", 0 ) );
47
48         Collections.sort( proxies, ProxyConnectorConfigurationOrderComparator.getInstance() );
49
50         assertProxyOrder( new String[] { "corporate", "snapshots", "3rdparty", "sandbox" }, proxies );
51     }
52
53     public void testSortNormal()
54     {
55         List<ProxyConnectorConfiguration> proxies = new ArrayList<ProxyConnectorConfiguration>();
56
57         proxies.add( createConnector( "corporate", 3 ) );
58         proxies.add( createConnector( "snapshots", 1 ) );
59         proxies.add( createConnector( "3rdparty", 2 ) );
60         proxies.add( createConnector( "sandbox", 4 ) );
61
62         Collections.sort( proxies, new ProxyConnectorConfigurationOrderComparator() );
63
64         assertProxyOrder( new String[] { "snapshots", "3rdparty", "corporate", "sandbox" }, proxies );
65     }
66
67     public void testSortPartial()
68     {
69         List<ProxyConnectorConfiguration> proxies = new ArrayList<ProxyConnectorConfiguration>();
70
71         proxies.add( createConnector( "corporate", 3 ) );
72         proxies.add( createConnector( "snapshots", 0 ) );
73         proxies.add( createConnector( "3rdparty", 2 ) );
74         proxies.add( createConnector( "sandbox", 0 ) );
75
76         Collections.sort( proxies, new ProxyConnectorConfigurationOrderComparator() );
77
78         assertProxyOrder( new String[] { "3rdparty", "corporate", "snapshots", "sandbox" }, proxies );
79     }
80
81     private void assertProxyOrder( String[] ids, List<ProxyConnectorConfiguration> proxies )
82     {
83         assertEquals( "Proxies.size() == ids.length", ids.length, proxies.size() );
84
85         int orderFailedAt = -1;
86
87         for ( int i = 0; i < ids.length; i++ )
88         {
89             if ( !StringUtils.equals( ids[i], proxies.get( i ).getProxyId() ) )
90             {
91                 orderFailedAt = i;
92                 break;
93             }
94         }
95
96         if ( orderFailedAt >= 0 )
97         {
98             StringBuffer msg = new StringBuffer();
99
100             msg.append( "Failed expected order of the proxies <" );
101             msg.append( StringUtils.join( ids, ", " ) );
102             msg.append( ">, actual <" );
103
104             boolean needsComma = false;
105             for ( ProxyConnectorConfiguration proxy : proxies )
106             {
107                 if ( needsComma )
108                 {
109                     msg.append( ", " );
110                 }
111                 msg.append( proxy.getProxyId() );
112                 needsComma = true;
113             }
114             msg.append( "> failure at index <" ).append( orderFailedAt ).append( ">." );
115
116             fail( msg.toString() );
117         }
118     }
119
120     private ProxyConnectorConfiguration createConnector( String id, int order )
121     {
122         ProxyConnectorConfiguration proxy = new ProxyConnectorConfiguration();
123         proxy.setProxyId( id );
124         proxy.setOrder( order );
125         proxy.setSourceRepoId( id + "_m" );
126         proxy.setTargetRepoId( id + "_r" );
127
128         return proxy;
129     }
130 }