1 package com.atlassian.plugins.codegen.modules.common.servlet;
2
3 import java.io.File;
4 import java.io.IOException;
5 import java.util.regex.Matcher;
6
7 import com.atlassian.plugins.codegen.AbstractCodegenTestCase;
8 import com.atlassian.plugins.codegen.modules.PluginModuleLocation;
9
10 import org.apache.commons.io.FileUtils;
11 import org.junit.Before;
12 import org.junit.Test;
13
14 import static org.junit.Assert.assertTrue;
15
16
17
18
19
20 public class ServletCodegenTest extends AbstractCodegenTestCase<ServletProperties>
21 {
22 public static final String PACKAGE_NAME = "com.atlassian.plugins.servlet";
23
24 @Before
25 public void runGenerator() throws Exception
26 {
27 setCreator(new ServletModuleCreator());
28 setModuleLocation(new PluginModuleLocation.Builder(srcDir)
29 .resourcesDirectory(resourcesDir)
30 .testDirectory(testDir)
31 .templateDirectory(templateDir)
32 .build());
33
34 setProps(new ServletProperties(PACKAGE_NAME + ".MyServlet"));
35
36 props.setUrlPattern("/myservlet");
37 props.setIncludeExamples(false);
38 props.addInitParam("foo", "bar");
39
40 creator.createModule(moduleLocation, props);
41 creator.createModule(moduleLocation, props);
42 }
43
44 @Test
45 public void allFilesAreGenerated() throws Exception
46 {
47 String packagePath = PACKAGE_NAME.replaceAll("\\.", Matcher.quoteReplacement(File.separator));
48 String itPackagePath = "it" + File.separator + packagePath;
49 assertTrue("main class not generated", new File(srcDir, packagePath + File.separator + "MyServlet.java").exists());
50 assertTrue("test class not generated", new File(testDir, packagePath + File.separator + "MyServletTest.java").exists());
51 assertTrue("funcTest class not generated", new File(testDir, itPackagePath + File.separator + "MyServletFuncTest.java").exists());
52 assertTrue("main class not generated", new File(resourcesDir, "atlassian-plugin.xml").exists());
53
54 }
55
56 @Test
57 public void pluginXmlContainsModule() throws IOException
58 {
59 String pluginXmlContent = FileUtils.readFileToString(pluginXml);
60
61 assertTrue("module not found in plugin xml", pluginXmlContent.contains("<servlet"));
62 assertTrue("module class not found in plugin xml", pluginXmlContent.contains("class=\"" + PACKAGE_NAME + ".MyServlet\""));
63 }
64
65 }