samples/visitor/11-cleanversion/src-test/org/apidesign/test/visitor/PrintTest.java
1 package org.apidesign.test.visitor;
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;
10 public class PrintTest {
12 public static class PrintVisitor implements Visitor1_0 {
13 StringBuffer sb = new StringBuffer();
15 public void visitUnknown(Expression exp) {
19 public void visitPlus(Plus s) {
20 s.getFirst().visit(this);
22 s.getSecond().visit(this);
25 public void visitNumber(Number n) {
26 sb.append (n.getValue());
30 @Test public void printOnePlusOne() {
31 Number one = new Number(1);
32 Expression plus = new Plus(one, one);
34 PrintVisitor print = new PrintVisitor();
37 assertEquals("1 + 1", print.sb.toString());
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));
46 PrintVisitor print = new PrintVisitor();
49 assertEquals("1 + 2 + 3", print.sb.toString());