PageRenderTime 45ms CodeModel.GetById 17ms RepoModel.GetById 0ms app.codeStats 0ms

/src/main/resources/com/onresolve/jira/groovy/test/BuiltinScriptTests.groovy

https://bitbucket.org/sorin/jira-plugin-intellij
Groovy | 157 lines | 124 code | 22 blank | 11 comment | 1 complexity | 93993433d579f0eb9707afb6d1ed728e MD5 | raw file
  1. package com.onresolve.jira.groovy.test
  2. import com.atlassian.jira.issue.AttachmentManager
  3. import com.atlassian.jira.issue.IssueManager
  4. import com.atlassian.jira.project.ProjectManager
  5. import org.junit.Before
  6. import org.junit.Test
  7. import static org.junit.Assert.assertEquals
  8. import org.codehaus.groovy.control.CompilationFailedException
  9. import com.onresolve.jira.groovy.canned.CannedScript
  10. import com.onresolve.jira.groovy.GroovyRunner
  11. import com.onresolve.jira.groovy.CannedScriptRunner
  12. import com.onresolve.jira.groovy.PackageScanner
  13. /**
  14. * User: jechlin2
  15. * Date: 28-Oct-2010
  16. * Time: 16:43:49
  17. */
  18. class BuiltinScriptTests {
  19. GroovyRunner groovyRunner;
  20. CannedScriptRunner cannedScriptRunner;
  21. @Before
  22. public void setUp() throws Exception {
  23. groovyRunner = new GroovyRunner() {
  24. @Override
  25. public ProjectManager getProjectManager() {
  26. return null;
  27. }
  28. @Override
  29. protected IssueManager getIssueManager() {
  30. return null;
  31. }
  32. @Override
  33. protected AttachmentManager getAttachmentManager() {
  34. return null;
  35. }
  36. };
  37. cannedScriptRunner = new CannedScriptRunner() {
  38. @Override
  39. public ProjectManager getProjectManager() {
  40. return null;
  41. }
  42. @Override
  43. protected IssueManager getIssueManager() {
  44. return null;
  45. }
  46. @Override
  47. protected AttachmentManager getAttachmentManager() {
  48. return null;
  49. }
  50. };
  51. }
  52. @Test
  53. public void testRunCannedScript() throws Exception {
  54. assertEquals(Collections.EMPTY_MAP, groovyRunner.runCannedScript("com.onresolve.jira.groovy.canned.admin.GetUser", Collections.EMPTY_MAP));
  55. assertEquals(Collections.EMPTY_MAP, groovyRunner.run("com.onresolve.jira.groovy.canned.admin.GetUser", Collections.EMPTY_MAP));
  56. }
  57. @Test
  58. public void testWontCompileScript() throws Exception {
  59. try {
  60. assertEquals(Collections.EMPTY_MAP, groovyRunner.runCannedScript("com.onresolve.jira.groovy.canned.admin.WontCompile", Collections.EMPTY_MAP))
  61. } catch (CompilationFailedException e) {
  62. println e.getMessage()
  63. };
  64. }
  65. @Test
  66. public void testPackageScanner() throws Exception {
  67. Set<String> aPackage = PackageScanner.getClassesForPackage("com.onresolve.jira.groovy.canned.workflow.conditions");
  68. println aPackage
  69. return
  70. // get classes like this.
  71. // properties file specifies what won't be included
  72. String classText = this.getClass().getClassLoader().getResourceAsStream("com/onresolve/jira/groovy/canned/admin/WontCompile40.groovy").text
  73. // println classText
  74. GroovyClassLoader gcl = new GroovyClassLoader()
  75. CannedScript cannedScript = gcl.parseClass(classText).newInstance() as CannedScript
  76. println cannedScript.getName()
  77. println cannedScript.getClass().getName()
  78. return
  79. println gcl.getLoadedClasses()*.name
  80. println "reloading"
  81. gcl.setShouldRecompile (true)
  82. cannedScript = gcl.parseClass(classText).newInstance() as CannedScript
  83. cannedScript = gcl.parseClass(classText).newInstance() as CannedScript
  84. while (true) {
  85. classText = this.getClass().getClassLoader().getResourceAsStream("com/onresolve/jira/groovy/canned/admin/WontCompile.groovy").text
  86. cannedScript = gcl.parseClass(classText).newInstance() as CannedScript
  87. println cannedScript.getDescription()
  88. Thread.sleep (1000)
  89. }
  90. }
  91. @Test
  92. public void testGetCannedScripts() throws Exception {
  93. println cannedScriptRunner.getCannedScripts()
  94. // println PackageScanner.getClassesForPackage("com.onresolve.jira.groovy.canned.admin").size()
  95. }
  96. @Test
  97. public void testLoadingClassWithDifferentFileName() throws Exception {
  98. GroovyClassLoader gcl = new GroovyClassLoader(Thread.currentThread().getContextClassLoader())
  99. gcl.setShouldRecompile(true);
  100. CannedScript scriptDef = (CannedScript) gcl.loadClass("com.onresolve.jira.groovy.canned.admin.WontCompile313").newInstance();
  101. println scriptDef.getClass().getName()
  102. }
  103. @Test
  104. public void scratch() throws Exception {
  105. GroovyClassLoader gcl = new GroovyClassLoader(Thread.currentThread().getContextClassLoader())
  106. gcl.setShouldRecompile(true);
  107. CannedScript scriptDef = (CannedScript) gcl.loadClass("com.onresolve.jira.groovy.canned.admin.WontCompile313").newInstance();
  108. println scriptDef.getClass().getName()
  109. List expectedArgs = scriptDef.getParameters(null)*.'Name'
  110. List actualArgs = ['ProjectOne', 'admin']
  111. Map params = [:]
  112. expectedArgs.eachWithIndex {String s, Integer i ->
  113. println i
  114. params.put(s, actualArgs.get(i))
  115. }
  116. println params
  117. println scriptDef.getDescription(params, false)
  118. }
  119. @Test
  120. public void testValidation() throws Exception {
  121. // run the dovalidation thing
  122. GroovyClassLoader gcl = new GroovyClassLoader(Thread.currentThread().getContextClassLoader())
  123. gcl.setShouldRecompile(true);
  124. CannedScript scriptDef = (CannedScript) gcl.loadClass("com.onresolve.jira.groovy.canned.admin.WontCompile313").newInstance();
  125. println scriptDef.doValidate(["P": "x"], false)
  126. }
  127. @Test
  128. public void testBusted() throws Exception {
  129. // run the dovalidation thing
  130. GroovyClassLoader gcl = new GroovyClassLoader(Thread.currentThread().getContextClassLoader())
  131. gcl.setShouldRecompile(true);
  132. CannedScript scriptDef = (CannedScript) gcl.loadClass("com.onresolve.jira.groovy.canned.workflow.conditions.TestCondition").newInstance();
  133. println scriptDef.doValidate(["P": "x"], false)
  134. }
  135. }