1 package org.apache.maven.lifecycle.internal.builder.multithreaded;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 import junit.framework.TestCase;
18 import org.apache.maven.execution.ProjectDependencyGraph;
19 import org.apache.maven.lifecycle.internal.ProjectBuildList;
20 import org.apache.maven.lifecycle.internal.stub.ProjectDependencyGraphStub;
21 import org.apache.maven.project.MavenProject;
22
23 import java.util.List;
24 import java.util.Set;
25
26 public class ConcurrencyDependencyGraphTest extends TestCase {
27
28 public void testGraph() throws Exception {
29
30 ProjectBuildList projectBuildList = ProjectDependencyGraphStub.getProjectBuildList(
31 ProjectDependencyGraphStub.getMavenSession() );
32
33 ProjectDependencyGraph projectDependencyGraph = new ProjectDependencyGraphStub();
34
35 ConcurrencyDependencyGraph graph = new ConcurrencyDependencyGraph( projectBuildList, projectDependencyGraph );
36
37
38 assertEquals( 0, graph.getFinishedProjects().size() );
39 assertEquals( 6, graph.getNumberOfBuilds() );
40
41 List<MavenProject> rootSchedulableBuilds = graph.getRootSchedulableBuilds();
42
43 assertEquals( 1, rootSchedulableBuilds.size() );
44 assertEquals( ProjectDependencyGraphStub.A, rootSchedulableBuilds.iterator().next() );
45
46 List<MavenProject> dependenciesA = graph.getDependencies( ProjectDependencyGraphStub.A );
47 assertEquals( 0, dependenciesA.size() );
48
49 assertEquals( 6, graph.getUnfinishedProjects().size() );
50
51 List<MavenProject> schedulableNewProcesses = graph.markAsFinished( ProjectDependencyGraphStub.A );
52
53 assertEquals( 2, schedulableNewProcesses.size() );
54 assertEquals( 1, graph.getFinishedProjects().size() );
55
56 graph.markAsFinished( ProjectDependencyGraphStub.A );
57
58 assertEquals( 1, graph.getFinishedProjects().size() );
59
60 Set<MavenProject> unfinishedProjects = graph.getUnfinishedProjects();
61 assertEquals( 5, unfinishedProjects.size() );
62
63 graph.markAsFinished( schedulableNewProcesses.get( 0 ) );
64 assertEquals( 2, graph.getFinishedProjects().size() );
65 assertEquals( 4, graph.getUnfinishedProjects().size() );
66
67 List<MavenProject> dependenciesC = graph.getDependencies( ProjectDependencyGraphStub.C );
68
69 assertEquals( 1, dependenciesC.size() );
70
71 List<MavenProject> dependenciesX = graph.getDependencies( ProjectDependencyGraphStub.X );
72
73 assertEquals( 2, dependenciesX.size() );
74
75 List<MavenProject> activeDependenciesC = graph.getActiveDependencies( ProjectDependencyGraphStub.C );
76
77 assertEquals( 0, activeDependenciesC.size() );
78
79 List<MavenProject> activeDependenciesX = graph.getActiveDependencies( ProjectDependencyGraphStub.X );
80
81 assertEquals( 1, activeDependenciesX.size() );
82 }
83 }