/*
* 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.
*/
package org.apache.openejb.loader.provisining;
import org.apache.openejb.loader.Files;
import org.apache.openejb.loader.IO;
import org.junit.Before;
import org.junit.Test;
import java.io.File;
import java.io.FileOutputStream;
import java.util.Collections;
import java.util.jar.JarFile;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
public class MavenResolverTest {
private MavenResolver resolver;
@Before
public void init() {
resolver = new MavenResolver();
resolver.setResolver(new ProvisioningResolver());
}
@Test
public void local() throws Exception {
assertEquals(ProvisioningResolver.LocalInputStream.class.getName(), resolver.resolve("mvn:junit:junit:4.12:jar").getClass().getName()); // use version of the pom to ensure it is local
}
private File getAvailableFile() {
File file = null;
for (int i = 0; i < 100; i++) {
file = new File("target/test/foo_" + i + ".jar");
if (!file.exists()) {
Files.mkdirs(file.getParentFile());
break;
}
}
return file;
}
public void resolveCommon(String path) throws Exception {
final File file = getAvailableFile();
final FileOutputStream to = new FileOutputStream(file);
IO.copy(resolver.resolve(path), to);
IO.close(to);
assertTrue(file.exists());
assertTrue(Collections.list(new JarFile(file).entries()).size() > 300 /* 323 */); // just check it is not an error page
}
@Test
public void resolve() throws Exception {
resolveCommon("mvn:junit:junit:4.12:jar");
resolveCommon("mvn:http://repo1.maven.org/maven2/!junit:junit:4.12:jar");
resolveCommon("mvn:http://repo1.maven.org/maven2/!junit:junit:LATEST:jar");
}
}