View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *   http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   */
19  package org.eclipse.aether.internal.test.util;
20  
21  import java.util.Iterator;
22  import java.util.List;
23  
24  import org.eclipse.aether.RepositorySystemSession;
25  import org.eclipse.aether.artifact.Artifact;
26  import org.eclipse.aether.artifact.DefaultArtifact;
27  import org.eclipse.aether.graph.Dependency;
28  import org.eclipse.aether.graph.Exclusion;
29  import org.eclipse.aether.repository.RemoteRepository;
30  import org.eclipse.aether.resolution.ArtifactDescriptorException;
31  import org.eclipse.aether.resolution.ArtifactDescriptorRequest;
32  import org.eclipse.aether.resolution.ArtifactDescriptorResult;
33  import org.junit.Before;
34  import org.junit.Test;
35  
36  import static org.junit.Assert.*;
37  
38  /**
39   */
40  public class IniArtifactDescriptorReaderTest {
41  
42      private IniArtifactDescriptorReader reader;
43  
44      private RepositorySystemSession session;
45  
46      @Before
47      public void setup() {
48          reader = new IniArtifactDescriptorReader("org/eclipse/aether/internal/test/util/");
49          session = TestUtils.newSession();
50      }
51  
52      @Test(expected = ArtifactDescriptorException.class)
53      public void testMissingDescriptor() throws ArtifactDescriptorException {
54          Artifact art = new DefaultArtifact("missing:aid:ver:ext");
55          ArtifactDescriptorRequest request = new ArtifactDescriptorRequest(art, null, "");
56          reader.readArtifactDescriptor(session, request);
57      }
58  
59      @Test
60      public void testLookup() throws ArtifactDescriptorException {
61          Artifact art = new DefaultArtifact("gid:aid:ext:ver");
62          ArtifactDescriptorRequest request = new ArtifactDescriptorRequest(art, null, "");
63          ArtifactDescriptorResult description = reader.readArtifactDescriptor(session, request);
64  
65          assertEquals(request, description.getRequest());
66          assertEquals(art.setVersion("1"), description.getArtifact());
67  
68          assertEquals(1, description.getRelocations().size());
69          Artifact artifact = description.getRelocations().get(0);
70          assertEquals("gid", artifact.getGroupId());
71          assertEquals("aid", artifact.getArtifactId());
72          assertEquals("ver", artifact.getVersion());
73          assertEquals("ext", artifact.getExtension());
74  
75          assertEquals(1, description.getRepositories().size());
76          RemoteRepository repo = description.getRepositories().get(0);
77          assertEquals("id", repo.getId());
78          assertEquals("type", repo.getContentType());
79          assertEquals("protocol://some/url?for=testing", repo.getUrl());
80  
81          assertDependencies(description.getDependencies());
82          assertDependencies(description.getManagedDependencies());
83      }
84  
85      private void assertDependencies(List<Dependency> deps) {
86          assertEquals(4, deps.size());
87  
88          Dependency dep = deps.get(0);
89          assertEquals("scope", dep.getScope());
90          assertFalse(dep.isOptional());
91          assertEquals(2, dep.getExclusions().size());
92          Iterator<Exclusion> it = dep.getExclusions().iterator();
93          Exclusion excl = it.next();
94          assertEquals("gid3", excl.getGroupId());
95          assertEquals("aid", excl.getArtifactId());
96          excl = it.next();
97          assertEquals("gid2", excl.getGroupId());
98          assertEquals("aid2", excl.getArtifactId());
99  
100         Artifact art = dep.getArtifact();
101         assertEquals("gid", art.getGroupId());
102         assertEquals("aid", art.getArtifactId());
103         assertEquals("ver", art.getVersion());
104         assertEquals("ext", art.getExtension());
105 
106         dep = deps.get(1);
107         assertEquals("scope", dep.getScope());
108         assertTrue(dep.isOptional());
109         assertEquals(0, dep.getExclusions().size());
110 
111         art = dep.getArtifact();
112         assertEquals("gid", art.getGroupId());
113         assertEquals("aid2", art.getArtifactId());
114         assertEquals("ver", art.getVersion());
115         assertEquals("ext", art.getExtension());
116 
117         dep = deps.get(2);
118         assertEquals("scope", dep.getScope());
119         assertTrue(dep.isOptional());
120         assertEquals(0, dep.getExclusions().size());
121 
122         art = dep.getArtifact();
123         assertEquals("gid", art.getGroupId());
124         assertEquals("aid", art.getArtifactId());
125         assertEquals("ver3", art.getVersion());
126         assertEquals("ext", art.getExtension());
127 
128         dep = deps.get(3);
129         assertEquals("scope5", dep.getScope());
130         assertTrue(dep.isOptional());
131         assertEquals(0, dep.getExclusions().size());
132 
133         art = dep.getArtifact();
134         assertEquals("gid1", art.getGroupId());
135         assertEquals("aid", art.getArtifactId());
136         assertEquals("ver", art.getVersion());
137         assertEquals("ext", art.getExtension());
138     }
139 }