]> source.dussan.org Git - archiva.git/blob
5eb3ab857053f2f5bd5792fbdcb408e8145ae54a
[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 junit.framework.TestCase;
23 import org.apache.archiva.configuration.ProxyConnectorConfiguration;
24 import org.apache.commons.lang.StringUtils;
25
26 import java.util.ArrayList;
27 import java.util.Collections;
28 import java.util.List;
29
30 /**
31  * ProxyConnectorConfigurationOrderComparatorTest
32  *
33  * @version $Id$
34  */
35 public class ProxyConnectorConfigurationOrderComparatorTest
36     extends TestCase
37 {
38     public void testSortOfAllZeros()
39     {
40         List<ProxyConnectorConfiguration> proxies = new ArrayList<ProxyConnectorConfiguration>();
41
42         proxies.add( createConnector( "corporate", 0 ) );
43         proxies.add( createConnector( "snapshots", 0 ) );
44         proxies.add( createConnector( "3rdparty", 0 ) );
45         proxies.add( createConnector( "sandbox", 0 ) );
46
47         Collections.sort( proxies, ProxyConnectorConfigurationOrderComparator.getInstance() );
48
49         assertProxyOrder( new String[]{ "corporate", "snapshots", "3rdparty", "sandbox" }, proxies );
50     }
51
52     public void testSortNormal()
53     {
54         List<ProxyConnectorConfiguration> proxies = new ArrayList<ProxyConnectorConfiguration>();
55
56         proxies.add( createConnector( "corporate", 3 ) );
57         proxies.add( createConnector( "snapshots", 1 ) );
58         proxies.add( createConnector( "3rdparty", 2 ) );
59         proxies.add( createConnector( "sandbox", 4 ) );
60
61         Collections.sort( proxies, new ProxyConnectorConfigurationOrderComparator() );
62
63         assertProxyOrder( new String[]{ "snapshots", "3rdparty", "corporate", "sandbox" }, proxies );
64     }
65
66     public void testSortPartial()
67     {
68         List<ProxyConnectorConfiguration> proxies = new ArrayList<ProxyConnectorConfiguration>();
69
70         proxies.add( createConnector( "corporate", 3 ) );
71         proxies.add( createConnector( "snapshots", 0 ) );
72         proxies.add( createConnector( "3rdparty", 2 ) );
73         proxies.add( createConnector( "sandbox", 0 ) );
74
75         Collections.sort( proxies, new ProxyConnectorConfigurationOrderComparator() );
76
77         assertProxyOrder( new String[]{ "3rdparty", "corporate", "snapshots", "sandbox" }, proxies );
78     }
79
80     private void assertProxyOrder( String[] ids, List<ProxyConnectorConfiguration> proxies )
81     {
82         assertEquals( "Proxies.size() == ids.length", ids.length, proxies.size() );
83
84         int orderFailedAt = -1;
85
86         for ( int i = 0; i < ids.length; i++ )
87         {
88             if ( !StringUtils.equals( ids[i], proxies.get( i ).getProxyId() ) )
89             {
90                 orderFailedAt = i;
91                 break;
92             }
93         }
94
95         if ( orderFailedAt >= 0 )
96         {
97             StringBuffer msg = new StringBuffer();
98
99             msg.append( "Failed expected order of the proxies <" );
100             msg.append( StringUtils.join( ids, ", " ) );
101             msg.append( ">, actual <" );
102
103             boolean needsComma = false;
104             for ( ProxyConnectorConfiguration proxy : proxies )
105             {
106                 if ( needsComma )
107                 {
108                     msg.append( ", " );
109                 }
110                 msg.append( proxy.getProxyId() );
111                 needsComma = true;
112             }
113             msg.append( "> failure at index <" ).append( orderFailedAt ).append( ">." );
114
115             fail( msg.toString() );
116         }
117     }
118
119     private ProxyConnectorConfiguration createConnector( String id, int order )
120     {
121         ProxyConnectorConfiguration proxy = new ProxyConnectorConfiguration();
122         proxy.setProxyId( id );
123         proxy.setOrder( order );
124         proxy.setSourceRepoId( id + "_m" );
125         proxy.setTargetRepoId( id + "_r" );
126
127         return proxy;
128     }
129 }