View Javadoc
1   package org.eclipse.aether.internal.test.util;
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 static org.junit.Assert.*;
23  
24  import java.io.IOException;
25  import java.util.Iterator;
26  import java.util.List;
27  
28  import org.eclipse.aether.RepositorySystemSession;
29  import org.eclipse.aether.artifact.Artifact;
30  import org.eclipse.aether.artifact.DefaultArtifact;
31  import org.eclipse.aether.graph.Dependency;
32  import org.eclipse.aether.graph.Exclusion;
33  import org.eclipse.aether.internal.test.util.IniArtifactDescriptorReader;
34  import org.eclipse.aether.repository.RemoteRepository;
35  import org.eclipse.aether.resolution.ArtifactDescriptorException;
36  import org.eclipse.aether.resolution.ArtifactDescriptorRequest;
37  import org.eclipse.aether.resolution.ArtifactDescriptorResult;
38  import org.junit.Before;
39  import org.junit.Test;
40  
41  /**
42   */
43  public class IniArtifactDescriptorReaderTest
44  {
45  
46      private IniArtifactDescriptorReader reader;
47  
48      private RepositorySystemSession session;
49  
50      @Before
51      public void setup()
52          throws IOException
53      {
54          reader = new IniArtifactDescriptorReader( "org/eclipse/aether/internal/test/util/" );
55          session = TestUtils.newSession();
56      }
57  
58      @Test( expected = ArtifactDescriptorException.class )
59      public void testMissingDescriptor()
60          throws ArtifactDescriptorException
61      {
62          Artifact art = new DefaultArtifact( "missing:aid:ver:ext" );
63          ArtifactDescriptorRequest request = new ArtifactDescriptorRequest( art, null, "" );
64          reader.readArtifactDescriptor( session, request );
65      }
66  
67      @Test
68      public void testLookup()
69          throws ArtifactDescriptorException
70      {
71          Artifact art = new DefaultArtifact( "gid:aid:ext:ver" );
72          ArtifactDescriptorRequest request = new ArtifactDescriptorRequest( art, null, "" );
73          ArtifactDescriptorResult description = reader.readArtifactDescriptor( session, request );
74  
75          assertEquals( request, description.getRequest() );
76          assertEquals( art.setVersion( "1" ), description.getArtifact() );
77  
78          assertEquals( 1, description.getRelocations().size() );
79          Artifact artifact = description.getRelocations().get( 0 );
80          assertEquals( "gid", artifact.getGroupId() );
81          assertEquals( "aid", artifact.getArtifactId() );
82          assertEquals( "ver", artifact.getVersion() );
83          assertEquals( "ext", artifact.getExtension() );
84  
85          assertEquals( 1, description.getRepositories().size() );
86          RemoteRepository repo = description.getRepositories().get( 0 );
87          assertEquals( "id", repo.getId() );
88          assertEquals( "type", repo.getContentType() );
89          assertEquals( "protocol://some/url?for=testing", repo.getUrl() );
90  
91          assertDependencies( description.getDependencies() );
92          assertDependencies( description.getManagedDependencies() );
93  
94      }
95  
96      private void assertDependencies( List<Dependency> deps )
97      {
98          assertEquals( 4, deps.size() );
99  
100         Dependency dep = deps.get( 0 );
101         assertEquals( "scope", dep.getScope() );
102         assertEquals( false, dep.isOptional() );
103         assertEquals( 2, dep.getExclusions().size() );
104         Iterator<Exclusion> it = dep.getExclusions().iterator();
105         Exclusion excl = it.next();
106         assertEquals( "gid3", excl.getGroupId() );
107         assertEquals( "aid", excl.getArtifactId() );
108         excl = it.next();
109         assertEquals( "gid2", excl.getGroupId() );
110         assertEquals( "aid2", excl.getArtifactId() );
111 
112         Artifact art = dep.getArtifact();
113         assertEquals( "gid", art.getGroupId() );
114         assertEquals( "aid", art.getArtifactId() );
115         assertEquals( "ver", art.getVersion() );
116         assertEquals( "ext", art.getExtension() );
117 
118         dep = deps.get( 1 );
119         assertEquals( "scope", dep.getScope() );
120         assertEquals( true, dep.isOptional() );
121         assertEquals( 0, dep.getExclusions().size() );
122 
123         art = dep.getArtifact();
124         assertEquals( "gid", art.getGroupId() );
125         assertEquals( "aid2", art.getArtifactId() );
126         assertEquals( "ver", art.getVersion() );
127         assertEquals( "ext", art.getExtension() );
128 
129         dep = deps.get( 2 );
130         assertEquals( "scope", dep.getScope() );
131         assertEquals( true, dep.isOptional() );
132         assertEquals( 0, dep.getExclusions().size() );
133 
134         art = dep.getArtifact();
135         assertEquals( "gid", art.getGroupId() );
136         assertEquals( "aid", art.getArtifactId() );
137         assertEquals( "ver3", art.getVersion() );
138         assertEquals( "ext", art.getExtension() );
139 
140         dep = deps.get( 3 );
141         assertEquals( "scope5", dep.getScope() );
142         assertEquals( true, dep.isOptional() );
143         assertEquals( 0, dep.getExclusions().size() );
144 
145         art = dep.getArtifact();
146         assertEquals( "gid1", art.getGroupId() );
147         assertEquals( "aid", art.getArtifactId() );
148         assertEquals( "ver", art.getVersion() );
149         assertEquals( "ext", art.getExtension() );
150     }
151 
152 }