]> source.dussan.org Git - archiva.git/blob
59abf7e60cccb806d597624a7109d9705f2becdd
[archiva.git] /
1 package org.apache.archiva.proxy;
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.model.ArtifactReference;
23 import org.apache.archiva.policies.CachedFailuresPolicy;
24 import org.apache.archiva.policies.ChecksumPolicy;
25 import org.apache.archiva.policies.ReleasesPolicy;
26 import org.apache.archiva.policies.SnapshotsPolicy;
27 import org.junit.Test;
28
29 import java.io.File;
30
31 import static org.junit.Assert.assertTrue;
32
33 /**
34  * ManagedLegacyTransferTest 
35  *
36  * @version $Id$
37  */
38 public class ManagedLegacyTransferTest
39     extends AbstractProxyTestCase
40 {
41     /**
42      * Incoming request on a Managed Legacy repository, for content that does not
43      * exist in the managed legacy repository, but does exist on a remote default layout repository.
44      */
45     @Test
46     public void testManagedLegacyNotPresentRemoteDefaultPresent()
47         throws Exception
48     {
49         String path = "org.apache.maven.test/jars/get-default-layout-1.0.jar";
50         File expectedFile = new File( managedLegacyDir, path );
51         ArtifactReference artifact = managedLegacyRepository.toArtifactReference( path );
52
53         assertNotExistsInManagedLegacyRepo( expectedFile );
54
55         // Configure Connector (usually done within archiva.xml configuration)
56         saveConnector( ID_LEGACY_MANAGED, ID_PROXIED1, false );
57
58         File downloadedFile = proxyHandler.fetchFromProxies( managedLegacyRepository, artifact );
59
60         File proxied2File = new File( REPOPATH_PROXIED1,
61                                       "org/apache/maven/test/get-default-layout/1.0/get-default-layout-1.0.jar" );
62         assertFileEquals( expectedFile, downloadedFile, proxied2File );
63         assertNoTempFiles( expectedFile );
64     }
65
66     /**
67      * Incoming request on a Managed Legacy repository, for content that already
68      * exist in the managed legacy repository, and also exist on a remote default layout repository.
69      */
70     @Test
71     public void testManagedLegacyPresentRemoteDefaultPresent()
72         throws Exception
73     {
74         String path = "org.apache.maven.test/jars/get-default-layout-present-1.0.jar";
75         String remotePath = "org/apache/maven/test/get-default-layout-present/1.0/get-default-layout-present-1.0.jar";
76         
77         File expectedFile = new File( managedLegacyDir, path );
78         File remoteFile = new File( REPOPATH_PROXIED1, remotePath );
79
80         setManagedOlderThanRemote( expectedFile, remoteFile );
81         
82         ArtifactReference artifact = managedLegacyRepository.toArtifactReference( path );
83
84         // Configure Connector (usually done within archiva.xml configuration)
85         saveConnector( ID_LEGACY_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
86                        SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );
87
88         File downloadedFile = proxyHandler.fetchFromProxies( managedLegacyRepository, artifact );
89
90         assertFileEquals( expectedFile, downloadedFile, remoteFile );
91         assertNoTempFiles( expectedFile );
92     }
93
94     /**
95      * Incoming request on a Managed Legacy repository, for content that does not
96      * exist in the managed legacy repository, and does not exist on a remote legacy layout repository.
97      */
98     @Test
99     public void testManagedLegacyNotPresentRemoteLegacyPresent()
100         throws Exception
101     {
102         String path = "org.apache.maven.test/plugins/get-legacy-plugin-1.0.jar";
103         File expectedFile = new File( managedLegacyDir, path );
104         ArtifactReference artifact = managedLegacyRepository.toArtifactReference( path );
105
106         assertNotExistsInManagedLegacyRepo( expectedFile );
107
108         // Configure Connector (usually done within archiva.xml configuration)
109         saveConnector( ID_LEGACY_MANAGED, ID_LEGACY_PROXIED, false );
110
111         File downloadedFile = proxyHandler.fetchFromProxies( managedLegacyRepository, artifact );
112
113         File proxiedFile = new File( REPOPATH_PROXIED_LEGACY, path );
114         assertFileEquals( expectedFile, downloadedFile, proxiedFile );
115         assertNoTempFiles( expectedFile );
116     }
117
118     /**
119      * Incoming request on a Managed Legacy repository, for content that does exist in the 
120      * managed legacy repository, and also exists on a remote legacy layout repository. 
121      */
122     @Test
123     public void testManagedLegacyPresentRemoteLegacyPresent()
124         throws Exception
125     {
126         String path = "org.apache.maven.test/jars/get-default-layout-present-1.0.jar";
127         File expectedFile = new File( managedLegacyDir, path );
128         File remoteFile = new File( REPOPATH_PROXIED_LEGACY, path );
129
130         setManagedOlderThanRemote( expectedFile, remoteFile );
131         
132         ArtifactReference artifact = managedLegacyRepository.toArtifactReference( path );
133
134         // Configure Connector (usually done within archiva.xml configuration)
135         saveConnector( ID_LEGACY_MANAGED, ID_LEGACY_PROXIED, false );
136
137         File downloadedFile = proxyHandler.fetchFromProxies( managedLegacyRepository, artifact );
138
139         assertFileEquals( expectedFile, downloadedFile, remoteFile );
140         assertNoTempFiles( expectedFile );
141     }
142
143     /**
144      * Incoming request on a Managed Legacy repository, for content that does exist in the 
145      * managed legacy repository, and does not exist on a remote legacy layout repository. 
146      */
147     @Test
148     public void testManagedLegacyPresentRemoteLegacyNotPresent()
149         throws Exception
150     {
151         String path = "org.apache.maven.test/jars/managed-only-lib-2.1.jar";
152         File expectedFile = new File( managedLegacyDir, path );
153         ArtifactReference artifact = managedLegacyRepository.toArtifactReference( path );
154
155         assertTrue( expectedFile.exists() );
156
157         // Configure Connector (usually done within archiva.xml configuration)
158         saveConnector( ID_LEGACY_MANAGED, ID_LEGACY_PROXIED, false );
159
160         File downloadedFile = proxyHandler.fetchFromProxies( managedLegacyRepository, artifact );
161
162         assertNotDownloaded( downloadedFile );
163         assertNoTempFiles( expectedFile );
164     }
165
166     /**
167      * Incoming request on a Managed Legacy repository, for content that does exist in the 
168      * managed legacy repository, and does not exists on a remote default layout repository. 
169      */
170     @Test
171     public void testManagedLegacyPresentRemoteDefaultNotPresent()
172         throws Exception
173     {
174         String path = "org.apache.maven.test/jars/managed-only-lib-2.1.jar";
175         File expectedFile = new File( managedLegacyDir, path );
176         ArtifactReference artifact = managedLegacyRepository.toArtifactReference( path );
177
178         assertTrue( expectedFile.exists() );
179
180         // Configure Connector (usually done within archiva.xml configuration)
181         saveConnector( ID_LEGACY_MANAGED, ID_PROXIED1, false );
182
183         File downloadedFile = proxyHandler.fetchFromProxies( managedLegacyRepository, artifact );
184
185         assertNotDownloaded( downloadedFile );
186         assertNoTempFiles( expectedFile );
187     }
188
189     /**
190      * Incoming request on a Managed Legacy repository, for content that does not exist in the 
191      * managed legacy repository, and does not exists on a remote legacy layout repository. 
192      */
193     @Test
194     public void testManagedLegacyNotPresentRemoteLegacyNotPresent()
195         throws Exception
196     {
197         String path = "org.apache.archiva.test/jars/mystery-lib-1.0.jar";
198         File expectedFile = new File( managedLegacyDir, path );
199         ArtifactReference artifact = managedLegacyRepository.toArtifactReference( path );
200
201         assertNotExistsInManagedLegacyRepo( expectedFile );
202
203         // Configure Connector (usually done within archiva.xml configuration)
204         saveConnector( ID_LEGACY_MANAGED, ID_LEGACY_PROXIED, false );
205
206         File downloadedFile = proxyHandler.fetchFromProxies( managedLegacyRepository, artifact );
207
208         assertNotDownloaded( downloadedFile );
209         assertNoTempFiles( expectedFile );
210     }
211
212     /**
213      * Incoming request on a Managed Legacy repository, for content that does not exist in the 
214      * managed legacy repository, and does not exists on a remote default layout repository. 
215      */
216     @Test
217     public void testManagedLegacyNotPresentRemoteDefaultNotPresent()
218         throws Exception
219     {
220         String path = "org.apache.archiva.test/jars/mystery-lib-2.1.jar";
221         File expectedFile = new File( managedLegacyDir, path );
222         ArtifactReference artifact = managedLegacyRepository.toArtifactReference( path );
223
224         assertNotExistsInManagedLegacyRepo( expectedFile );
225
226         // Configure Connector (usually done within archiva.xml configuration)
227         saveConnector( ID_LEGACY_MANAGED, ID_PROXIED1, false );
228
229         File downloadedFile = proxyHandler.fetchFromProxies( managedLegacyRepository, artifact );
230
231         assertNotDownloaded( downloadedFile );
232         assertNoTempFiles( expectedFile );
233     }
234 }