1 package org.kuali.student.common.messagebuilder.booleanmessage.ast; 2 3 import java.util.HashMap; 4 import java.util.List; 5 import java.util.Map; 6 7 import org.junit.Assert; 8 import org.junit.Before; 9 import org.junit.Test; 10 import org.kuali.student.common.messagebuilder.booleanmessage.BooleanMessage; 11 import org.kuali.student.common.messagebuilder.booleanmessage.ast.BinaryMessageTree; 12 import org.kuali.student.common.messagebuilder.booleanmessage.ast.BooleanMessageImpl; 13 import org.kuali.student.common.messagebuilder.booleanmessage.ast.BooleanNode; 14 15 public class BinaryMessageTreeTest { 16 private Map<String,BooleanMessage> messageMap; 17 18 @Before 19 public void setUp() throws Exception { 20 messageMap = new HashMap<String, BooleanMessage>(); 21 messageMap.put("A", new BooleanMessageImpl("A", true, "A is true")); 22 messageMap.put("B", new BooleanMessageImpl("B", true, "B is true")); 23 } 24 25 @Test 26 public void testGetRoot() throws Exception { 27 BinaryMessageTree btree = new BinaryMessageTree("en", messageMap); 28 BooleanNode rootNode = btree.buildTree("A*B"); 29 30 Assert.assertSame(rootNode, btree.getRoot()); 31 } 32 33 @Test 34 public void testBuildTree() throws Exception { 35 BinaryMessageTree btree = new BinaryMessageTree("en", messageMap); 36 BooleanNode rootNode = btree.buildTree("A*B"); 37 38 Assert.assertEquals(2, rootNode.getChildren().size()); 39 Assert.assertEquals("*", rootNode.getLabel()); 40 Assert.assertEquals("A", rootNode.getLeftNode().getLabel()); 41 Assert.assertEquals("B", rootNode.getRightNode().getLabel()); 42 } 43 44 @Test 45 public void testTraverseTreePostOrder_GetAllNodes() throws Exception { 46 BinaryMessageTree btree = new BinaryMessageTree("en", messageMap); 47 BooleanNode rootNode = btree.buildTree("A*B"); 48 btree.traverseTreePostOrder(rootNode, null); 49 List<BooleanNode> nodeList = btree.getAllNodes(); 50 51 Assert.assertEquals(3, nodeList.size()); 52 } 53 54 @Test 55 public void testTraverseTreePostOrderDontSetNode_GetAllNodes2() throws Exception { 56 BinaryMessageTree btree = new BinaryMessageTree(); 57 BooleanNode rootNode = btree.buildTree("A*B"); 58 btree.traverseTreePostOrderDontSetNode(rootNode, null); 59 List<BooleanNode> nodeList = btree.getAllNodes(); 60 61 Assert.assertEquals(3, nodeList.size()); 62 } 63 }