Package io.fabric8.fab

Source Code of io.fabric8.fab.MavenResolverTest

/**
*  Copyright 2005-2014 Red Hat, Inc.
*
*  Red Hat 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 io.fabric8.fab;

import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.sonatype.aether.artifact.Artifact;
import org.sonatype.aether.repository.RemoteRepository;
import org.sonatype.aether.util.artifact.DefaultArtifact;

import java.io.File;
import java.util.List;

import static org.junit.Assert.*;

public class MavenResolverTest extends DependencyTestSupport {
    private static final transient Logger LOG = LoggerFactory.getLogger(MavenResolverTest.class);

    protected boolean testJarFile = true;

    protected String groupId = "org.apache.camel";
    protected String artifactId = "camel-core";
    protected String version = "2.7.0";
    protected String extension = "jar";
    protected String classifier = "";

    @Test
    public void testArchetypeResolve() throws Exception {
        Artifact artifact = new DefaultArtifact(groupId, artifactId, "jar", version);
        File file = mavenResolver.resolveFile(artifact);
        assertNotNull("File null for " + artifact, file);
        assertTrue("File should exist for " + artifact, file.exists());
    }

    @Test
    public void testResolveDependenciesByGroupAndArtifactId() throws Exception {
        LOG.info("Resolving " + groupId + "/" + artifactId + "/" + version);
        DependencyTreeResult result = mavenResolver.collectDependencies(groupId, artifactId, version, extension, classifier, false, DependencyFilters.testScopeOrOptionalFilter);
        assertNotNull("result", result);

        DependencyTree tree = result.getTree();
        assertNotNull("tree", result);

        List<DependencyTree> children = tree.getChildren();
        for (DependencyTree child : children) {
            LOG.info("Dependency: " + child + " optional: " + child.isOptional() + " scope: " + child.getScope());
            if (testJarFile) {
                File jarFile = child.getJarFile();
                assertNotNull("jar file should not be null!", jarFile);
                assertTrue("jar file for " + child + " should exist! " + jarFile, jarFile.exists());
            }
        }
       
        assertTrue("Should have child dependencies!", children.size() > 0);
    }

    @Test
    public void testGetRemoteRepositories() {
        MavenResolverImpl resolver = new MavenResolverImpl();
        resolver.setRepositories(new String[] { "http://user:password@host1/path/to/repo" , "http://host2/path/to/repo@snapshots"});
       
        List<RemoteRepository> repositories = resolver.getRemoteRepositories();       
        assertEquals(2, repositories.size());
       
        // first repository is http://user:password@somehost/path/to/repo
        RemoteRepository repo = repositories.get(0);
        assertEquals("host1", repo.getHost());
        assertEquals("user", repo.getAuthentication().getUsername());
        assertEquals("password", repo.getAuthentication().getPassword());

        // second repository is http://host2/path/to/repo@snapshots
        repo = repositories.get(1);
        assertEquals("host2", repo.getHost());
        assertNull(repo.getAuthentication());
        assertTrue("@snapshots enables snapshots", repo.getPolicy(true).isEnabled());
    }

}
TOP

Related Classes of io.fabric8.fab.MavenResolverTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.