/plugin-module-codegen-engine/src/test/java/com/atlassian/plugins/codegen/modules/jira/SearchRequestViewTest.java

https://bitbucket.org/mmeinhold/amps · Java · 212 lines · 165 code · 44 blank · 3 comment · 0 complexity · b425e6b6d12fc5810e90871640a3aeb7 MD5 · raw file

  1. package com.atlassian.plugins.codegen.modules.jira;
  2. import com.atlassian.plugins.codegen.AbstractModuleCreatorTestCase;
  3. import com.atlassian.plugins.codegen.modules.common.Resource;
  4. import org.junit.Before;
  5. import org.junit.Test;
  6. import static junit.framework.Assert.assertEquals;
  7. import static junit.framework.Assert.assertNotNull;
  8. import static org.junit.Assert.assertNull;
  9. /**
  10. * @since 3.6
  11. */
  12. public class SearchRequestViewTest extends AbstractModuleCreatorTestCase<SearchRequestViewProperties>
  13. {
  14. public static final String EXT = "html";
  15. public static final String CTYPE = "text/html";
  16. public SearchRequestViewTest()
  17. {
  18. super("search-request-view", new SearchRequestViewModuleCreator());
  19. }
  20. @Before
  21. public void setupProps() throws Exception
  22. {
  23. setProps(new SearchRequestViewProperties(PACKAGE_NAME + ".MySearchRequestView"));
  24. props.setIncludeExamples(false);
  25. props.setFileExtension(EXT);
  26. props.setContentType(CTYPE);
  27. }
  28. @Test
  29. public void classFileIsGenerated() throws Exception
  30. {
  31. getSourceFile(PACKAGE_NAME, "MySearchRequestView");
  32. }
  33. @Test
  34. public void unitTestFileIsGenerated() throws Exception
  35. {
  36. getTestSourceFile(TEST_PACKAGE_NAME, "MySearchRequestViewTest");
  37. }
  38. @Test
  39. public void moduleHasDefaultKey() throws Exception
  40. {
  41. assertEquals("my-search-request-view",
  42. getGeneratedModule().attributeValue("key"));
  43. }
  44. @Test
  45. public void moduleHasClass() throws Exception
  46. {
  47. assertEquals(PACKAGE_NAME + ".MySearchRequestView",
  48. getGeneratedModule().attributeValue("class"));
  49. }
  50. @Test
  51. public void moduleHasExtension() throws Exception
  52. {
  53. assertEquals(EXT, getGeneratedModule().attributeValue("fileExtension"));
  54. }
  55. @Test
  56. public void moduleHasContentType() throws Exception
  57. {
  58. assertEquals(CTYPE, getGeneratedModule().attributeValue("contentType"));
  59. }
  60. @Test
  61. public void resourceIsAdded() throws Exception
  62. {
  63. props.getResources().add(cssResource);
  64. assertNotNull(getGeneratedModule().selectSingleNode("resource"));
  65. }
  66. @Test
  67. public void resourceHasName() throws Exception
  68. {
  69. props.getResources().add(cssResource);
  70. assertEquals("style.css", getGeneratedModule().selectSingleNode("resource/@name").getText());
  71. }
  72. @Test
  73. public void resourceHasLocation() throws Exception
  74. {
  75. props.getResources().add(cssResource);
  76. assertEquals("com/example/plugin/style.css", getGeneratedModule().selectSingleNode("resource/@location").getText());
  77. }
  78. @Test
  79. public void resourceHasType() throws Exception
  80. {
  81. props.getResources().add(cssResource);
  82. assertEquals("download", getGeneratedModule().selectSingleNode("resource/@type").getText());
  83. }
  84. @Test
  85. public void namePatternResourceAdded() throws Exception
  86. {
  87. props.getResources().add(cssNamePatternResource);
  88. assertNotNull(getGeneratedModule().selectSingleNode("resource"));
  89. }
  90. @Test
  91. public void namePatternResourceHasNamePattern() throws Exception
  92. {
  93. props.getResources().add(cssNamePatternResource);
  94. assertEquals("*.css", getGeneratedModule().selectSingleNode("resource/@namePattern").getText());
  95. }
  96. @Test
  97. public void namePatternResourceHasLocation() throws Exception
  98. {
  99. props.getResources().add(cssNamePatternResource);
  100. assertEquals("com/example/plugin", getGeneratedModule().selectSingleNode("resource/@location").getText());
  101. }
  102. @Test
  103. public void namePatternResourceHasType() throws Exception
  104. {
  105. props.getResources().add(cssNamePatternResource);
  106. assertEquals("download", getGeneratedModule().selectSingleNode("resource/@type").getText());
  107. }
  108. @Test
  109. public void resourceNameChosenOverPattern() throws Exception
  110. {
  111. cssResource.setNamePattern("*.css");
  112. props.getResources().add(cssResource);
  113. assertNull(getGeneratedModule().selectSingleNode("resource/@namePattern"));
  114. }
  115. @Test
  116. public void resourceParamHasName() throws Exception
  117. {
  118. cssResource.getParams().put("content-type", "text/css");
  119. props.getResources().add(cssResource);
  120. assertEquals("content-type", getGeneratedModule().selectSingleNode("resource/param/@name").getText());
  121. }
  122. @Test
  123. public void resourceParamHasValue() throws Exception
  124. {
  125. cssResource.getParams().put("content-type", "text/css");
  126. props.getResources().add(cssResource);
  127. assertEquals("text/css", getGeneratedModule().selectSingleNode("resource/param/@value").getText());
  128. }
  129. @Test
  130. public void secondResourceParamAdded() throws Exception
  131. {
  132. cssResource.getParams().put("content-type", "text/css");
  133. cssResource.getParams().put("awesome", "me");
  134. props.getResources().add(cssResource);
  135. assertEquals("me", getGeneratedModule().selectSingleNode("resource/param[@name='awesome']/@value").getText());
  136. }
  137. @Test
  138. public void allResourceParamsAdded() throws Exception
  139. {
  140. cssResource.getParams().put("content-type", "text/css");
  141. cssResource.getParams().put("awesome", "me");
  142. props.getResources().add(cssResource);
  143. assertEquals(2, getGeneratedModule().selectNodes("resource/param").size());
  144. }
  145. @Test
  146. public void secondResourceAdded() throws Exception
  147. {
  148. Resource resource2 = new Resource();
  149. resource2.setName("custom.js");
  150. resource2.setLocation("com/example/plugin/custom.js");
  151. resource2.setType("download");
  152. props.getResources().add(cssResource);
  153. props.getResources().add(resource2);
  154. assertEquals("com/example/plugin/custom.js",
  155. getGeneratedModule().selectSingleNode("resource[@name='custom.js']/@location").getText());
  156. }
  157. @Test
  158. public void allResourcesAdded() throws Exception
  159. {
  160. Resource resource2 = new Resource();
  161. resource2.setName("custom.js");
  162. resource2.setLocation("com/example/plugin/custom.js");
  163. resource2.setType("download");
  164. props.getResources().add(cssResource);
  165. props.getResources().add(resource2);
  166. assertEquals(2, getGeneratedModule().selectNodes("resource").size());
  167. }
  168. }