blob: 4864b32e44ffdc2e3dbcff2362b7cede5bf3d5ac [file] [log] [blame]
package org.eclipse.aether.internal.test.util;
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
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() );
}
}