001 package org.apache.maven.repository.internal;
002
003 /*
004 * Licensed to the Apache Software Foundation (ASF) under one
005 * or more contributor license agreements. See the NOTICE file
006 * distributed with this work for additional information
007 * regarding copyright ownership. The ASF licenses this file
008 * to you under the Apache License, Version 2.0 (the
009 * "License"); you may not use this file except in compliance
010 * with the License. You may obtain a copy of the License at
011 *
012 * http://www.apache.org/licenses/LICENSE-2.0
013 *
014 * Unless required by applicable law or agreed to in writing,
015 * software distributed under the License is distributed on an
016 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
017 * KIND, either express or implied. See the License for the
018 * specific language governing permissions and limitations
019 * under the License.
020 */
021
022 import java.util.Arrays;
023 import java.util.List;
024
025 import org.eclipse.aether.artifact.Artifact;
026 import org.eclipse.aether.collection.CollectRequest;
027 import org.eclipse.aether.collection.CollectResult;
028 import org.eclipse.aether.graph.Dependency;
029 import org.eclipse.aether.graph.DependencyNode;
030 import org.eclipse.aether.resolution.ArtifactDescriptorRequest;
031 import org.eclipse.aether.resolution.ArtifactDescriptorResult;
032 import org.eclipse.aether.resolution.ArtifactRequest;
033 import org.eclipse.aether.resolution.ArtifactResult;
034 import org.eclipse.aether.artifact.DefaultArtifact;
035
036 public class RepositorySystemTest
037 extends AbstractRepositoryTestCase
038 {
039 public void testResolveVersionRange()
040 throws Exception
041 {
042 //VersionRangeResult resolveVersionRange( RepositorySystemSession session, VersionRangeRequest request )
043 // throws VersionRangeResolutionException;
044
045 }
046
047 public void testResolveVersion()
048 throws Exception
049 {
050 //VersionResult resolveVersion( RepositorySystemSession session, VersionRequest request )
051 // throws VersionResolutionException;
052 }
053
054 public void testReadArtifactDescriptor()
055 throws Exception
056 {
057 Artifact artifact = new DefaultArtifact( "ut.simple:artifact:extension:classifier:1.0" );
058
059 ArtifactDescriptorRequest request = new ArtifactDescriptorRequest();
060 request.setArtifact( artifact );
061 request.addRepository( newTestRepository() );
062
063 ArtifactDescriptorResult result = system.readArtifactDescriptor( session, request );
064
065 List<Dependency> deps = result.getDependencies();
066 assertEquals( 2, deps.size() );
067 checkUtSimpleArtifactDependencies( deps.get( 0 ), deps.get( 1 ) );
068 }
069
070 /**
071 * check ut.simple:artifact:1.0 dependencies
072 */
073 private void checkUtSimpleArtifactDependencies( Dependency dep1, Dependency dep2 )
074 {
075 assertEquals( "compile", dep1.getScope() );
076 assertFalse( dep1.isOptional() );
077 assertEquals( 0, dep1.getExclusions().size() );
078 Artifact depArtifact = dep1.getArtifact();
079 assertEquals( "ut.simple", depArtifact.getGroupId() );
080 assertEquals( "dependency", depArtifact.getArtifactId() );
081 assertEquals( "1.0", depArtifact.getVersion() );
082 assertEquals( "1.0", depArtifact.getBaseVersion() );
083 assertNull( depArtifact.getFile() );
084 assertFalse( depArtifact.isSnapshot() );
085 assertEquals( "", depArtifact.getClassifier() );
086 assertEquals( "jar", depArtifact.getExtension() );
087 assertEquals( "java", depArtifact.getProperty( "language", null ) );
088 assertEquals( "jar", depArtifact.getProperty( "type", null ) );
089 assertEquals( "true", depArtifact.getProperty( "constitutesBuildPath", null ) );
090 assertEquals( "false", depArtifact.getProperty( "includesDependencies", null ) );
091 assertEquals( 4, depArtifact.getProperties().size() );
092
093 assertEquals( "compile", dep2.getScope() );
094 assertFalse( dep2.isOptional() );
095 assertEquals( 0, dep2.getExclusions().size() );
096 depArtifact = dep2.getArtifact();
097 assertEquals( "ut.simple", depArtifact.getGroupId() );
098 assertEquals( "dependency", depArtifact.getArtifactId() );
099 assertEquals( "1.0", depArtifact.getVersion() );
100 assertEquals( "1.0", depArtifact.getBaseVersion() );
101 assertNull( depArtifact.getFile() );
102 assertFalse( depArtifact.isSnapshot() );
103 assertEquals( "sources", depArtifact.getClassifier() );
104 assertEquals( "jar", depArtifact.getExtension() );
105 assertEquals( "java", depArtifact.getProperty( "language", null ) );
106 assertEquals( "jar", depArtifact.getProperty( "type", null ) ); // shouldn't it be java-sources given the classifier?
107 assertEquals( "true", depArtifact.getProperty( "constitutesBuildPath", null ) ); // shouldn't it be false given the classifier?
108 assertEquals( "false", depArtifact.getProperty( "includesDependencies", null ) );
109 assertEquals( 4, depArtifact.getProperties().size() );
110 }
111
112 public void testCollectDependencies()
113 throws Exception
114 {
115 Artifact artifact = new DefaultArtifact( "ut.simple:artifact:extension:classifier:1.0" );
116 // notice: extension and classifier not really used in this test...
117
118 CollectRequest collectRequest = new CollectRequest();
119 collectRequest.setRoot( new Dependency( artifact, null ) );
120 collectRequest.addRepository( newTestRepository() );
121
122 CollectResult collectResult = system.collectDependencies( session, collectRequest );
123
124 List<DependencyNode> nodes = collectResult.getRoot().getChildren();
125 assertEquals( 2, nodes.size() );
126 checkUtSimpleArtifactDependencies( nodes.get( 0 ).getDependency(), nodes.get( 1 ).getDependency() );
127 }
128
129 public void testResolveArtifact()
130 throws Exception
131 {
132 Artifact artifact = new DefaultArtifact( "ut.simple:artifact:1.0" );
133
134 ArtifactRequest artifactRequest = new ArtifactRequest();
135 artifactRequest.setArtifact( artifact );
136 artifactRequest.addRepository( newTestRepository() );
137
138 ArtifactResult artifactResult = system.resolveArtifact( session, artifactRequest );
139 checkArtifactResult( artifactResult, "artifact-1.0.jar" );
140
141 artifact = new DefaultArtifact( "ut.simple:artifact:zip:1.0" );
142 artifactRequest.setArtifact( artifact );
143 artifactResult = system.resolveArtifact( session, artifactRequest );
144 checkArtifactResult( artifactResult, "artifact-1.0.zip" );
145
146 artifact = new DefaultArtifact( "ut.simple:artifact:zip:classifier:1.0" );
147 artifactRequest.setArtifact( artifact );
148 artifactResult = system.resolveArtifact( session, artifactRequest );
149 checkArtifactResult( artifactResult, "artifact-1.0-classifier.zip" );
150 }
151
152 private void checkArtifactResult( ArtifactResult result, String filename )
153 {
154 assertFalse( result.isMissing() );
155 assertTrue( result.isResolved() );
156 Artifact artifact = result.getArtifact();
157 assertNotNull( artifact.getFile() );
158 assertEquals( filename, artifact.getFile().getName() );
159 }
160
161 public void testResolveArtifacts()
162 throws Exception
163 {
164 ArtifactRequest req1 = new ArtifactRequest();
165 req1.setArtifact( new DefaultArtifact( "ut.simple:artifact:1.0" ) );
166 req1.addRepository( newTestRepository() );
167
168 ArtifactRequest req2 = new ArtifactRequest();
169 req2.setArtifact( new DefaultArtifact( "ut.simple:artifact:zip:1.0" ) );
170 req2.addRepository( newTestRepository() );
171
172 ArtifactRequest req3 = new ArtifactRequest();
173 req3.setArtifact( new DefaultArtifact( "ut.simple:artifact:zip:classifier:1.0" ) );
174 req3.addRepository( newTestRepository() );
175
176 List<ArtifactRequest> requests = Arrays.asList( req1, req2, req3 );
177
178 List<ArtifactResult> results = system.resolveArtifacts( session, requests );
179
180 assertEquals( 3, results.size() );
181 checkArtifactResult( results.get( 0 ), "artifact-1.0.jar" );
182 checkArtifactResult( results.get( 1 ), "artifact-1.0.zip" );
183 checkArtifactResult( results.get( 2 ), "artifact-1.0-classifier.zip" );
184 }
185
186 public void testResolveMetadata()
187 throws Exception
188 {
189 //List<MetadataResult> resolveMetadata( RepositorySystemSession session,
190 // Collection<? extends MetadataRequest> requests );
191 }
192
193 public void testInstall()
194 throws Exception
195 {
196 //InstallResult install( RepositorySystemSession session, InstallRequest request )
197 // throws InstallationException;
198 // release, snapshot unique ou non unique, attachement
199 }
200
201 public void testDeploy()
202 throws Exception
203 {
204 //DeployResult deploy( RepositorySystemSession session, DeployRequest request )
205 // throws DeploymentException;
206 }
207
208 public void testNewLocalRepositoryManager()
209 throws Exception
210 {
211 //LocalRepositoryManager newLocalRepositoryManager( LocalRepository localRepository );
212 }
213
214 public void testNewSyncContext()
215 throws Exception
216 {
217 //SyncContext newSyncContext( RepositorySystemSession session, boolean shared );
218 }
219
220 }