View Javadoc
1   package org.apache.archiva.admin.repository.proxyconnectorrule;
2   /*
3    * Licensed to the Apache Software Foundation (ASF) under one
4    * or more contributor license agreements.  See the NOTICE file
5    * distributed with this work for additional information
6    * regarding copyright ownership.  The ASF licenses this file
7    * to you under the Apache License, Version 2.0 (the
8    * "License"); you may not use this file except in compliance
9    * with the License.  You may obtain a copy of the License at
10   *
11   *   http://www.apache.org/licenses/LICENSE-2.0
12   *
13   * Unless required by applicable law or agreed to in writing,
14   * software distributed under the License is distributed on an
15   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16   * KIND, either express or implied.  See the License for the
17   * specific language governing permissions and limitations
18   * under the License.
19   */
20  
21  import org.apache.archiva.admin.model.beans.ProxyConnector;
22  import org.apache.archiva.admin.model.beans.ProxyConnectorRule;
23  import org.apache.archiva.admin.model.beans.ProxyConnectorRuleType;
24  import org.apache.archiva.admin.model.beans.RemoteRepository;
25  import org.apache.archiva.admin.repository.AbstractRepositoryAdminTest;
26  import org.junit.Test;
27  
28  import java.util.Arrays;
29  
30  /**
31   * @author Olivier Lamy
32   */
33  public class ProxyConnectorRuleAdminTest
34      extends AbstractRepositoryAdminTest
35  {
36      @Test
37      public void addProxyConnectorRule()
38          throws Exception
39      {
40          ProxyConnector proxyConnector = new ProxyConnector();
41          proxyConnector.setSourceRepoId( "snapshots" );
42          proxyConnector.setTargetRepoId( "central" );
43  
44          ProxyConnectorRule rule = null;
45          try
46          {
47              int size = proxyConnectorRuleAdmin.getProxyConnectorRules().size();
48              assertEquals( 0, size );
49  
50              proxyConnectorAdmin.addProxyConnector( proxyConnector, getFakeAuditInformation() );
51  
52              rule = new ProxyConnectorRule( "org/apache/maven", ProxyConnectorRuleType.BLACK_LIST,
53                                             Arrays.asList( proxyConnector ) );
54  
55              proxyConnectorRuleAdmin.addProxyConnectorRule( rule, getFakeAuditInformation() );
56              assertEquals( size + 1, proxyConnectorRuleAdmin.getProxyConnectorRules().size() );
57  
58              rule = proxyConnectorRuleAdmin.getProxyConnectorRules().get( 0 );
59  
60              assertEquals( "org/apache/maven", rule.getPattern() );
61              assertEquals( 1, rule.getProxyConnectors().size() );
62              assertEquals( "snapshots", rule.getProxyConnectors().get( 0 ).getSourceRepoId() );
63              assertEquals( "central", rule.getProxyConnectors().get( 0 ).getTargetRepoId() );
64              assertEquals( ProxyConnectorRuleType.BLACK_LIST, rule.getProxyConnectorRuleType() );
65          }
66          finally
67          {
68              proxyConnectorRuleAdmin.deleteProxyConnectorRule( rule, getFakeAuditInformation() );
69              proxyConnectorAdmin.deleteProxyConnector( proxyConnector, getFakeAuditInformation() );
70          }
71      }
72  
73      @Test
74      public void addProxyConnectorRuleWithTwoProxyConnectors()
75          throws Exception
76      {
77          RemoteRepository remoteRepository = new RemoteRepository();
78          remoteRepository.setId( "archiva" );
79          remoteRepository.setName( "archiva rocks" );
80          remoteRepository.setUrl( "http://wine.org" );
81  
82          remoteRepositoryAdmin.addRemoteRepository( remoteRepository, getFakeAuditInformation() );
83  
84          int size = proxyConnectorRuleAdmin.getProxyConnectorRules().size();
85          assertEquals( 0, size );
86          ProxyConnector proxyConnector1 = new ProxyConnector();
87          proxyConnector1.setSourceRepoId( "snapshots" );
88          proxyConnector1.setTargetRepoId( "central" );
89          proxyConnectorAdmin.addProxyConnector( proxyConnector1, getFakeAuditInformation() );
90  
91          ProxyConnector proxyConnector2 = new ProxyConnector();
92          proxyConnector2.setSourceRepoId( "snapshots" );
93          proxyConnector2.setTargetRepoId( "archiva" );
94          proxyConnectorAdmin.addProxyConnector( proxyConnector2, getFakeAuditInformation() );
95  
96          ProxyConnectorRule rule = new ProxyConnectorRule( "org/apache/maven", ProxyConnectorRuleType.BLACK_LIST,
97                                                            Arrays.asList( proxyConnector1, proxyConnector2 ) );
98          try
99          {
100             proxyConnectorRuleAdmin.addProxyConnectorRule( rule, getFakeAuditInformation() );
101             assertEquals( size + 1, proxyConnectorRuleAdmin.getProxyConnectorRules().size() );
102 
103             rule = proxyConnectorRuleAdmin.getProxyConnectorRules().get( 0 );
104 
105             assertEquals( "org/apache/maven", rule.getPattern() );
106             assertEquals( 2, rule.getProxyConnectors().size() );
107             assertEquals( ProxyConnectorRuleType.BLACK_LIST, rule.getProxyConnectorRuleType() );
108         }
109         finally
110         {
111             proxyConnectorRuleAdmin.deleteProxyConnectorRule( rule, getFakeAuditInformation() );
112             proxyConnectorAdmin.deleteProxyConnector( proxyConnector1, getFakeAuditInformation() );
113             proxyConnectorAdmin.deleteProxyConnector( proxyConnector2, getFakeAuditInformation() );
114             remoteRepositoryAdmin.deleteRemoteRepository( remoteRepository.getId(), getFakeAuditInformation() );
115         }
116     }
117 
118 
119     @Test
120     public void updateProxyConnectorRuleWithTwoProxyConnectors()
121         throws Exception
122     {
123         RemoteRepository remoteRepository = new RemoteRepository();
124         remoteRepository.setId( "archiva" );
125         remoteRepository.setName( "archiva rocks" );
126         remoteRepository.setUrl( "http://wine.org" );
127 
128         remoteRepositoryAdmin.addRemoteRepository( remoteRepository, getFakeAuditInformation() );
129 
130         int size = proxyConnectorRuleAdmin.getProxyConnectorRules().size();
131         assertEquals( 0, size );
132         ProxyConnector proxyConnector1 = new ProxyConnector();
133         proxyConnector1.setSourceRepoId( "snapshots" );
134         proxyConnector1.setTargetRepoId( "central" );
135         proxyConnectorAdmin.addProxyConnector( proxyConnector1, getFakeAuditInformation() );
136 
137         ProxyConnector proxyConnector2 = new ProxyConnector();
138         proxyConnector2.setSourceRepoId( "snapshots" );
139         proxyConnector2.setTargetRepoId( "archiva" );
140         proxyConnectorAdmin.addProxyConnector( proxyConnector2, getFakeAuditInformation() );
141 
142         ProxyConnectorRule rule = new ProxyConnectorRule( "org/apache/maven", ProxyConnectorRuleType.BLACK_LIST,
143                                                           Arrays.asList( proxyConnector1, proxyConnector2 ) );
144         try
145         {
146             proxyConnectorRuleAdmin.addProxyConnectorRule( rule, getFakeAuditInformation() );
147             assertEquals( size + 1, proxyConnectorRuleAdmin.getProxyConnectorRules().size() );
148 
149             rule = proxyConnectorRuleAdmin.getProxyConnectorRules().get( 0 );
150 
151             assertEquals( "org/apache/maven", rule.getPattern() );
152             assertEquals( 2, rule.getProxyConnectors().size() );
153             //assertEquals( "snapshots", rule.getProxyConnectors().get( 0 ).getSourceRepoId() );
154             //assertEquals( "central", rule.getProxyConnectors().get( 0 ).getTargetRepoId() );
155             assertEquals( ProxyConnectorRuleType.BLACK_LIST, rule.getProxyConnectorRuleType() );
156 
157             rule.setProxyConnectors( Arrays.asList( proxyConnector1 ) );
158 
159             proxyConnectorRuleAdmin.updateProxyConnectorRule( rule, getFakeAuditInformation() );
160 
161             assertEquals( size + 1, proxyConnectorRuleAdmin.getProxyConnectorRules().size() );
162 
163             rule = proxyConnectorRuleAdmin.getProxyConnectorRules().get( 0 );
164 
165             assertEquals( "org/apache/maven", rule.getPattern() );
166             assertEquals( 1, rule.getProxyConnectors().size() );
167             assertEquals( "snapshots", rule.getProxyConnectors().get( 0 ).getSourceRepoId() );
168             assertEquals( "central", rule.getProxyConnectors().get( 0 ).getTargetRepoId() );
169 
170         }
171         finally
172         {
173             proxyConnectorRuleAdmin.deleteProxyConnectorRule( rule, getFakeAuditInformation() );
174             proxyConnectorAdmin.deleteProxyConnector( proxyConnector1, getFakeAuditInformation() );
175             proxyConnectorAdmin.deleteProxyConnector( proxyConnector2, getFakeAuditInformation() );
176             remoteRepositoryAdmin.deleteRemoteRepository( remoteRepository.getId(), getFakeAuditInformation() );
177         }
178     }
179 
180 }