PageRenderTime 38ms CodeModel.GetById 16ms RepoModel.GetById 0ms app.codeStats 0ms

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

https://bitbucket.org/sorin/jira-plugin-intellij
Groovy | 85 lines | 68 code | 16 blank | 1 comment | 1 complexity | f75f7ddc838a143f95d7d957120b2c13 MD5 | raw file
  1. package com.onresolve.jira.groovy.test
  2. import org.apache.log4j.Category
  3. import com.atlassian.jira.issue.comments.Comment
  4. import org.apache.log4j.Category
  5. import org.junit.After
  6. import org.junit.Before
  7. import org.junit.Test
  8. import static junit.framework.Assert.assertNotNull
  9. import com.atlassian.jira.issue.customfields.CustomFieldType
  10. import com.atlassian.jira.issue.customfields.CustomFieldSearcher
  11. import com.atlassian.jira.issue.fields.CustomField
  12. import com.atlassian.core.util.collection.EasyList
  13. import com.atlassian.jira.issue.context.GlobalIssueContext
  14. import com.atlassian.jira.component.ComponentAccessor
  15. import com.onresolve.jira.groovy.canned.admin.BulkImportCustomFieldValues
  16. import com.atlassian.jira.ComponentManager
  17. import com.atlassian.jira.issue.fields.config.manager.FieldConfigSchemeManager
  18. import static junit.framework.Assert.assertEquals
  19. class TestBulkImportCustomFieldValues extends CustomFieldBaseTests {
  20. Category log = Category.getInstance(this.class)
  21. @Test
  22. public void testSelectListOptions() {
  23. // create a new select list, add some values from empty, add some more values
  24. def cf = createCustomField("testSelectList", "com.atlassian.jira.plugin.system.customfieldtypes:select",
  25. "com.atlassian.jira.plugin.system.customfieldtypes:selectsearcher")
  26. optionsManager.removeCustomFieldOptions(cf)
  27. def fieldConfig = cf.getConfigurationSchemes().first().getOneAndOnlyConfig()
  28. Map<String, Object> inputs = [
  29. issue: issue,
  30. (BulkImportCustomFieldValues.FIELD_FCS): fieldConfig.id,
  31. (BulkImportCustomFieldValues.FIELD_IMPORT_VALUES): ["A", "B"].join("\n"),
  32. ] as Map<String, Object>
  33. new BulkImportCustomFieldValues().doScript(inputs)
  34. assertEquals(["A", "B"], optionsManager.getOptions(fieldConfig).getRootOptions()*.value)
  35. inputs[(BulkImportCustomFieldValues.FIELD_IMPORT_VALUES)] = ["A", "B", "C"].join("\n")
  36. new BulkImportCustomFieldValues().doScript(inputs)
  37. assertEquals(["A", "B", "C"], optionsManager.getOptions(fieldConfig).getRootOptions()*.value)
  38. }
  39. @Test
  40. public void testCascadingSelectListOptions() {
  41. def cf = createCustomField("testCascadingSelectList", "com.atlassian.jira.plugin.system.customfieldtypes:cascadingselect",
  42. "com.atlassian.jira.plugin.system.customfieldtypes:cascadingselectsearcher")
  43. optionsManager.removeCustomFieldOptions(cf)
  44. def fieldConfig = cf.getConfigurationSchemes().first().getOneAndOnlyConfig()
  45. Map<String, Object> inputs = [
  46. issue: issue,
  47. (BulkImportCustomFieldValues.FIELD_FCS): fieldConfig.id,
  48. (BulkImportCustomFieldValues.FIELD_IMPORT_VALUES): ["A", "\tA1", "B"].join("\n"),
  49. ] as Map<String, Object>
  50. new BulkImportCustomFieldValues().doScript(inputs)
  51. def options = optionsManager.getOptions(fieldConfig)
  52. assertEquals(["A", "B"], options.getRootOptions()*.value)
  53. assertEquals (["A1"], options.getOptionForValue("A", null).childOptions*.value)
  54. inputs[(BulkImportCustomFieldValues.FIELD_IMPORT_VALUES)] = ["A", "\tA1", "\tA2", "B", "\tB1"].join("\n")
  55. new BulkImportCustomFieldValues().doScript(inputs)
  56. assertEquals(["A", "B"], options.getRootOptions()*.value)
  57. options = optionsManager.getOptions(fieldConfig)
  58. assertEquals (["A1", "A2"], options.getOptionForValue("A", null).childOptions*.value)
  59. assertEquals (["B1"], options.getOptionForValue("B", null).childOptions*.value)
  60. }
  61. @After
  62. public void tearDown() {
  63. ["testSelectList", "testCascadingSelectList"].each {
  64. def cf = customFieldManager.getCustomFieldObjectByName(it)
  65. if (cf)
  66. customFieldManager.removeCustomField(cf)
  67. }
  68. }
  69. }