/******************************************************************************* * 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.internal.ant; import static org.hamcrest.Matchers.*; import static org.junit.Assert.*; import java.io.File; import org.apache.tools.ant.Project; import org.junit.Before; import org.junit.Test; import org.eclipse.aether.artifact.Artifact; import org.eclipse.aether.artifact.DefaultArtifact; import org.eclipse.aether.internal.ant.ProjectWorkspaceReader; import org.eclipse.aether.internal.ant.types.Pom; public class ProjectWorkspaceReaderTest { private ProjectWorkspaceReader reader; private Project project; @Before public void setUp() throws Exception { this.reader = new ProjectWorkspaceReader(); this.project = new Project(); project.setProperty( "user.home", System.getProperty( "user.home" ) ); } private Artifact artifact( String coords ) { return new DefaultArtifact( coords ); } private File getFile( String name ) { return new File( "src/test/resources/ProjectWorkspaceReader", name ); } @Test public void testFindPom() { Pom pom = new Pom(); pom.setProject( project ); pom.setFile( getFile( "dummy-pom.xml" ) ); reader.addPom( pom ); assertEquals( pom.getFile(), reader.findArtifact( artifact( "test:dummy:pom:0.1-SNAPSHOT" ) ) ); assertNull( reader.findArtifact( artifact( "unavailable:test:pom:0.1-SNAPSHOT" ) ) ); } @Test public void testFindArtifact() { Pom pom = new Pom(); pom.setProject( project ); pom.setFile( getFile( "dummy-pom.xml" ) ); reader.addPom( pom ); org.eclipse.aether.internal.ant.types.Artifact artifact = new org.eclipse.aether.internal.ant.types.Artifact(); artifact.setProject( project ); artifact.addPom( pom ); artifact.setFile( getFile( "dummy-file.txt" ) ); reader.addArtifact( artifact ); assertEquals( artifact.getFile(), reader.findArtifact( artifact( "test:dummy:txt:0.1-SNAPSHOT" ) ) ); assertNull( reader.findArtifact( artifact( "unavailable:test:jar:0.1-SNAPSHOT" ) ) ); } @Test public void testFindVersions() { Pom pom1 = new Pom(); pom1.setProject( project ); pom1.setCoords( "test:dummy:1-SNAPSHOT" ); org.eclipse.aether.internal.ant.types.Artifact artifact1 = new org.eclipse.aether.internal.ant.types.Artifact(); artifact1.setProject( project ); artifact1.addPom( pom1 ); artifact1.setFile( getFile( "dummy-file.txt" ) ); reader.addArtifact( artifact1 ); Pom pom2 = new Pom(); pom2.setProject( project ); pom2.setCoords( "test:dummy:2-SNAPSHOT" ); org.eclipse.aether.internal.ant.types.Artifact artifact2 = new org.eclipse.aether.internal.ant.types.Artifact(); artifact2.setProject( project ); artifact2.addPom( pom2 ); artifact2.setFile( getFile( "dummy-file.txt" ) ); reader.addArtifact( artifact2 ); assertThat( reader.findVersions( artifact( "test:dummy:txt:[0,)" ) ), containsInAnyOrder( "1-SNAPSHOT", "2-SNAPSHOT" ) ); } }