001package org.eclipse.aether.internal.test.util; 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 022import static org.junit.Assert.*; 023 024import java.util.Iterator; 025import java.util.List; 026 027import org.eclipse.aether.RepositorySystemSession; 028import org.eclipse.aether.artifact.Artifact; 029import org.eclipse.aether.artifact.DefaultArtifact; 030import org.eclipse.aether.graph.Dependency; 031import org.eclipse.aether.graph.Exclusion; 032import org.eclipse.aether.repository.RemoteRepository; 033import org.eclipse.aether.resolution.ArtifactDescriptorException; 034import org.eclipse.aether.resolution.ArtifactDescriptorRequest; 035import org.eclipse.aether.resolution.ArtifactDescriptorResult; 036import org.junit.Before; 037import org.junit.Test; 038 039/** 040 */ 041public class IniArtifactDescriptorReaderTest 042{ 043 044 private IniArtifactDescriptorReader reader; 045 046 private RepositorySystemSession session; 047 048 @Before 049 public void setup() 050 { 051 reader = new IniArtifactDescriptorReader( "org/eclipse/aether/internal/test/util/" ); 052 session = TestUtils.newSession(); 053 } 054 055 @Test( expected = ArtifactDescriptorException.class ) 056 public void testMissingDescriptor() 057 throws ArtifactDescriptorException 058 { 059 Artifact art = new DefaultArtifact( "missing:aid:ver:ext" ); 060 ArtifactDescriptorRequest request = new ArtifactDescriptorRequest( art, null, "" ); 061 reader.readArtifactDescriptor( session, request ); 062 } 063 064 @Test 065 public void testLookup() 066 throws ArtifactDescriptorException 067 { 068 Artifact art = new DefaultArtifact( "gid:aid:ext:ver" ); 069 ArtifactDescriptorRequest request = new ArtifactDescriptorRequest( art, null, "" ); 070 ArtifactDescriptorResult description = reader.readArtifactDescriptor( session, request ); 071 072 assertEquals( request, description.getRequest() ); 073 assertEquals( art.setVersion( "1" ), description.getArtifact() ); 074 075 assertEquals( 1, description.getRelocations().size() ); 076 Artifact artifact = description.getRelocations().get( 0 ); 077 assertEquals( "gid", artifact.getGroupId() ); 078 assertEquals( "aid", artifact.getArtifactId() ); 079 assertEquals( "ver", artifact.getVersion() ); 080 assertEquals( "ext", artifact.getExtension() ); 081 082 assertEquals( 1, description.getRepositories().size() ); 083 RemoteRepository repo = description.getRepositories().get( 0 ); 084 assertEquals( "id", repo.getId() ); 085 assertEquals( "type", repo.getContentType() ); 086 assertEquals( "protocol://some/url?for=testing", repo.getUrl() ); 087 088 assertDependencies( description.getDependencies() ); 089 assertDependencies( description.getManagedDependencies() ); 090 091 } 092 093 private void assertDependencies( List<Dependency> deps ) 094 { 095 assertEquals( 4, deps.size() ); 096 097 Dependency dep = deps.get( 0 ); 098 assertEquals( "scope", dep.getScope() ); 099 assertFalse( dep.isOptional() ); 100 assertEquals( 2, dep.getExclusions().size() ); 101 Iterator<Exclusion> it = dep.getExclusions().iterator(); 102 Exclusion excl = it.next(); 103 assertEquals( "gid3", excl.getGroupId() ); 104 assertEquals( "aid", excl.getArtifactId() ); 105 excl = it.next(); 106 assertEquals( "gid2", excl.getGroupId() ); 107 assertEquals( "aid2", excl.getArtifactId() ); 108 109 Artifact art = dep.getArtifact(); 110 assertEquals( "gid", art.getGroupId() ); 111 assertEquals( "aid", art.getArtifactId() ); 112 assertEquals( "ver", art.getVersion() ); 113 assertEquals( "ext", art.getExtension() ); 114 115 dep = deps.get( 1 ); 116 assertEquals( "scope", dep.getScope() ); 117 assertTrue( dep.isOptional() ); 118 assertEquals( 0, dep.getExclusions().size() ); 119 120 art = dep.getArtifact(); 121 assertEquals( "gid", art.getGroupId() ); 122 assertEquals( "aid2", art.getArtifactId() ); 123 assertEquals( "ver", art.getVersion() ); 124 assertEquals( "ext", art.getExtension() ); 125 126 dep = deps.get( 2 ); 127 assertEquals( "scope", dep.getScope() ); 128 assertTrue( dep.isOptional() ); 129 assertEquals( 0, dep.getExclusions().size() ); 130 131 art = dep.getArtifact(); 132 assertEquals( "gid", art.getGroupId() ); 133 assertEquals( "aid", art.getArtifactId() ); 134 assertEquals( "ver3", art.getVersion() ); 135 assertEquals( "ext", art.getExtension() ); 136 137 dep = deps.get( 3 ); 138 assertEquals( "scope5", dep.getScope() ); 139 assertTrue( dep.isOptional() ); 140 assertEquals( 0, dep.getExclusions().size() ); 141 142 art = dep.getArtifact(); 143 assertEquals( "gid1", art.getGroupId() ); 144 assertEquals( "aid", art.getArtifactId() ); 145 assertEquals( "ver", art.getVersion() ); 146 assertEquals( "ext", art.getExtension() ); 147 } 148 149}