1 package com.atlassian.plugins.codegen.modules.jira;
2
3 import java.io.File;
4
5 import com.atlassian.plugins.codegen.AbstractCodegenTestCase;
6 import com.atlassian.plugins.codegen.modules.PluginModuleLocation;
7
8 import org.dom4j.Document;
9 import org.dom4j.Node;
10 import org.junit.Before;
11 import org.junit.Test;
12
13 import static org.junit.Assert.assertNotNull;
14
15
16
17
18 public class WorkflowValidatorTest extends AbstractCodegenTestCase<WorkflowElementProperties>
19 {
20 public static final String PACKAGE_NAME = "com.atlassian.plugins.jira.workflow";
21 public static final String XPATH = "/atlassian-plugin/workflow-validator[@name='My Workflow Validator' and @key='my-workflow-validator' and @i18n-name-key='my-workflow-validator.name' and @class='" + PACKAGE_NAME + ".MyWorkflowValidatorFactory']";
22
23 protected File templatePath;
24
25
26 @Before
27 public void runGenerator() throws Exception
28 {
29 setCreator(new WorkflowValidatorModuleCreator());
30 setModuleLocation(new PluginModuleLocation.Builder(srcDir)
31 .resourcesDirectory(resourcesDir)
32 .testDirectory(testDir)
33 .templateDirectory(templateDir)
34 .build());
35
36 setProps(new WorkflowElementProperties(PACKAGE_NAME + ".MyWorkflowValidator"));
37
38 props.setIncludeExamples(false);
39
40 templatePath = new File(templateDir, "validators");
41 }
42
43 @Test
44 public void moduleIsValid() throws Exception
45 {
46
47 creator.createModule(moduleLocation, props);
48 Document pluginDoc = getXmlDocument(pluginXml);
49 Node moduleNode = pluginDoc.selectSingleNode(XPATH);
50
51 assertNotNull("valid workflow-validator not found", moduleNode);
52 }
53
54 @Test
55 public void moduleHasCondition() throws Exception
56 {
57
58 creator.createModule(moduleLocation, props);
59 Document pluginDoc = getXmlDocument(pluginXml);
60 Node moduleNode = pluginDoc.selectSingleNode(XPATH);
61
62 String subXpath = "validator-class[text() = '" + PACKAGE_NAME + ".MyWorkflowValidator']";
63
64 assertNotNull("valid workflow-validator not found", moduleNode);
65 assertNotNull("valid validator-class not found", moduleNode.selectSingleNode(subXpath));
66 }
67
68 }