samples/visitor/11-cleanversion/src-test/org/apidesign/test/visitor/PrintTest.java
author Jaroslav Tulach <jtulach@netbeans.org>
Sat, 14 Jun 2008 22:38:00 +0200
changeset 265 eb31b2d1822a
parent 178 f3f2f73686d8
child 266 47d5f1fe0b03
permissions -rw-r--r--
All tests are passing now in the "no.failures" mode
     1 package org.apidesign.test.visitor;
     2 
     3 import static junit.framework.Assert.*;
     4 import org.apidesign.visitor.Language.Expression;
     5 import org.apidesign.visitor.Language.Number;
     6 import org.apidesign.visitor.Language.Plus;
     7 import org.apidesign.visitor.Language.Visitor1_0;
     8 import org.junit.Test;
     9 
    10 public class PrintTest {
    11 
    12     public static class PrintVisitor implements Visitor1_0 {
    13         StringBuffer sb = new StringBuffer();
    14         
    15         public void visitUnknown(Expression exp) {
    16             sb.append("unknown");
    17         }
    18         
    19         public void visitPlus(Plus s) {
    20             s.getFirst().visit(this);
    21             sb.append(" + ");
    22             s.getSecond().visit(this);
    23         }
    24 
    25         public void visitNumber(Number n) {
    26             sb.append (n.getValue());
    27         }
    28     }
    29     
    30     @Test public void printOnePlusOne() {
    31         Number one = new Number(1);
    32         Expression plus = new Plus(one, one);
    33         
    34         PrintVisitor print = new PrintVisitor();
    35         plus.visit(print);
    36         
    37         assertEquals("1 + 1", print.sb.toString());
    38     }
    39 
    40     @Test public void printOnePlusTwoPlusThree() {
    41         Number one = new Number(1);
    42         Number two = new Number(2);
    43         Number three = new Number(3);
    44         Expression plus = new Plus(one, new Plus(two, three));
    45         
    46         PrintVisitor print = new PrintVisitor();
    47         plus.visit(print);
    48         
    49         assertEquals("1 + 2 + 3", print.sb.toString());
    50     }
    51 }