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