/*
* Copyright 2012 James Moger
*
* Licensed 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.
*/
package org.moxie.tests;
import java.io.File;
import java.io.IOException;
import java.util.Set;
import org.junit.Assert;
import org.junit.Test;
import org.moxie.BuildConfig;
import org.moxie.Dependency;
import org.moxie.Pom;
import org.moxie.Repository;
import org.moxie.Scope;
import org.moxie.Solver;
import org.moxie.console.Console;
import org.moxie.maxml.MaxmlException;
import org.moxie.utils.FileUtils;
public class PomTest extends Assert {
private Solver getSolver() throws IOException, MaxmlException {
// set mx.root to a temporary folder
File folder = new File(File.createTempFile("who", "cares").getParentFile(), "moxie");
if (folder.exists()) {
FileUtils.delete(folder);
}
folder.mkdirs();
System.setProperty("mx.root", folder.getAbsolutePath());
System.out.println("mx.root=" + folder.getAbsolutePath());
BuildConfig config = new BuildConfig(new File("test.moxie"), null);
Solver solver = new Solver(new Console(), config);
return solver;
}
private Solver solve(Dependency dep) throws IOException, MaxmlException {
Solver solver = getSolver();
solver.getBuildConfig().getPom().addDependency(dep, Scope.compile);
solver.solve();
return solver;
}
@Test
public void testParsing1() throws IOException, MaxmlException {
Dependency dep = new Dependency("org.eclipse.jetty:jetty-ajp:7.4.2.v20110526");
Solver solver = solve(dep);
Pom pom = solver.getPom(dep);
assertEquals("org.eclipse.jetty", pom.groupId);
assertEquals("7.4.2.v20110526", pom.version);
}
@Test
public void testParentProperties() throws Exception {
Dependency dep = new Dependency("org.jboss.resteasy.mobile:resteasy-mobile:1.0.0");
Solver solver = solve(dep);
// [httpcomponents-client:4.0.3]
// ${httpcore.version} = 4.0.1
// [httpclient:4.0.3]
// [httpcore:${httpcore.version}]
// [resteasy-mobile:1.0.0]
Set<Dependency> deps = solver.getDependencies(Scope.compile);
Dependency httpcore = new Dependency("org.apache.httpcomponents:httpcore:4.0.1");
assertTrue(deps.contains(httpcore));
}
@Test
public void testRedirects() throws Exception {
// Eclipse.org redirects http:// requests to https://
Solver solver = getSolver();
Repository r = new Repository("EclipseSnapshots", "http://repo.eclipse.org/content/groups/releases");
Dependency dep = new Dependency("org.eclipse.jgit:org.eclipse.jgit:3.1.0.201310021548-r");
File file = r.download(solver, dep, dep.extension);
assertTrue(file.exists());
}
}