samples/visitor/11-cleanversion/src-test2.0/org/apidesign/test/visitor/PrintOfMinusStructureTest.java
1 package org.apidesign.test.visitor;
3 import org.apidesign.test.visitor.PrintTest.PrintVisitor;
4 import static junit.framework.Assert.*;
5 import org.apidesign.visitor.Language.Expression;
6 import org.apidesign.visitor.Language.Minus;
7 import org.apidesign.visitor.Language.Number;
8 import org.apidesign.visitor.Language.Plus;
9 import org.apidesign.visitor.Language.Visitor2_0;
10 import org.junit.Test;
12 public class PrintOfMinusStructureTest {
13 @Test public void printOneMinusTwo() {
14 Number one = new Number(1);
15 Number two = new Number(2);
16 Expression plus = new Minus(one, two);
18 PrintVisitor print = new PrintVisitor();
21 if (Boolean.getBoolean("no.failures")) {
23 "Not defined how to handle Minus. We'll get wrong result",
24 "unknown", print.sb.toString()
28 assertEquals("1 - 2", print.sb.toString());
31 @Test public void visitorReadyForVersion2_0() {
32 // BEGIN: visitor.cleanversion.print2
33 class PrintVisitor2_0 implements Visitor2_0 {
34 StringBuffer sb = new StringBuffer();
36 public void visitUnknown(Expression exp) {
40 public void visitPlus(Plus s) {
41 s.getFirst().visit(this);
43 s.getSecond().visit(this);
46 public void visitNumber(Number n) {
47 sb.append (n.getValue());
49 public void visitMinus(Minus m) {
50 m.getFirst().visit(this);
52 m.getSecond().visit(this);
56 Number one = new Number(1);
57 Number two = new Number(2);
58 Expression plus = new Minus(one, two);
60 PrintVisitor2_0 print = new PrintVisitor2_0();
63 assertEquals("1 - 2", print.sb.toString());
64 // END: visitor.cleanversion.print2