/******************************************************************************* * Copyright (c) 2010, 2013 Sonatype, Inc. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Sonatype, Inc. - initial API and implementation *******************************************************************************/ package org.eclipse.aether.internal.test.util; import static org.junit.Assert.*; import java.io.IOException; import java.util.Collection; import java.util.Iterator; import java.util.List; import org.eclipse.aether.artifact.Artifact; import org.eclipse.aether.graph.Dependency; import org.eclipse.aether.graph.Exclusion; import org.eclipse.aether.internal.test.util.ArtifactDescription; import org.eclipse.aether.internal.test.util.IniArtifactDataReader; import org.eclipse.aether.repository.RemoteRepository; import org.junit.Before; import org.junit.Test; /** */ public class IniArtifactDataReaderTest { private IniArtifactDataReader parser; @Before public void setup() throws Exception { this.parser = new IniArtifactDataReader( "org/eclipse/aether/internal/test/util/" ); } @Test public void testRelocation() throws IOException { String def = "[relocation]\ngid:aid:ext:ver"; ArtifactDescription description = parser.parseLiteral( def ); Artifact artifact = description.getRelocation(); assertNotNull( artifact ); assertEquals( "aid", artifact.getArtifactId() ); assertEquals( "gid", artifact.getGroupId() ); assertEquals( "ver", artifact.getVersion() ); assertEquals( "ext", artifact.getExtension() ); } @Test public void testDependencies() throws IOException { String def = "[dependencies]\ngid:aid:ext:ver\n-exclusion:aid\ngid2:aid2:ext2:ver2"; ArtifactDescription description = parser.parseLiteral( def ); List<Dependency> dependencies = description.getDependencies(); assertNotNull( dependencies ); assertEquals( 2, dependencies.size() ); Dependency dependency = dependencies.get( 0 ); assertEquals( "compile", dependency.getScope() ); Artifact artifact = dependency.getArtifact(); assertNotNull( artifact ); assertEquals( "aid", artifact.getArtifactId() ); assertEquals( "gid", artifact.getGroupId() ); assertEquals( "ver", artifact.getVersion() ); assertEquals( "ext", artifact.getExtension() ); Collection<Exclusion> exclusions = dependency.getExclusions(); assertNotNull( exclusions ); assertEquals( 1, exclusions.size() ); Exclusion exclusion = exclusions.iterator().next(); assertEquals( "exclusion", exclusion.getGroupId() ); assertEquals( "aid", exclusion.getArtifactId() ); assertEquals( "*", exclusion.getClassifier() ); assertEquals( "*", exclusion.getExtension() ); dependency = dependencies.get( 1 ); artifact = dependency.getArtifact(); assertNotNull( artifact ); assertEquals( "aid2", artifact.getArtifactId() ); assertEquals( "gid2", artifact.getGroupId() ); assertEquals( "ver2", artifact.getVersion() ); assertEquals( "ext2", artifact.getExtension() ); } @Test public void testManagedDependencies() throws IOException { String def = "[managed-dependencies]\ngid:aid:ext:ver\n-exclusion:aid\ngid2:aid2:ext2:ver2:runtime"; ArtifactDescription description = parser.parseLiteral( def ); List<Dependency> dependencies = description.getManagedDependencies(); assertNotNull( dependencies ); assertEquals( 2, dependencies.size() ); Dependency dependency = dependencies.get( 0 ); assertEquals( "", dependency.getScope() ); Artifact artifact = dependency.getArtifact(); assertNotNull( artifact ); assertEquals( "aid", artifact.getArtifactId() ); assertEquals( "gid", artifact.getGroupId() ); assertEquals( "ver", artifact.getVersion() ); assertEquals( "ext", artifact.getExtension() ); Collection<Exclusion> exclusions = dependency.getExclusions(); assertNotNull( exclusions ); assertEquals( 1, exclusions.size() ); Exclusion exclusion = exclusions.iterator().next(); assertEquals( "exclusion", exclusion.getGroupId() ); assertEquals( "aid", exclusion.getArtifactId() ); assertEquals( "*", exclusion.getClassifier() ); assertEquals( "*", exclusion.getExtension() ); dependency = dependencies.get( 1 ); assertEquals( "runtime", dependency.getScope() ); artifact = dependency.getArtifact(); assertNotNull( artifact ); assertEquals( "aid2", artifact.getArtifactId() ); assertEquals( "gid2", artifact.getGroupId() ); assertEquals( "ver2", artifact.getVersion() ); assertEquals( "ext2", artifact.getExtension() ); assertEquals( 0, dependency.getExclusions().size() ); } @Test public void testResource() throws IOException { ArtifactDescription description = parser.parse( "ArtifactDataReaderTest.ini" ); Artifact artifact = description.getRelocation(); assertEquals( "gid", artifact.getGroupId() ); assertEquals( "aid", artifact.getArtifactId() ); assertEquals( "ver", artifact.getVersion() ); assertEquals( "ext", artifact.getExtension() ); assertEquals( 1, description.getRepositories().size() ); RemoteRepository repo = description.getRepositories().get( 0 ); assertEquals( "id", repo.getId() ); assertEquals( "type", repo.getContentType() ); assertEquals( "protocol://some/url?for=testing", repo.getUrl() ); assertDependencies( description.getDependencies() ); assertDependencies( description.getManagedDependencies() ); } private void assertDependencies( List<Dependency> deps ) { assertEquals( 4, deps.size() ); Dependency dep = deps.get( 0 ); assertEquals( "scope", dep.getScope() ); assertEquals( false, dep.isOptional() ); assertEquals( 2, dep.getExclusions().size() ); Iterator<Exclusion> it = dep.getExclusions().iterator(); Exclusion excl = it.next(); assertEquals( "gid3", excl.getGroupId() ); assertEquals( "aid", excl.getArtifactId() ); excl = it.next(); assertEquals( "gid2", excl.getGroupId() ); assertEquals( "aid2", excl.getArtifactId() ); Artifact art = dep.getArtifact(); assertEquals( "gid", art.getGroupId() ); assertEquals( "aid", art.getArtifactId() ); assertEquals( "ver", art.getVersion() ); assertEquals( "ext", art.getExtension() ); dep = deps.get( 1 ); assertEquals( "scope", dep.getScope() ); assertEquals( true, dep.isOptional() ); assertEquals( 0, dep.getExclusions().size() ); art = dep.getArtifact(); assertEquals( "gid", art.getGroupId() ); assertEquals( "aid2", art.getArtifactId() ); assertEquals( "ver", art.getVersion() ); assertEquals( "ext", art.getExtension() ); dep = deps.get( 2 ); assertEquals( "scope", dep.getScope() ); assertEquals( true, dep.isOptional() ); assertEquals( 0, dep.getExclusions().size() ); art = dep.getArtifact(); assertEquals( "gid", art.getGroupId() ); assertEquals( "aid", art.getArtifactId() ); assertEquals( "ver3", art.getVersion() ); assertEquals( "ext", art.getExtension() ); dep = deps.get( 3 ); assertEquals( "scope5", dep.getScope() ); assertEquals( true, dep.isOptional() ); assertEquals( 0, dep.getExclusions().size() ); art = dep.getArtifact(); assertEquals( "gid1", art.getGroupId() ); assertEquals( "aid", art.getArtifactId() ); assertEquals( "ver", art.getVersion() ); assertEquals( "ext", art.getExtension() ); } }