1 package com.atlassian.maven.plugins.ampsdispatcher;
2
3 import junit.framework.TestCase;
4 import org.apache.maven.execution.MavenSession;
5 import org.apache.maven.model.Build;
6 import org.apache.maven.model.Plugin;
7 import org.apache.maven.plugin.PluginManager;
8 import org.apache.maven.project.MavenProject;
9
10 import com.atlassian.maven.plugins.amps.util.MavenPropertiesUtils;
11
12 import static org.mockito.Mockito.mock;
13 import static org.mockito.Mockito.when;
14
15 import java.util.ArrayList;
16 import java.util.Arrays;
17 import java.util.List;
18
19 public class TestAbstractAmpsDispatcherMojo extends TestCase
20 {
21
22 MavenProject project;
23 MavenSession session;
24 PluginManager pluginManager;
25 AbstractAmpsDispatcherMojo mojo;
26
27 @Override
28 protected void setUp() throws Exception
29 {
30 super.setUp();
31 project = new MavenProject();
32 session = mock(MavenSession.class);
33 pluginManager = mock(PluginManager.class);
34 mojo = new AbstractAmpsDispatcherMojo(){};
35 mojo.pluginManager = pluginManager;
36 mojo.project = project;
37 mojo.session = session;
38 }
39
40 public void testDetectAmpsProduct()
41 {
42 assertPlugin(true, "maven-refapp-plugin");
43 assertPlugin(true, "maven-confluence-plugin");
44 assertPlugin(true, "maven-jira-plugin");
45 assertPlugin(true, "maven-stash-plugin");
46 assertPlugin(true, "maven-confluence-plugin");
47 assertPlugin(true, "maven-bamboo-plugin");
48 assertPlugin(true, "maven-crowd-plugin");
49 assertPlugin(true, "maven-fecru-plugin");
50 assertPlugin(false, "maven-refappsd-plugin");
51 assertPlugin(false, "mas");
52 }
53
54 public void testDetermineGoal()
55 {
56 when(session.getGoals()).thenReturn(Arrays.asList("foo"));
57 assertEquals("foo", mojo.determineGoal());
58
59 when(session.getGoals()).thenReturn(Arrays.asList("foo:bar"));
60 assertEquals("bar", mojo.determineGoal());
61
62 when(session.getGoals()).thenReturn(Arrays.asList("foo:bar:baz"));
63 assertEquals("baz", mojo.determineGoal());
64
65 when(session.getGoals()).thenReturn(Arrays.asList("foo", "bar"));
66 assertEquals("foo", mojo.determineGoal());
67 }
68
69 private void assertPlugin(boolean expected, String artifactId)
70 {
71 List<Plugin> buildPlugins = new ArrayList<Plugin>();
72 Plugin plugin = new Plugin();
73 plugin.setGroupId("com.atlassian.maven.plugins");
74 plugin.setArtifactId(artifactId);
75 buildPlugins.add(plugin);
76 Build build = new Build();
77 build.setPlugins(buildPlugins);
78 project.setBuild(build);
79 if (expected)
80 {
81 assertEquals(artifactId, MavenPropertiesUtils.detectAmpsProduct(project));
82 }
83 else
84 {
85 assertNotSame(artifactId, MavenPropertiesUtils.detectAmpsProduct(project));
86 }
87 }
88
89 }