1   package com.atlassian.plugins.codegen;
2   
3   import java.util.Set;
4   
5   import com.atlassian.plugins.codegen.annotations.asm.ModuleCreatorAnnotationParser;
6   import com.atlassian.plugins.codegen.modules.PluginModuleCreatorRegistry;
7   import com.atlassian.plugins.codegen.modules.common.servlet.ServletFilterModuleCreator;
8   import com.atlassian.plugins.codegen.modules.jira.WorkflowPostFunctionModuleCreator;
9   
10  import org.junit.Test;
11  
12  import static org.junit.Assert.assertTrue;
13  
14  /**
15   *
16   */
17  public class BasicModuleGeneratorTest extends AbstractCodegenTestCase
18  {
19      @Test
20      public void hasCommonModules() throws Exception
21      {
22          PluginModuleCreatorRegistry pluginModuleCreatorRegistry;
23          ModuleCreatorAnnotationParser parser;
24  
25          pluginModuleCreatorRegistry = new PluginModuleCreatorRegistryImpl();
26          parser = new ModuleCreatorAnnotationParser(pluginModuleCreatorRegistry);
27          parser.parse();
28          
29          Set<Class> moduleKeys = pluginModuleCreatorRegistry.getModuleCreatorsForProduct(PluginModuleCreatorRegistry.JIRA)
30                  .keySet();
31          assertTrue(moduleKeys.contains(WorkflowPostFunctionModuleCreator.class));
32          assertTrue(moduleKeys.contains(ServletFilterModuleCreator.class));
33      }
34  /*
35      @Test
36      public void createsMultipleFiles() throws Exception {
37  
38          PluginModuleLocation moduleLocation = new PluginModuleLocation.Builder(srcDir)
39                  .templateDirectory(templateDir)
40                  .pluginXml(pluginXml)
41                  .build();
42  
43          String functionName = "MyPostFunction";
44          String factoryName = functionName + "Factory";
45          String inputName = "my-post-function-input.vm";
46          String viewName = "my-post-function.vm";
47  
48          File packageDir = new File(srcDir,"com/atlassian/test/");
49  
50          File javaFunctionClass = new File(packageDir,functionName + ".java");
51          File javaFactoryClass = new File(packageDir,factoryName + ".java");
52          File inputTemplate = new File(templateDir,inputName);
53          File viewTemplate = new File(templateDir,viewName);
54  
55          PluginModuleCreatorFactoryImpl generator = new JiraPluginModuleCreatorFactory(moduleLocation);
56          WorkflowPostFunctionProperties props = new WorkflowPostFunctionProperties();
57          props.setFullyQualifiedClassname("com.atlassian.test." + functionName);
58          props.setDescription("MY function does something awesome");
59          props.setDeletable(true);
60          props.setOrderable(true);
61          props.setUnique(false);
62  
63          generator.generate(JiraPluginModuleCreatorFactory.WORKFLOW_POST_FUNCTION_MODULE,props);
64  
65          assertTrue(javaFunctionClass.exists());
66          assertTrue(javaFactoryClass.exists());
67          assertTrue(inputTemplate.exists());
68          assertTrue(viewTemplate.exists());
69      }
70      */
71  }