001    package org.kuali.student.common.messagebuilder.booleanmessage.ast;
002    
003    import org.antlr.runtime.Token;
004    import org.antlr.runtime.tree.CommonTreeAdaptor;
005    import org.junit.Assert;
006    import org.junit.Test;
007    import org.kuali.student.common.messagebuilder.booleanmessage.ast.BooleanNode;
008    import org.kuali.student.common.messagebuilder.booleanmessage.ast.parsers.BooleanFunctionParser;
009    
010    public class BooleanNodeTest {
011    
012            private final static CommonTreeAdaptor adapter = new CommonTreeAdaptor();
013            
014            @Test
015            public void testBooleanNode() throws Exception {
016                    Token and = adapter.createToken(BooleanFunctionParser.AND, "*");
017                    Token a = adapter.createToken(BooleanFunctionParser.ALPHA, "A");
018                    Token b = adapter.createToken(BooleanFunctionParser.ALPHA, "B");
019                    
020                    // root node
021                    BooleanNode andNode = new BooleanNode(and);
022                    
023                    BooleanNode aNode = new BooleanNode(a);
024                    aNode.setParent(andNode);
025                    aNode.setValue(Boolean.TRUE);
026                    aNode.setLanguage("en");
027                    aNode.setNodeMessage("MATH101");
028    
029                    BooleanNode bNode = new BooleanNode(b);
030                    bNode.setParent(andNode);
031                    bNode.setValue(Boolean.FALSE);
032                    bNode.setNodeMessage("MATH201");
033                    
034                    andNode.addChild(aNode); // left node
035                    andNode.addChild(bNode); // right node
036                    
037                    Assert.assertEquals("en", aNode.getLanguage());
038                    Assert.assertEquals("MATH101", aNode.getNodeMessage());
039                    Assert.assertEquals(Boolean.TRUE, aNode.getValue());
040                    Assert.assertSame(andNode, aNode.getParent());
041                    Assert.assertSame(aNode, andNode.getLeftNode());
042                    Assert.assertSame(bNode, andNode.getRightNode());
043            }
044    }