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.Collection; 026import java.util.Iterator; 027import java.util.List; 028 029import org.eclipse.aether.artifact.Artifact; 030import org.eclipse.aether.graph.Dependency; 031import org.eclipse.aether.graph.Exclusion; 032import org.eclipse.aether.internal.test.util.ArtifactDescription; 033import org.eclipse.aether.internal.test.util.IniArtifactDataReader; 034import org.eclipse.aether.repository.RemoteRepository; 035import org.junit.Before; 036import org.junit.Test; 037 038/** 039 */ 040public class IniArtifactDataReaderTest 041{ 042 043 private IniArtifactDataReader parser; 044 045 @Before 046 public void setup() 047 { 048 this.parser = new IniArtifactDataReader( "org/eclipse/aether/internal/test/util/" ); 049 } 050 051 @Test 052 public void testRelocation() 053 throws IOException 054 { 055 String def = "[relocation]\ngid:aid:ext:ver"; 056 057 ArtifactDescription description = parser.parseLiteral( def ); 058 059 Artifact artifact = description.getRelocation(); 060 assertNotNull( artifact ); 061 assertEquals( "aid", artifact.getArtifactId() ); 062 assertEquals( "gid", artifact.getGroupId() ); 063 assertEquals( "ver", artifact.getVersion() ); 064 assertEquals( "ext", artifact.getExtension() ); 065 } 066 067 @Test 068 public void testDependencies() 069 throws IOException 070 { 071 String def = "[dependencies]\ngid:aid:ext:ver\n-exclusion:aid\ngid2:aid2:ext2:ver2"; 072 073 ArtifactDescription description = parser.parseLiteral( def ); 074 075 List<Dependency> dependencies = description.getDependencies(); 076 assertNotNull( dependencies ); 077 assertEquals( 2, dependencies.size() ); 078 079 Dependency dependency = dependencies.get( 0 ); 080 assertEquals( "compile", dependency.getScope() ); 081 082 Artifact artifact = dependency.getArtifact(); 083 assertNotNull( artifact ); 084 assertEquals( "aid", artifact.getArtifactId() ); 085 assertEquals( "gid", artifact.getGroupId() ); 086 assertEquals( "ver", artifact.getVersion() ); 087 assertEquals( "ext", artifact.getExtension() ); 088 089 Collection<Exclusion> exclusions = dependency.getExclusions(); 090 assertNotNull( exclusions ); 091 assertEquals( 1, exclusions.size() ); 092 Exclusion exclusion = exclusions.iterator().next(); 093 assertEquals( "exclusion", exclusion.getGroupId() ); 094 assertEquals( "aid", exclusion.getArtifactId() ); 095 assertEquals( "*", exclusion.getClassifier() ); 096 assertEquals( "*", exclusion.getExtension() ); 097 098 dependency = dependencies.get( 1 ); 099 100 artifact = dependency.getArtifact(); 101 assertNotNull( artifact ); 102 assertEquals( "aid2", artifact.getArtifactId() ); 103 assertEquals( "gid2", artifact.getGroupId() ); 104 assertEquals( "ver2", artifact.getVersion() ); 105 assertEquals( "ext2", artifact.getExtension() ); 106 } 107 108 @Test 109 public void testManagedDependencies() 110 throws IOException 111 { 112 String def = "[managed-dependencies]\ngid:aid:ext:ver\n-exclusion:aid\ngid2:aid2:ext2:ver2:runtime"; 113 114 ArtifactDescription description = parser.parseLiteral( def ); 115 116 List<Dependency> dependencies = description.getManagedDependencies(); 117 assertNotNull( dependencies ); 118 assertEquals( 2, dependencies.size() ); 119 120 Dependency dependency = dependencies.get( 0 ); 121 assertEquals( "", dependency.getScope() ); 122 123 Artifact artifact = dependency.getArtifact(); 124 assertNotNull( artifact ); 125 assertEquals( "aid", artifact.getArtifactId() ); 126 assertEquals( "gid", artifact.getGroupId() ); 127 assertEquals( "ver", artifact.getVersion() ); 128 assertEquals( "ext", artifact.getExtension() ); 129 130 Collection<Exclusion> exclusions = dependency.getExclusions(); 131 assertNotNull( exclusions ); 132 assertEquals( 1, exclusions.size() ); 133 Exclusion exclusion = exclusions.iterator().next(); 134 assertEquals( "exclusion", exclusion.getGroupId() ); 135 assertEquals( "aid", exclusion.getArtifactId() ); 136 assertEquals( "*", exclusion.getClassifier() ); 137 assertEquals( "*", exclusion.getExtension() ); 138 139 dependency = dependencies.get( 1 ); 140 assertEquals( "runtime", dependency.getScope() ); 141 142 artifact = dependency.getArtifact(); 143 assertNotNull( artifact ); 144 assertEquals( "aid2", artifact.getArtifactId() ); 145 assertEquals( "gid2", artifact.getGroupId() ); 146 assertEquals( "ver2", artifact.getVersion() ); 147 assertEquals( "ext2", artifact.getExtension() ); 148 149 assertEquals( 0, dependency.getExclusions().size() ); 150 } 151 152 @Test 153 public void testResource() 154 throws IOException 155 { 156 ArtifactDescription description = parser.parse( "ArtifactDataReaderTest.ini" ); 157 158 Artifact artifact = description.getRelocation(); 159 assertEquals( "gid", artifact.getGroupId() ); 160 assertEquals( "aid", artifact.getArtifactId() ); 161 assertEquals( "ver", artifact.getVersion() ); 162 assertEquals( "ext", artifact.getExtension() ); 163 164 assertEquals( 1, description.getRepositories().size() ); 165 RemoteRepository repo = description.getRepositories().get( 0 ); 166 assertEquals( "id", repo.getId() ); 167 assertEquals( "type", repo.getContentType() ); 168 assertEquals( "protocol://some/url?for=testing", repo.getUrl() ); 169 170 assertDependencies( description.getDependencies() ); 171 assertDependencies( description.getManagedDependencies() ); 172 173 } 174 175 private void assertDependencies( List<Dependency> deps ) 176 { 177 assertEquals( 4, deps.size() ); 178 179 Dependency dep = deps.get( 0 ); 180 assertEquals( "scope", dep.getScope() ); 181 assertEquals( false, dep.isOptional() ); 182 assertEquals( 2, dep.getExclusions().size() ); 183 Iterator<Exclusion> it = dep.getExclusions().iterator(); 184 Exclusion excl = it.next(); 185 assertEquals( "gid3", excl.getGroupId() ); 186 assertEquals( "aid", excl.getArtifactId() ); 187 excl = it.next(); 188 assertEquals( "gid2", excl.getGroupId() ); 189 assertEquals( "aid2", excl.getArtifactId() ); 190 191 Artifact art = dep.getArtifact(); 192 assertEquals( "gid", art.getGroupId() ); 193 assertEquals( "aid", art.getArtifactId() ); 194 assertEquals( "ver", art.getVersion() ); 195 assertEquals( "ext", art.getExtension() ); 196 197 dep = deps.get( 1 ); 198 assertEquals( "scope", dep.getScope() ); 199 assertEquals( true, dep.isOptional() ); 200 assertEquals( 0, dep.getExclusions().size() ); 201 202 art = dep.getArtifact(); 203 assertEquals( "gid", art.getGroupId() ); 204 assertEquals( "aid2", art.getArtifactId() ); 205 assertEquals( "ver", art.getVersion() ); 206 assertEquals( "ext", art.getExtension() ); 207 208 dep = deps.get( 2 ); 209 assertEquals( "scope", dep.getScope() ); 210 assertEquals( true, dep.isOptional() ); 211 assertEquals( 0, dep.getExclusions().size() ); 212 213 art = dep.getArtifact(); 214 assertEquals( "gid", art.getGroupId() ); 215 assertEquals( "aid", art.getArtifactId() ); 216 assertEquals( "ver3", art.getVersion() ); 217 assertEquals( "ext", art.getExtension() ); 218 219 dep = deps.get( 3 ); 220 assertEquals( "scope5", dep.getScope() ); 221 assertEquals( true, dep.isOptional() ); 222 assertEquals( 0, dep.getExclusions().size() ); 223 224 art = dep.getArtifact(); 225 assertEquals( "gid1", art.getGroupId() ); 226 assertEquals( "aid", art.getArtifactId() ); 227 assertEquals( "ver", art.getVersion() ); 228 assertEquals( "ext", art.getExtension() ); 229 } 230 231}