samples/visitor/21-clientprovider/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.notevolutionready.Language.Expression;
5 import org.apidesign.visitor.notevolutionready.Language.Number;
6 import org.apidesign.visitor.notevolutionready.Language.Plus;
7 import org.apidesign.visitor.notevolutionready.Language.Visitor;
10 public class PrintTest {
12 // BEGIN: visitor.notevolutionready.print
13 public static class PrintVisitor implements Visitor {
14 StringBuffer sb = new StringBuffer();
16 public void visitPlus(Plus s) {
17 s.getFirst().visit(this);
19 s.getSecond().visit(this);
22 public void visitNumber(Number n) {
23 sb.append (n.getValue());
27 @Test public void printOnePlusOne() {
28 Number one = new Number(1);
29 Expression plus = new Plus(one, one);
31 PrintVisitor print = new PrintVisitor();
34 assertEquals("1 + 1", print.sb.toString());
36 // END: visitor.notevolutionready.print
38 @Test public void printOnePlusTwoPlusThree() {
39 Number one = new Number(1);
40 Number two = new Number(2);
41 Number three = new Number(3);
42 Expression plus = new Plus(one, new Plus(two, three));
44 PrintVisitor print = new PrintVisitor();
47 assertEquals("1 + 2 + 3", print.sb.toString());