PageRenderTime 48ms CodeModel.GetById 17ms RepoModel.GetById 0ms app.codeStats 1ms

/src/test/java/org/codehaus/mojo/license/api/DefaultAtlassianPluginHelperTest.java

https://bitbucket.org/cofarrell/license_maven_plugin
Java | 224 lines | 175 code | 46 blank | 3 comment | 0 complexity | 43599628e5944be8df3d47a132527e6a MD5 | raw file
  1. package org.codehaus.mojo.license.api;
  2. import junit.framework.TestCase;
  3. import org.apache.maven.artifact.Artifact;
  4. import org.apache.maven.artifact.manager.WagonConfigurationException;
  5. import org.apache.maven.artifact.resolver.ArtifactResolver;
  6. import org.apache.maven.wagon.UnsupportedProtocolException;
  7. import org.codehaus.mojo.license.utils.ArtifactCreator;
  8. import org.codehaus.plexus.logging.Logger;
  9. import org.junit.Before;
  10. import org.junit.Test;
  11. import org.junit.runner.RunWith;
  12. import org.mockito.Mock;
  13. import org.mockito.internal.util.collections.Sets;
  14. import org.mockito.runners.MockitoJUnitRunner;
  15. import java.io.File;
  16. import java.io.InputStream;
  17. import java.util.Set;
  18. import static org.junit.Assert.assertThat;
  19. import static org.junit.matchers.JUnitMatchers.hasItem;
  20. import static org.junit.matchers.JUnitMatchers.hasItems;
  21. import static org.mockito.Matchers.any;
  22. import static org.mockito.Matchers.eq;
  23. import static org.mockito.Mockito.mock;
  24. import static org.mockito.Mockito.when;
  25. /**
  26. * Test for {@link org.codehaus.mojo.license.api.DefaultAtlassianPluginHelper}
  27. */
  28. @RunWith(MockitoJUnitRunner.class)
  29. public class DefaultAtlassianPluginHelperTest extends TestCase
  30. {
  31. private DefaultAtlassianPluginHelper atlassianPluginHelper;
  32. @Mock
  33. private ArtifactResolver artifactResolver;
  34. @Mock
  35. private ArtifactCreator artifactCreator;
  36. @Mock
  37. private Logger logger;
  38. @Before
  39. public void setUp() throws UnsupportedProtocolException, WagonConfigurationException
  40. {
  41. this.atlassianPluginHelper = new DefaultAtlassianPluginHelper(artifactResolver, artifactCreator);
  42. this.atlassianPluginHelper.enableLogging(logger);
  43. }
  44. @Test
  45. public void testResolveNoNestedArtifacts() throws Exception
  46. {
  47. final Artifact mockArtifact = createMockArtifact("com.atlassian.licensetest", "nonestedartifact", "1.0-SNAPSHOT", null);
  48. final File noNestedArtifactJar = new File(getClass().getResource("nonestedartifact-1.0-SNAPSHOT.jar").getFile());
  49. when(mockArtifact.getFile()).thenReturn(noNestedArtifactJar);
  50. final Set<Artifact> resolvedArtifacts = atlassianPluginHelper.resolveNestedArtifacts(Sets.newSet(mockArtifact), null, null, false);
  51. assertThat(resolvedArtifacts, hasItem(mockArtifact));
  52. assertEquals(resolvedArtifacts.size(), 1);
  53. }
  54. @Test
  55. public void testResolveOneNestedArtifact() throws Exception
  56. {
  57. final Artifact mockArtifact = createMockArtifact("com.atlassian.licensetest", "onenestedartifact", "1.0-SNAPSHOT", null);
  58. final File oneNestedArtifactJar = new File(getClass().getResource("onenestedartifact-1.0-SNAPSHOT.jar").getFile());
  59. final Artifact nestedArtifact = createMockArtifact("expectedGroup", "expectedArtifact", "expectedVersion", "expectedClassifier");
  60. when(mockArtifact.getFile()).thenReturn(oneNestedArtifactJar);
  61. when(artifactCreator.fromPom(any(InputStream.class), eq("commons-io-2.4.jar")))
  62. .thenReturn(nestedArtifact);
  63. final Set<Artifact> resolvedArtifacts = atlassianPluginHelper.resolveNestedArtifacts(Sets.newSet(mockArtifact), null, null, false);
  64. assertThat(resolvedArtifacts, hasItems(nestedArtifact, mockArtifact));
  65. assertEquals(resolvedArtifacts.size(), 2);
  66. }
  67. @Test
  68. public void testResolveMultipleNestedArtifacts() throws Exception
  69. {
  70. final Artifact mockArtifact = createMockArtifact("com.atlassian.licensetest", "multiplenestedartifact", "1.0-SNAPSHOT", null);
  71. final File multipleNestedArtifactJar = new File(getClass().getResource("multiplenestedartifact-1.0-SNAPSHOT.jar").getFile());
  72. final Artifact nestedArtifact = createMockArtifact("expectedGroup", "expectedArtifact", "expectedVersion", "expectedClassifier");
  73. final Artifact nestedArtifact2 = createMockArtifact("expectedGroup2", "expectedArtifact2", "expectedVersion2", "expectedClassifier2");
  74. when(mockArtifact.getFile()).thenReturn(multipleNestedArtifactJar);
  75. when(artifactCreator.fromPom(any(InputStream.class), eq("commons-io-2.4.jar")))
  76. .thenReturn(nestedArtifact);
  77. when(artifactCreator.fromPom(any(InputStream.class), eq("commons-math-2.2.jar")))
  78. .thenReturn(nestedArtifact2);
  79. final Set<Artifact> resolvedArtifacts = atlassianPluginHelper.resolveNestedArtifacts(Sets.newSet(mockArtifact), null, null, false);
  80. assertThat(resolvedArtifacts, hasItems(nestedArtifact, nestedArtifact2, mockArtifact));
  81. assertEquals(resolvedArtifacts.size(), 3);
  82. }
  83. @Test
  84. public void testResolveOneDeeplyNestedArtifact() throws Exception
  85. {
  86. final Artifact mockArtifact = createMockArtifact("com.atlassian.licensetest", "onedeeplynestedartifact", "1.0-SNAPSHOT", null);
  87. final File oneDeeplyNestedArtifactJar = new File(getClass().getResource("onedeeplynestedartifact-1.0-SNAPSHOT.jar").getFile());
  88. final Artifact deeplyNestedArtifact = createMockArtifact("expectedGroup", "expectedArtifact", "expectedVersion", "expectedClassifier");
  89. final Artifact nestedArtifact = createMockArtifact("expectedGroup", "expectedArtifact", "expectedVersion", "expectedClassifier");
  90. when(mockArtifact.getFile()).thenReturn(oneDeeplyNestedArtifactJar);
  91. when(artifactCreator.fromPom(any(InputStream.class), eq("commons-io-2.4.jar")))
  92. .thenReturn(deeplyNestedArtifact);
  93. when(artifactCreator.fromPom(any(InputStream.class), eq("onenestedartifact-1.0-SNAPSHOT.jar")))
  94. .thenReturn(nestedArtifact);
  95. final Set<Artifact> resolvedArtifacts = atlassianPluginHelper.resolveNestedArtifacts(Sets.newSet(mockArtifact), null, null, false);
  96. assertThat(resolvedArtifacts, hasItems(deeplyNestedArtifact, nestedArtifact, mockArtifact));
  97. assertEquals(resolvedArtifacts.size(), 3);
  98. }
  99. @Test
  100. public void testResolveMultipleDeeplyNestedArtifacts() throws Exception
  101. {
  102. final Artifact mockArtifact = createMockArtifact("com.atlassian.licensetest", "multipledeeplynestedartifacts", "1.0-SNAPSHOT", null);
  103. final File multipleNestedArtifactJar = new File(getClass().getResource("multipledeeplynestedartifacts-1.0-SNAPSHOT.jar").getFile());
  104. final Artifact deeplyNestedArtifact = createMockArtifact("expectedGroup", "expectedArtifact", "expectedVersion", "expectedClassifier");
  105. final Artifact nestedArtifact = createMockArtifact("expectedGroup", "expectedArtifact", "expectedVersion", "expectedClassifier");
  106. final Artifact nestedArtifact2 = createMockArtifact("expectedGroup2", "expectedArtifact2", "expectedVersion2", "expectedClassifier2");
  107. when(mockArtifact.getFile()).thenReturn(multipleNestedArtifactJar);
  108. when(artifactCreator.fromPom(any(InputStream.class), eq("multiplenestedartifact-1.0-SNAPSHOT.jar")))
  109. .thenReturn(nestedArtifact);
  110. when(artifactCreator.fromPom(any(InputStream.class), eq("commons-io-2.4.jar")))
  111. .thenReturn(deeplyNestedArtifact);
  112. when(artifactCreator.fromPom(any(InputStream.class), eq("commons-math-2.2.jar")))
  113. .thenReturn(nestedArtifact2);
  114. final Set<Artifact> resolvedArtifacts = atlassianPluginHelper.resolveNestedArtifacts(Sets.newSet(mockArtifact), null, null, false);
  115. assertThat(resolvedArtifacts, hasItems(deeplyNestedArtifact, nestedArtifact, nestedArtifact2, mockArtifact));
  116. assertEquals(resolvedArtifacts.size(), 4);
  117. }
  118. @Test
  119. public void testNestedUnknownArtifacts() throws Exception
  120. {
  121. final Artifact mockArtifact = createMockArtifact("com.atlassian.licensetest", "onenestedartifact", "1.0-SNAPSHOT", null);
  122. final File oneNestedArtifactJar = new File(getClass().getResource("onenestedartifact-1.0-SNAPSHOT.jar").getFile());
  123. final Artifact nestedArtifact = createMockArtifact("expectedGroup", "expectedArtifact", "expectedVersion", "expectedClassifier");
  124. when(mockArtifact.getFile()).thenReturn(oneNestedArtifactJar);
  125. when(artifactCreator.fromPom(any(InputStream.class), eq("commons-io-2.4.jar")))
  126. .thenReturn(nestedArtifact);
  127. final Set<Artifact> resolvedArtifacts = atlassianPluginHelper.resolveNestedArtifacts(Sets.newSet(mockArtifact), null, null, false);
  128. assertThat(resolvedArtifacts, hasItems(nestedArtifact, mockArtifact));
  129. assertEquals(resolvedArtifacts.size(), 2);
  130. }
  131. @Test
  132. public void testDeeplyNestedUnknownArtifacts() throws Exception
  133. {
  134. final Artifact mockArtifact = createMockArtifact("com.atlassian.licensetest", "multipledeeplynestedartifacts", "1.0-SNAPSHOT", null);
  135. final File multipleNestedArtifactJar = new File(getClass().getResource("multipledeeplynestedartifacts-1.0-SNAPSHOT.jar").getFile());
  136. final Artifact deeplyNestedArtifact = createMockArtifact("expectedGroup", "expectedArtifact", "expectedVersion", "expectedClassifier");
  137. final Artifact nestedArtifact = createMockArtifact("expectedGroup", "expectedArtifact", "expectedVersion", "expectedClassifier");
  138. final Artifact nestedArtifact2 = createMockArtifact("expectedGroup2", "expectedArtifact2", "expectedVersion2", "expectedClassifier2");
  139. when(mockArtifact.getFile()).thenReturn(multipleNestedArtifactJar);
  140. when(artifactCreator.fromPom(any(InputStream.class), eq("multiplenestedartifact-1.0-SNAPSHOT.jar")))
  141. .thenReturn(nestedArtifact);
  142. when(artifactCreator.fromPom(any(InputStream.class), eq("commons-io-2.4.jar")))
  143. .thenReturn(deeplyNestedArtifact);
  144. when(artifactCreator.fromPom(any(InputStream.class), eq("commons-math-2.2.jar")))
  145. .thenReturn(nestedArtifact2);
  146. final Set<Artifact> resolvedArtifacts = atlassianPluginHelper.resolveNestedArtifacts(Sets.newSet(mockArtifact), null, null, false);
  147. assertThat(resolvedArtifacts, hasItems(deeplyNestedArtifact, nestedArtifact, nestedArtifact2, mockArtifact));
  148. assertEquals(resolvedArtifacts.size(), 4);
  149. }
  150. @Test
  151. public void testIsNotAtlassianArtifact() throws Exception
  152. {
  153. final Artifact mockArtifact = createMockArtifact("com.not.atlassian", "some-artifact", "3.0", null);
  154. assertFalse(atlassianPluginHelper.isAtlassianArtifact(mockArtifact));
  155. final Artifact mockArtifact2 = createMockArtifact("com.atlass", "some-artifact", "3.0", null);
  156. assertFalse(atlassianPluginHelper.isAtlassianArtifact(mockArtifact2));
  157. }
  158. @Test
  159. public void testIsAtlassianArtifact() throws Exception
  160. {
  161. final Artifact mockArtifact = createMockArtifact("com.atlassian.stuff", "some-artifact", "3.0", null);
  162. assertTrue(atlassianPluginHelper.isAtlassianArtifact(mockArtifact));
  163. final Artifact mockArtifact2 = createMockArtifact("com.atlassian", "some-artifact", "3.0", null);
  164. assertTrue(atlassianPluginHelper.isAtlassianArtifact(mockArtifact2));
  165. final Artifact mockArtifact3 = createMockArtifact("com.atlassian", "some-artifact", "3.0-SNAPSHOT", null);
  166. assertTrue(atlassianPluginHelper.isAtlassianArtifact(mockArtifact3));
  167. }
  168. private Artifact createMockArtifact(final String groupId, final String artifactId, final String version,
  169. final String classifier)
  170. {
  171. final Artifact mockArtifact = mock(Artifact.class);
  172. when(mockArtifact.getGroupId()).thenReturn(groupId);
  173. when(mockArtifact.getArtifactId()).thenReturn(artifactId);
  174. when(mockArtifact.getVersion()).thenReturn(version);
  175. when(mockArtifact.getClassifier()).thenReturn(classifier);
  176. return mockArtifact;
  177. }
  178. }