/src/com/atlassian/uwc/hierarchies/DocDirectoryHierarchyTest.java
Java | 207 lines | 180 code | 26 blank | 1 comment | 11 complexity | 8cd65c3333c0de4983def0beb584ac19 MD5 | raw file
- package com.atlassian.uwc.hierarchies;
- import java.io.File;
- import java.util.Properties;
- import java.util.Set;
- import java.util.Vector;
- import junit.framework.TestCase;
- import org.apache.log4j.Logger;
- import org.apache.log4j.PropertyConfigurator;
- import com.atlassian.uwc.filters.NoSvnFilter;
- import com.atlassian.uwc.ui.Page;
- public class DocDirectoryHierarchyTest extends TestCase {
- DocDirectoryHierarchy tester = null;
- Logger log = Logger.getLogger(this.getClass());
- protected void setUp() throws Exception {
- tester = new DocDirectoryHierarchy();
- PropertyConfigurator.configure("log4j.properties");
- Properties props = new Properties();
- props.setProperty("doc-directory-attachments", "sampleData/docdirectory/attachments");
- tester.setProperties(props);
- }
- public void testBuildHierarchy() {
- Vector<Page> pages = new Vector<Page>();
- File sampledir = new File("sampleData/docdirectory/testtemplate.txt");
- assertTrue(sampledir.exists());
-
- //ignore svn directories
- Properties props = tester.getProperties();
- props.setProperty("doc-directory-exclude", "\\.svn");
- tester.setProperties(props);
-
- Page page = new Page(sampledir);
- page.setOriginalText("");
- page.setConvertedText(page.getOriginalText());
- page.setUnchangedSource(page.getOriginalText());
- page.setName(sampledir.getName().replaceFirst("\\.txt$", ""));
- pages.add(page);
-
- HierarchyNode actual = tester.buildHierarchy(pages);
- assertNotNull(actual); //root node
- assertNull(actual.getName());
- assertNull(actual.getPage());
- assertNull(actual.getParent());
- assertNotNull(actual.getChildren());
-
- Set<HierarchyNode> children1 = actual.getChildren();
- assertEquals(1, children1.size());
- Vector<HierarchyNode> nodes1 = new Vector<HierarchyNode>();
- nodes1.addAll(children1);
- assertTrue((nodes1.get(0)).getName().equals("Home"));
- assertTrue(nodes1.get(0).getPage().getAttachments().size() == 1);
- Object object = nodes1.get(0).getPage().getAttachments().toArray()[0];
- assertTrue(object instanceof File);
- File file = (File) object;
- assertTrue("test.txt".equals(file.getName()));
-
- Set<HierarchyNode> children2 = nodes1.get(0).getChildren();
- assertEquals(3, children2.size());
- Vector<HierarchyNode> nodes2 = new Vector<HierarchyNode>();
- nodes2.addAll(children2);
- for (HierarchyNode node : nodes2) {
- assertTrue(node.getName().equals("a") ||
- node.getName().equals("b") ||
- node.getName().equals("c")
- );
- if (node.getName().equals("a")) {
- assertTrue(node.getPage().getAttachments().size() == 2);
- assertTrue(node.getPage().getAttachments().toArray()[0] instanceof File);
- File filea = (File) node.getPage().getAttachments().toArray()[0];
- assertTrue("test1.txt".equals(filea.getName())||
- "test2.txt".equals(filea.getName())
- );
- Set<HierarchyNode> children3 = node.getChildren();
- assertEquals(1, children3.size());
- Vector<HierarchyNode> nodes3 = new Vector<HierarchyNode>();
- nodes3.addAll(children3);
- assertTrue((nodes3.get(0)).getName().equals("d"));
- assertTrue(nodes3.get(0).getPage().getAttachments().size() == 1);
- assertTrue(nodes3.get(0).getPage().getAttachments().toArray()[0] instanceof File);
- File filed = (File) nodes3.get(0).getPage().getAttachments().toArray()[0];;
- assertTrue("test3.txt".equals(filed.getName()));
- }
- if (node.getName().equals("b")) {
- assertTrue(node.getPage().getAttachments().size() == 1);
- assertTrue(node.getPage().getAttachments().toArray()[0] instanceof File);
- File fileb = (File) node.getPage().getAttachments().toArray()[0];
- assertTrue("test4.txt".equals(fileb.getName()));
- }
- if (node.getName().equals("c")) {
- assertTrue(node.getPage().getAttachments().size() == 1);
- assertTrue(node.getPage().getAttachments().toArray()[0] instanceof File);
- File filec = (File) node.getPage().getAttachments().toArray()[0];
- assertTrue("test5.txt".equals(filec.getName()));
- }
- }
- }
-
- public void testBuildHierarchy_root() {
- Properties props = tester.getProperties();
- props.setProperty("doc-directory-root", "Test");
- tester.setProperties(props);
- Vector<Page> pages = new Vector<Page>();
- File sampledir = new File("sampleData/docdirectory/testtemplate.txt");
- assertTrue(sampledir.exists());
-
- Page page = new Page(sampledir);
- page.setOriginalText("");
- page.setConvertedText(page.getOriginalText());
- page.setUnchangedSource(page.getOriginalText());
- page.setName(sampledir.getName().replaceFirst("\\.txt$", ""));
- pages.add(page);
-
- HierarchyNode actual = tester.buildHierarchy(pages);
- assertNotNull(actual); //root node
- assertNull(actual.getName());
- assertNull(actual.getPage());
- assertNull(actual.getParent());
- assertNotNull(actual.getChildren());
-
- Set<HierarchyNode> children1 = actual.getChildren();
- assertEquals(1, children1.size());
- Vector<HierarchyNode> nodes1 = new Vector<HierarchyNode>();
- nodes1.addAll(children1);
- assertTrue((nodes1.get(0)).getName().equals("Test"));
- }
-
- public void testBuildHierarchy_template() {
- Properties props = tester.getProperties();
- props.setProperty("doc-directory-template", "/Users/laura/Code/Subversion/uwc-spac/devel/sampleData/docdirectory/testtemplate.txt");
- tester.setProperties(props);
- Vector<Page> pages = new Vector<Page>();
- File sampledir = new File("sampleData/docdirectory/testtemplate.txt");
- assertTrue(sampledir.exists());
-
- Page page = new Page(sampledir);
- page.setOriginalText("");
- page.setConvertedText(page.getOriginalText());
- page.setUnchangedSource(page.getOriginalText());
- page.setName(sampledir.getName().replaceFirst("\\.txt$", ""));
- pages.add(page);
-
- HierarchyNode actual = tester.buildHierarchy(pages);
- assertNotNull(actual); //root node
- assertNull(actual.getName());
- assertNull(actual.getPage());
- assertNull(actual.getParent());
- assertNotNull(actual.getChildren());
-
- Set<HierarchyNode> children1 = actual.getChildren();
- assertEquals(1, children1.size());
- Vector<HierarchyNode> nodes1 = new Vector<HierarchyNode>();
- nodes1.addAll(children1);
- HierarchyNode node = nodes1.get(0);
- assertTrue((node).getName().equals("Home"));
- assertEquals("Testing\n{attachments}\n", node.getPage().getConvertedText());
- }
-
- public void testBuildHierarhcy_exclude() {
- Properties props = tester.getProperties();
- props.setProperty("doc-directory-exclude", "(c)|(\\.svn)"); //need to ignore svn dir as well
- tester.setProperties(props);
- Vector<Page> pages = new Vector<Page>();
- File sampledir = new File("sampleData/docdirectory/testtemplate.txt");
- assertTrue(sampledir.exists());
-
- Page page = new Page(sampledir);
- page.setOriginalText("");
- page.setConvertedText(page.getOriginalText());
- page.setUnchangedSource(page.getOriginalText());
- page.setName(sampledir.getName().replaceFirst("\\.txt$", ""));
- pages.add(page);
-
- HierarchyNode actual = tester.buildHierarchy(pages);
- assertNotNull(actual); //root node
- assertNull(actual.getName());
- assertNull(actual.getPage());
- assertNull(actual.getParent());
- assertNotNull(actual.getChildren());
-
- Set<HierarchyNode> children1 = actual.getChildren();
- assertEquals(1, children1.size());
- Vector<HierarchyNode> nodes1 = new Vector<HierarchyNode>();
- nodes1.addAll(children1);
- assertTrue((nodes1.get(0)).getName().equals("Home"));
- assertTrue(nodes1.get(0).getPage().getAttachments().size() == 1);
- Object object = nodes1.get(0).getPage().getAttachments().toArray()[0];
- assertTrue(object instanceof File);
- File file = (File) object;
- assertTrue("test.txt".equals(file.getName()));
-
- Set<HierarchyNode> children2 = nodes1.get(0).getChildren();
- assertEquals(2, children2.size());
- Vector<HierarchyNode> nodes2 = new Vector<HierarchyNode>();
- nodes2.addAll(children2);
- for (HierarchyNode node : nodes2) {
- assertTrue(node.getName(), node.getName().equals("a") ||
- node.getName().equals("b"));
- }
- }
-
- }