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.io.IOException; 025import java.util.Iterator; 026import java.util.List; 027 028import org.eclipse.aether.RepositorySystemSession; 029import org.eclipse.aether.artifact.Artifact; 030import org.eclipse.aether.artifact.DefaultArtifact; 031import org.eclipse.aether.graph.Dependency; 032import org.eclipse.aether.graph.Exclusion; 033import org.eclipse.aether.internal.test.util.IniArtifactDescriptorReader; 034import org.eclipse.aether.repository.RemoteRepository; 035import org.eclipse.aether.resolution.ArtifactDescriptorException; 036import org.eclipse.aether.resolution.ArtifactDescriptorRequest; 037import org.eclipse.aether.resolution.ArtifactDescriptorResult; 038import org.junit.Before; 039import org.junit.Test; 040 041/** 042 */ 043public class IniArtifactDescriptorReaderTest 044{ 045 046 private IniArtifactDescriptorReader reader; 047 048 private RepositorySystemSession session; 049 050 @Before 051 public void setup() 052 throws IOException 053 { 054 reader = new IniArtifactDescriptorReader( "org/eclipse/aether/internal/test/util/" ); 055 session = TestUtils.newSession(); 056 } 057 058 @Test( expected = ArtifactDescriptorException.class ) 059 public void testMissingDescriptor() 060 throws ArtifactDescriptorException 061 { 062 Artifact art = new DefaultArtifact( "missing:aid:ver:ext" ); 063 ArtifactDescriptorRequest request = new ArtifactDescriptorRequest( art, null, "" ); 064 reader.readArtifactDescriptor( session, request ); 065 } 066 067 @Test 068 public void testLookup() 069 throws ArtifactDescriptorException 070 { 071 Artifact art = new DefaultArtifact( "gid:aid:ext:ver" ); 072 ArtifactDescriptorRequest request = new ArtifactDescriptorRequest( art, null, "" ); 073 ArtifactDescriptorResult description = reader.readArtifactDescriptor( session, request ); 074 075 assertEquals( request, description.getRequest() ); 076 assertEquals( art.setVersion( "1" ), description.getArtifact() ); 077 078 assertEquals( 1, description.getRelocations().size() ); 079 Artifact artifact = description.getRelocations().get( 0 ); 080 assertEquals( "gid", artifact.getGroupId() ); 081 assertEquals( "aid", artifact.getArtifactId() ); 082 assertEquals( "ver", artifact.getVersion() ); 083 assertEquals( "ext", artifact.getExtension() ); 084 085 assertEquals( 1, description.getRepositories().size() ); 086 RemoteRepository repo = description.getRepositories().get( 0 ); 087 assertEquals( "id", repo.getId() ); 088 assertEquals( "type", repo.getContentType() ); 089 assertEquals( "protocol://some/url?for=testing", repo.getUrl() ); 090 091 assertDependencies( description.getDependencies() ); 092 assertDependencies( description.getManagedDependencies() ); 093 094 } 095 096 private void assertDependencies( List<Dependency> deps ) 097 { 098 assertEquals( 4, deps.size() ); 099 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}