blob: cac7d146a4a7e45bbbfd8d9106ad2269a561d82a [file] [log] [blame]
//
// ========================================================================
// Copyright (c) 1995-2017 Mort Bay Consulting Pty. Ltd.
// ------------------------------------------------------------------------
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v1.0
// and Apache License v2.0 which accompanies this distribution.
//
// The Eclipse Public License is available at
// http://www.eclipse.org/legal/epl-v10.html
//
// The Apache License v2.0 is available at
// http://www.opensource.org/licenses/apache2.0.php
//
// You may elect to redistribute this code under either of these licenses.
// ========================================================================
//
package org.eclipse.jetty.start.fileinits;
import static org.hamcrest.Matchers.containsString;
import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.notNullValue;
import static org.hamcrest.Matchers.nullValue;
import static org.junit.Assert.assertThat;
import java.io.IOException;
import java.net.URI;
import java.nio.file.Path;
import org.eclipse.jetty.start.BaseHome;
import org.eclipse.jetty.start.config.ConfigSources;
import org.eclipse.jetty.start.config.JettyBaseConfigSource;
import org.eclipse.jetty.start.config.JettyHomeConfigSource;
import org.eclipse.jetty.start.fileinits.MavenLocalRepoFileInitializer.Coordinates;
import org.eclipse.jetty.toolchain.test.TestingDir;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
public class MavenLocalRepoFileInitializerTest
{
@Rule
public ExpectedException expectedException = ExpectedException.none();
@Rule
public TestingDir testdir = new TestingDir();
private BaseHome baseHome;
@Before
public void setupBaseHome() throws IOException
{
Path homeDir = testdir.getEmptyPathDir();
ConfigSources config = new ConfigSources();
config.add(new JettyHomeConfigSource(homeDir));
config.add(new JettyBaseConfigSource(homeDir));
this.baseHome = new BaseHome(config);
}
@Test
public void testGetCoordinate_NotMaven()
{
MavenLocalRepoFileInitializer repo = new MavenLocalRepoFileInitializer(baseHome);
String ref = "http://www.eclipse.org/jetty";
Coordinates coords = repo.getCoordinates(URI.create(ref));
assertThat("Coords",coords,nullValue());
}
@Test
public void testGetCoordinate_InvalidMaven()
{
MavenLocalRepoFileInitializer repo = new MavenLocalRepoFileInitializer(baseHome);
String ref = "maven://www.eclipse.org/jetty";
expectedException.expect(RuntimeException.class);
expectedException.expectMessage(containsString("Not a valid maven:// uri"));
repo.getCoordinates(URI.create(ref));
}
@Test
public void testGetCoordinate_Normal()
{
MavenLocalRepoFileInitializer repo = new MavenLocalRepoFileInitializer(baseHome);
String ref = "maven://org.eclipse.jetty/jetty-start/9.3.x";
Coordinates coords = repo.getCoordinates(URI.create(ref));
assertThat("Coordinates",coords,notNullValue());
assertThat("coords.groupId",coords.groupId,is("org.eclipse.jetty"));
assertThat("coords.artifactId",coords.artifactId,is("jetty-start"));
assertThat("coords.version",coords.version,is("9.3.x"));
assertThat("coords.type",coords.type,is("jar"));
assertThat("coords.classifier",coords.classifier,nullValue());
assertThat("coords.toCentralURI", coords.toCentralURI().toASCIIString(),
is("http://central.maven.org/maven2/org/eclipse/jetty/jetty-start/9.3.x/jetty-start-9.3.x.jar"));
}
@Test
public void testGetCoordinate_Zip()
{
MavenLocalRepoFileInitializer repo = new MavenLocalRepoFileInitializer(baseHome);
String ref = "maven://org.eclipse.jetty/jetty-distribution/9.3.x/zip";
Coordinates coords = repo.getCoordinates(URI.create(ref));
assertThat("Coordinates",coords,notNullValue());
assertThat("coords.groupId",coords.groupId,is("org.eclipse.jetty"));
assertThat("coords.artifactId",coords.artifactId,is("jetty-distribution"));
assertThat("coords.version",coords.version,is("9.3.x"));
assertThat("coords.type",coords.type,is("zip"));
assertThat("coords.classifier",coords.classifier,nullValue());
assertThat("coords.toCentralURI", coords.toCentralURI().toASCIIString(),
is("http://central.maven.org/maven2/org/eclipse/jetty/jetty-distribution/9.3.x/jetty-distribution-9.3.x.zip"));
}
@Test
public void testGetCoordinate_TestJar()
{
MavenLocalRepoFileInitializer repo = new MavenLocalRepoFileInitializer(baseHome);
String ref = "maven://org.eclipse.jetty/jetty-http/9.3.x/jar/tests";
Coordinates coords = repo.getCoordinates(URI.create(ref));
assertThat("Coordinates",coords,notNullValue());
assertThat("coords.groupId",coords.groupId,is("org.eclipse.jetty"));
assertThat("coords.artifactId",coords.artifactId,is("jetty-http"));
assertThat("coords.version",coords.version,is("9.3.x"));
assertThat("coords.type",coords.type,is("jar"));
assertThat("coords.classifier",coords.classifier,is("tests"));
assertThat("coords.toCentralURI", coords.toCentralURI().toASCIIString(),
is("http://central.maven.org/maven2/org/eclipse/jetty/jetty-http/9.3.x/jetty-http-9.3.x-tests.jar"));
}
@Test
public void testGetCoordinate_Test_UnspecifiedType()
{
MavenLocalRepoFileInitializer repo = new MavenLocalRepoFileInitializer(baseHome);
String ref = "maven://org.eclipse.jetty/jetty-http/9.3.x//tests";
Coordinates coords = repo.getCoordinates(URI.create(ref));
assertThat("Coordinates",coords,notNullValue());
assertThat("coords.groupId",coords.groupId,is("org.eclipse.jetty"));
assertThat("coords.artifactId",coords.artifactId,is("jetty-http"));
assertThat("coords.version",coords.version,is("9.3.x"));
assertThat("coords.type",coords.type,is("jar"));
assertThat("coords.classifier",coords.classifier,is("tests"));
assertThat("coords.toCentralURI", coords.toCentralURI().toASCIIString(),
is("http://central.maven.org/maven2/org/eclipse/jetty/jetty-http/9.3.x/jetty-http-9.3.x-tests.jar"));
}
}