Mercurial > hg > Members > shoshi > TreeCMSv2
diff src/treecms/test/TreeTest.java @ 5:87bba22e4fa2
added test case
author | shoshi |
---|---|
date | Tue, 01 Mar 2011 01:29:59 +0900 |
parents | |
children | 12604eb6b615 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/treecms/test/TreeTest.java Tue Mar 01 01:29:59 2011 +0900 @@ -0,0 +1,82 @@ +package treecms.test; + +import java.util.LinkedList; + +import junit.framework.Assert; + +import org.junit.Test; + +import treecms.api.Node; +import treecms.api.NodeData; +import treecms.api.Tree; + +public class TreeTest +{ + Tree m_tree; + + public TreeTest(Tree _tree) + { + m_tree = _tree; + } + + @Test + public void testUpdateTree() + { + /** + * Root + * + 1 + * + + 1-1 <- update this. + * + + * + 2 + * + 2-1 + */ + + Node ch1 = m_tree.getForest().create(); + Node ch2 = m_tree.getForest().create(); + + Node ch11 = m_tree.getForest().create(); + Node ch12 = m_tree.getForest().create(); + + LinkedList<Node> list = new LinkedList<Node>(); + list.add(ch1); + list.add(ch2); + + m_tree.getRoot().getData().add(list); + + LinkedList<Node> ch1list = new LinkedList<Node>(); + ch1list.add(ch11); + ch1.getData().add(ch1list); + + LinkedList<Node> ch2list = new LinkedList<Node>(); + ch2list.add(ch12); + ch2.getData().add(ch2list); + + LinkedList<Node> before = findPath(m_tree.getRoot(),ch11); + NodeData newData = ch11.getData().deepCopy(); + m_tree.updateTree(ch11,newData); + LinkedList<Node> after = findPath(m_tree.getRoot(),ch11); + + for(int i = 0;i < before.size();i ++){ + boolean result = before.get(i).getID().isFamily(after.get(i).getID()); + Assert.assertEquals(true,result); + } + } + + public LinkedList<Node> findPath(Node _from,Node _target) + { + if(_from.getID().isFamily(_target.getID())){ + LinkedList<Node> path = new LinkedList<Node>(); + path.add(_from); + return path; + } + + for(Node child : _from.getData().list()){ + LinkedList<Node> path = findPath(child,_target); + if(path != null){ + path.add(_from); + } + } + + return null; + } +}