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  }