1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven;
20
21 import java.io.File;
22 import java.util.Collections;
23 import java.util.List;
24 import java.util.Properties;
25 import java.util.Set;
26
27 import org.apache.maven.artifact.Artifact;
28 import org.apache.maven.execution.MavenSession;
29 import org.apache.maven.project.MavenProject;
30 import org.codehaus.plexus.component.annotations.Requirement;
31
32 import static org.hamcrest.Matchers.endsWith;
33 import static org.junit.Assert.assertThat;
34
35 public class ProjectDependenciesResolverTest extends AbstractCoreMavenComponentTestCase {
36 @Requirement
37 private ProjectDependenciesResolver resolver;
38
39 protected void setUp() throws Exception {
40 super.setUp();
41 resolver = lookup(ProjectDependenciesResolver.class);
42 }
43
44 @Override
45 protected void tearDown() throws Exception {
46 resolver = null;
47 super.tearDown();
48 }
49
50 protected String getProjectsDirectory() {
51 return "src/test/projects/project-dependencies-resolver";
52 }
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78 public void testSystemScopeDependencies() throws Exception {
79 MavenSession session = createMavenSession(null);
80 MavenProject project = session.getCurrentProject();
81
82 new ProjectBuilder(project)
83 .addDependency(
84 "com.mycompany",
85 "system-dependency",
86 "1.0",
87 Artifact.SCOPE_SYSTEM,
88 new File(getBasedir(), "pom.xml").getAbsolutePath());
89
90 Set<Artifact> artifactDependencies =
91 resolver.resolve(project, Collections.singleton(Artifact.SCOPE_COMPILE), session);
92 assertEquals(1, artifactDependencies.size());
93 }
94
95 public void testSystemScopeDependencyIsPresentInTheCompileClasspathElements() throws Exception {
96 File pom = getProject("it0063");
97
98 Properties eps = new Properties();
99 eps.setProperty("jre.home", new File(pom.getParentFile(), "jdk/jre").getPath());
100
101 MavenSession session = createMavenSession(pom, eps);
102 MavenProject project = session.getCurrentProject();
103
104 project.setArtifacts(resolver.resolve(project, Collections.singleton(Artifact.SCOPE_COMPILE), session));
105
106 List<String> elements = project.getCompileClasspathElements();
107 assertEquals(2, elements.size());
108
109 @SuppressWarnings("deprecation")
110 List<Artifact> artifacts = project.getCompileArtifacts();
111 assertEquals(1, artifacts.size());
112 assertThat(artifacts.get(0).getFile().getName(), endsWith("tools.jar"));
113 }
114 }