PageRenderTime 34ms CodeModel.GetById 9ms RepoModel.GetById 1ms app.codeStats 0ms

/src/com/atlassian/uwc/hierarchies/DocDirectoryHierarchyTest.java

https://bitbucket.org/dodok1/uwc
Java | 207 lines | 180 code | 26 blank | 1 comment | 11 complexity | 8cd65c3333c0de4983def0beb584ac19 MD5 | raw file
  1. package com.atlassian.uwc.hierarchies;
  2. import java.io.File;
  3. import java.util.Properties;
  4. import java.util.Set;
  5. import java.util.Vector;
  6. import junit.framework.TestCase;
  7. import org.apache.log4j.Logger;
  8. import org.apache.log4j.PropertyConfigurator;
  9. import com.atlassian.uwc.filters.NoSvnFilter;
  10. import com.atlassian.uwc.ui.Page;
  11. public class DocDirectoryHierarchyTest extends TestCase {
  12. DocDirectoryHierarchy tester = null;
  13. Logger log = Logger.getLogger(this.getClass());
  14. protected void setUp() throws Exception {
  15. tester = new DocDirectoryHierarchy();
  16. PropertyConfigurator.configure("log4j.properties");
  17. Properties props = new Properties();
  18. props.setProperty("doc-directory-attachments", "sampleData/docdirectory/attachments");
  19. tester.setProperties(props);
  20. }
  21. public void testBuildHierarchy() {
  22. Vector<Page> pages = new Vector<Page>();
  23. File sampledir = new File("sampleData/docdirectory/testtemplate.txt");
  24. assertTrue(sampledir.exists());
  25. //ignore svn directories
  26. Properties props = tester.getProperties();
  27. props.setProperty("doc-directory-exclude", "\\.svn");
  28. tester.setProperties(props);
  29. Page page = new Page(sampledir);
  30. page.setOriginalText("");
  31. page.setConvertedText(page.getOriginalText());
  32. page.setUnchangedSource(page.getOriginalText());
  33. page.setName(sampledir.getName().replaceFirst("\\.txt$", ""));
  34. pages.add(page);
  35. HierarchyNode actual = tester.buildHierarchy(pages);
  36. assertNotNull(actual); //root node
  37. assertNull(actual.getName());
  38. assertNull(actual.getPage());
  39. assertNull(actual.getParent());
  40. assertNotNull(actual.getChildren());
  41. Set<HierarchyNode> children1 = actual.getChildren();
  42. assertEquals(1, children1.size());
  43. Vector<HierarchyNode> nodes1 = new Vector<HierarchyNode>();
  44. nodes1.addAll(children1);
  45. assertTrue((nodes1.get(0)).getName().equals("Home"));
  46. assertTrue(nodes1.get(0).getPage().getAttachments().size() == 1);
  47. Object object = nodes1.get(0).getPage().getAttachments().toArray()[0];
  48. assertTrue(object instanceof File);
  49. File file = (File) object;
  50. assertTrue("test.txt".equals(file.getName()));
  51. Set<HierarchyNode> children2 = nodes1.get(0).getChildren();
  52. assertEquals(3, children2.size());
  53. Vector<HierarchyNode> nodes2 = new Vector<HierarchyNode>();
  54. nodes2.addAll(children2);
  55. for (HierarchyNode node : nodes2) {
  56. assertTrue(node.getName().equals("a") ||
  57. node.getName().equals("b") ||
  58. node.getName().equals("c")
  59. );
  60. if (node.getName().equals("a")) {
  61. assertTrue(node.getPage().getAttachments().size() == 2);
  62. assertTrue(node.getPage().getAttachments().toArray()[0] instanceof File);
  63. File filea = (File) node.getPage().getAttachments().toArray()[0];
  64. assertTrue("test1.txt".equals(filea.getName())||
  65. "test2.txt".equals(filea.getName())
  66. );
  67. Set<HierarchyNode> children3 = node.getChildren();
  68. assertEquals(1, children3.size());
  69. Vector<HierarchyNode> nodes3 = new Vector<HierarchyNode>();
  70. nodes3.addAll(children3);
  71. assertTrue((nodes3.get(0)).getName().equals("d"));
  72. assertTrue(nodes3.get(0).getPage().getAttachments().size() == 1);
  73. assertTrue(nodes3.get(0).getPage().getAttachments().toArray()[0] instanceof File);
  74. File filed = (File) nodes3.get(0).getPage().getAttachments().toArray()[0];;
  75. assertTrue("test3.txt".equals(filed.getName()));
  76. }
  77. if (node.getName().equals("b")) {
  78. assertTrue(node.getPage().getAttachments().size() == 1);
  79. assertTrue(node.getPage().getAttachments().toArray()[0] instanceof File);
  80. File fileb = (File) node.getPage().getAttachments().toArray()[0];
  81. assertTrue("test4.txt".equals(fileb.getName()));
  82. }
  83. if (node.getName().equals("c")) {
  84. assertTrue(node.getPage().getAttachments().size() == 1);
  85. assertTrue(node.getPage().getAttachments().toArray()[0] instanceof File);
  86. File filec = (File) node.getPage().getAttachments().toArray()[0];
  87. assertTrue("test5.txt".equals(filec.getName()));
  88. }
  89. }
  90. }
  91. public void testBuildHierarchy_root() {
  92. Properties props = tester.getProperties();
  93. props.setProperty("doc-directory-root", "Test");
  94. tester.setProperties(props);
  95. Vector<Page> pages = new Vector<Page>();
  96. File sampledir = new File("sampleData/docdirectory/testtemplate.txt");
  97. assertTrue(sampledir.exists());
  98. Page page = new Page(sampledir);
  99. page.setOriginalText("");
  100. page.setConvertedText(page.getOriginalText());
  101. page.setUnchangedSource(page.getOriginalText());
  102. page.setName(sampledir.getName().replaceFirst("\\.txt$", ""));
  103. pages.add(page);
  104. HierarchyNode actual = tester.buildHierarchy(pages);
  105. assertNotNull(actual); //root node
  106. assertNull(actual.getName());
  107. assertNull(actual.getPage());
  108. assertNull(actual.getParent());
  109. assertNotNull(actual.getChildren());
  110. Set<HierarchyNode> children1 = actual.getChildren();
  111. assertEquals(1, children1.size());
  112. Vector<HierarchyNode> nodes1 = new Vector<HierarchyNode>();
  113. nodes1.addAll(children1);
  114. assertTrue((nodes1.get(0)).getName().equals("Test"));
  115. }
  116. public void testBuildHierarchy_template() {
  117. Properties props = tester.getProperties();
  118. props.setProperty("doc-directory-template", "/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/docdirectory/testtemplate.txt");
  119. tester.setProperties(props);
  120. Vector<Page> pages = new Vector<Page>();
  121. File sampledir = new File("sampleData/docdirectory/testtemplate.txt");
  122. assertTrue(sampledir.exists());
  123. Page page = new Page(sampledir);
  124. page.setOriginalText("");
  125. page.setConvertedText(page.getOriginalText());
  126. page.setUnchangedSource(page.getOriginalText());
  127. page.setName(sampledir.getName().replaceFirst("\\.txt$", ""));
  128. pages.add(page);
  129. HierarchyNode actual = tester.buildHierarchy(pages);
  130. assertNotNull(actual); //root node
  131. assertNull(actual.getName());
  132. assertNull(actual.getPage());
  133. assertNull(actual.getParent());
  134. assertNotNull(actual.getChildren());
  135. Set<HierarchyNode> children1 = actual.getChildren();
  136. assertEquals(1, children1.size());
  137. Vector<HierarchyNode> nodes1 = new Vector<HierarchyNode>();
  138. nodes1.addAll(children1);
  139. HierarchyNode node = nodes1.get(0);
  140. assertTrue((node).getName().equals("Home"));
  141. assertEquals("Testing\n{attachments}\n", node.getPage().getConvertedText());
  142. }
  143. public void testBuildHierarhcy_exclude() {
  144. Properties props = tester.getProperties();
  145. props.setProperty("doc-directory-exclude", "(c)|(\\.svn)"); //need to ignore svn dir as well
  146. tester.setProperties(props);
  147. Vector<Page> pages = new Vector<Page>();
  148. File sampledir = new File("sampleData/docdirectory/testtemplate.txt");
  149. assertTrue(sampledir.exists());
  150. Page page = new Page(sampledir);
  151. page.setOriginalText("");
  152. page.setConvertedText(page.getOriginalText());
  153. page.setUnchangedSource(page.getOriginalText());
  154. page.setName(sampledir.getName().replaceFirst("\\.txt$", ""));
  155. pages.add(page);
  156. HierarchyNode actual = tester.buildHierarchy(pages);
  157. assertNotNull(actual); //root node
  158. assertNull(actual.getName());
  159. assertNull(actual.getPage());
  160. assertNull(actual.getParent());
  161. assertNotNull(actual.getChildren());
  162. Set<HierarchyNode> children1 = actual.getChildren();
  163. assertEquals(1, children1.size());
  164. Vector<HierarchyNode> nodes1 = new Vector<HierarchyNode>();
  165. nodes1.addAll(children1);
  166. assertTrue((nodes1.get(0)).getName().equals("Home"));
  167. assertTrue(nodes1.get(0).getPage().getAttachments().size() == 1);
  168. Object object = nodes1.get(0).getPage().getAttachments().toArray()[0];
  169. assertTrue(object instanceof File);
  170. File file = (File) object;
  171. assertTrue("test.txt".equals(file.getName()));
  172. Set<HierarchyNode> children2 = nodes1.get(0).getChildren();
  173. assertEquals(2, children2.size());
  174. Vector<HierarchyNode> nodes2 = new Vector<HierarchyNode>();
  175. nodes2.addAll(children2);
  176. for (HierarchyNode node : nodes2) {
  177. assertTrue(node.getName(), node.getName().equals("a") ||
  178. node.getName().equals("b"));
  179. }
  180. }
  181. }