1 package com.atlassian.plugin;
2
3 import com.atlassian.plugin.test.PluginJarBuilder;
4 import com.google.common.collect.ImmutableMap;
5 import org.junit.Test;
6
7 import java.io.File;
8 import java.io.IOException;
9
10 import static org.junit.Assert.assertFalse;
11 import static org.junit.Assert.assertNotNull;
12 import static org.junit.Assert.assertNull;
13 import static org.junit.Assert.assertTrue;
14
15 public final class TestJarPluginArtifact
16 {
17 @Test
18 public void testGetResourceAsStream() throws IOException
19 {
20 final JarPluginArtifact artifact = new JarPluginArtifact(new PluginJarBuilder()
21 .addResource("foo", "bar")
22 .build());
23
24 assertNotNull(artifact.getResourceAsStream("foo"));
25 assertNull(artifact.getResourceAsStream("bar"));
26 }
27
28 @Test
29 public void testContainsJavaExecutableCodeWithNoJava() throws Exception
30 {
31 final JarPluginArtifact artifact = new JarPluginArtifact(new PluginJarBuilder()
32 .addResource("foo", "bar")
33 .build());
34
35 assertFalse(artifact.containsJavaExecutableCode());
36 }
37
38 @Test
39 public void testContainsJavaExecutableCodeWithNoJavaAndNoManifest() throws Exception
40 {
41 final JarPluginArtifact artifact = new JarPluginArtifact(new PluginJarBuilder()
42 .addResource("foo", "bar")
43 .buildWithNoManifest());
44
45 assertFalse(artifact.containsJavaExecutableCode());
46 }
47
48 @Test
49 public void testContainsJavaExecutableCodeAsJavaClass() throws Exception
50 {
51 final JarPluginArtifact artifact = new JarPluginArtifact(new PluginJarBuilder()
52 .addFormattedJava("foo.Bar",
53 "package foo;",
54 "public final class Bar {}")
55 .build());
56
57 assertTrue(artifact.containsJavaExecutableCode());
58 }
59
60 @Test
61 public void testContainsJavaExecutableCodeAsJavaLibrary() throws Exception
62 {
63 File innerJar = new PluginJarBuilder().build();
64
65 final JarPluginArtifact artifact = new JarPluginArtifact(new PluginJarBuilder()
66 .addFile("innerJar.jar", innerJar)
67 .build());
68
69 assertTrue(artifact.containsJavaExecutableCode());
70 }
71
72 @Test
73 public void testContainsJavaExecutableCodeAsSpringContextXmlFiles() throws Exception
74 {
75 final JarPluginArtifact artifact = new JarPluginArtifact(new PluginJarBuilder()
76 .addFormattedResource("META-INF/spring/file.xml", "bla")
77 .build());
78
79 assertTrue(artifact.containsJavaExecutableCode());
80 }
81
82 @Test
83 public void testContainsJavaExecutableCodeAsSpringContextManifestEntry() throws Exception
84 {
85 final JarPluginArtifact artifact = new JarPluginArtifact(new PluginJarBuilder()
86 .manifest(ImmutableMap.of("Spring-Context", "bla"))
87 .build());
88
89 assertTrue(artifact.containsJavaExecutableCode());
90 }
91
92 @Test
93 public void testContainsJavaExecutableCodeAsBundleActivator() throws Exception
94 {
95 final JarPluginArtifact artifact = new JarPluginArtifact(new PluginJarBuilder()
96 .manifest(ImmutableMap.of("Bundle-Activator", "bla"))
97 .build());
98
99 assertTrue(artifact.containsJavaExecutableCode());
100 }
101
102 @Test
103 public void allowsReferenceDefaultsToFalse() throws Exception
104 {
105 final JarPluginArtifact jarPluginArtifact = new JarPluginArtifact(new File("some.jar"));
106 assertFalse(jarPluginArtifact.allowsReference());
107 }
108
109 @Test
110 public void allowsReferenceFalseIsPropagated() throws Exception
111 {
112 final JarPluginArtifact jarPluginArtifact = new JarPluginArtifact(new File("some.jar"), false);
113 assertFalse(jarPluginArtifact.allowsReference());
114 }
115
116 @Test
117 public void allowsReferenceTrueIsPropagated() throws Exception
118 {
119 final JarPluginArtifact jarPluginArtifact = new JarPluginArtifact(new File("some.jar"), true);
120 assertTrue(jarPluginArtifact.allowsReference());
121 }
122 }