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