1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.lifecycle.internal;
20
21 import org.apache.maven.AbstractCoreMavenComponentTestCase;
22 import org.apache.maven.execution.MavenSession;
23 import org.apache.maven.lifecycle.MavenExecutionPlan;
24 import org.apache.maven.lifecycle.internal.stub.BuildPluginManagerStub;
25 import org.apache.maven.lifecycle.internal.stub.DefaultLifecyclesStub;
26 import org.apache.maven.lifecycle.internal.stub.PluginPrefixResolverStub;
27 import org.apache.maven.lifecycle.internal.stub.PluginVersionResolverStub;
28 import org.apache.maven.lifecycle.internal.stub.ProjectDependencyGraphStub;
29 import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
30 import org.junit.jupiter.api.Test;
31
32 import static org.junit.jupiter.api.Assertions.assertEquals;
33
34
35
36 class LifecycleExecutionPlanCalculatorTest extends AbstractCoreMavenComponentTestCase {
37
38 @Test
39 void testCalculateExecutionPlanWithGoalTasks() throws Exception {
40 MojoDescriptorCreator mojoDescriptorCreator = createMojoDescriptorCreator();
41 LifecycleExecutionPlanCalculator lifecycleExecutionPlanCalculator =
42 createExecutionPlaceCalculator(mojoDescriptorCreator);
43
44 final GoalTask goalTask1 = new GoalTask("compiler:compile");
45 final GoalTask goalTask2 = new GoalTask("surefire:test");
46 final TaskSegment taskSegment1 = new TaskSegment(false, goalTask1, goalTask2);
47 final MavenSession session1 = ProjectDependencyGraphStub.getMavenSession(ProjectDependencyGraphStub.A);
48
49 MavenExecutionPlan executionPlan = lifecycleExecutionPlanCalculator.calculateExecutionPlan(
50 session1, ProjectDependencyGraphStub.A, taskSegment1.getTasks());
51 assertEquals(2, executionPlan.size());
52
53 final GoalTask goalTask3 = new GoalTask("surefire:test");
54 final TaskSegment taskSegment2 = new TaskSegment(false, goalTask1, goalTask2, goalTask3);
55 MavenExecutionPlan executionPlan2 = lifecycleExecutionPlanCalculator.calculateExecutionPlan(
56 session1, ProjectDependencyGraphStub.A, taskSegment2.getTasks());
57 assertEquals(3, executionPlan2.size());
58 }
59
60
61
62 public static LifecycleExecutionPlanCalculator createExecutionPlaceCalculator(
63 MojoDescriptorCreator mojoDescriptorCreator) throws ComponentLookupException {
64 LifecyclePluginResolver lifecyclePluginResolver = new LifecyclePluginResolver(new PluginVersionResolverStub());
65 return new DefaultLifecycleExecutionPlanCalculator(
66 new BuildPluginManagerStub(),
67 DefaultLifecyclesStub.createDefaultLifecycles(),
68 mojoDescriptorCreator,
69 lifecyclePluginResolver);
70 }
71
72 public static MojoDescriptorCreator createMojoDescriptorCreator() {
73 return new MojoDescriptorCreator(
74 new PluginVersionResolverStub(),
75 new BuildPluginManagerStub(),
76 new PluginPrefixResolverStub(),
77 new LifecyclePluginResolver(new PluginVersionResolverStub()));
78 }
79
80 @Override
81 protected String getProjectsDirectory() {
82 return "src/test/projects/lifecycle-executor";
83 }
84 }