blob: cf3d545f605fc1b96559deb7eaff8dc5978abe07 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2010, 2014 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.ant;
import static org.hamcrest.MatcherAssert.*;
import static org.hamcrest.Matchers.*;
import java.io.File;
import java.io.IOException;
import java.util.Arrays;
import java.util.Map;
import org.apache.tools.ant.types.Path;
public class ResolveTest
extends AntBuildsTest
{
public void testResolveGlobalPom()
{
executeTarget( "testResolveGlobalPom" );
String prop = getProject().getProperty( "test.resolve.path.org.eclipse.aether:aether-api:jar" );
assertThat( "aether-api was not resolved as a property", prop, notNullValue() );
assertThat( "aether-api was not resolved to default local repository", prop,
allOf( containsString( "aether-api" ), endsWith( ".jar" ) ) );
}
public void testResolveOverrideGlobalPom()
{
executeTarget( "testResolveOverrideGlobalPom" );
String prop = getProject().getProperty( "test.resolve.path.org.eclipse.aether:aether-api:jar" );
assertThat( "aether-api was not resolved as a property", prop, notNullValue() );
assertThat( "aether-api was not resolved to default local repository", prop,
allOf( containsString( "aether-api" ), endsWith( ".jar" ) ) );
}
public void testResolveGlobalPomIntoOtherLocalRepo()
{
executeTarget( "testResolveGlobalPomIntoOtherLocalRepo" );
String prop = getProject().getProperty( "test.resolve.path.org.eclipse.aether:aether-api:jar" );
assertThat( "aether-api was not resolved as a property", prop, notNullValue() );
assertThat( "aether-api was not resolved to default local repository", prop.replace( '\\', '/' ),
endsWith( "local-repo-custom/org/eclipse/aether/aether-api/0.9.0.M3/aether-api-0.9.0.M3.jar" ) );
}
public void testResolveCustomFileLayout()
throws IOException
{
File dir = new File( BUILD_DIR, "resolve-custom-layout" );
executeTarget( "testResolveCustomFileLayout" );
assertThat( "aether-api was not saved with custom file layout",
new File( dir, "org.eclipse.aether/aether-api/org/eclipse/aether/jar" ).exists() );
}
public void testResolveAttachments()
throws IOException
{
File dir = new File( BUILD_DIR, "resolve-attachments" );
executeTarget( "testResolveAttachments" );
File jdocDir = new File(dir, "javadoc");
assertThat( "aether-api-javadoc was not saved with custom file layout",
new File( jdocDir, "org.eclipse.aether-aether-api-javadoc.jar" ).exists() );
assertThat( "found non-javadoc files", Arrays.asList( jdocDir.list() ), everyItem( endsWith( "javadoc.jar" ) ) );
File sourcesDir = new File( dir, "sources" );
assertThat( "aether-api-sources was not saved with custom file layout",
new File( sourcesDir, "org.eclipse.aether-aether-api-sources.jar" ).exists() );
assertThat( "found non-sources files", Arrays.asList( sourcesDir.list() ),
everyItem( endsWith( "sources.jar" ) ) );
}
public void testResolvePath()
{
executeTarget( "testResolvePath" );
Map<?, ?> refs = getProject().getReferences();
Object obj = refs.get( "out" );
assertThat( "ref 'out' is no path", obj, instanceOf( Path.class ) );
Path path = (Path) obj;
String[] elements = path.list();
assertThat( "no aether-api on classpath", elements,
hasItemInArray( allOf( containsString( "aether-api" ), endsWith( ".jar" ) ) ) );
}
public void testResolveDepsFromFile()
{
executeTarget( "testResolveDepsFromFile" );
String prop = getProject().getProperty( "test.resolve.path.org.eclipse.aether:aether-spi:jar" );
assertThat( "aether-spi was not resolved as a property", prop, notNullValue() );
assertThat( "aether-spi was not resolved to default local repository", prop,
allOf( containsString( "aether-spi" ), endsWith( ".jar" ) ) );
prop = getProject().getProperty( "test.resolve.path.org.eclipse.aether:aether-api:jar" );
assertThat( "aether-api was resolved as a property", prop, nullValue() );
}
public void testResolveNestedDependencyCollections()
{
executeTarget( "testResolveNestedDependencyCollections" );
String prop = getProject().getProperty( "test.resolve.path.org.eclipse.aether:aether-spi:jar" );
assertThat( "aether-spi was not resolved as a property", prop, notNullValue() );
prop = getProject().getProperty( "test.resolve.path.org.eclipse.aether:aether-util:jar" );
assertThat( "aether-util was not resolved as a property", prop, notNullValue() );
prop = getProject().getProperty( "test.resolve.path.org.eclipse.aether:aether-api:jar" );
assertThat( "aether-api was resolved as a property", prop, nullValue() );
}
}