samples/visitor/21-clientprovider/src-test3.0/org/apidesign/test/visitor/PrintRealTest.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.Real;
10 import org.apidesign.visitor.Language.Visitor;
11 import org.junit.Test;
13 public class PrintRealTest {
14 @Test public void printOneMinusTwo() {
15 Real one = newReal(1);
16 Real two = newReal(2);
17 Expression plus = PrintOfMinusStructureTest.newMinus(one, two);
19 PrintVisitor print = new PrintVisitor();
20 plus.visit(print.dispatch);
22 if (Boolean.getBoolean("no.failures")) {
23 assertEquals("unknownunknownunknown", print.sb.toString());
26 assertEquals("1.0 - 2.0", print.sb.toString());
29 @Test public void visitorReadyForVersion3_0() {
30 class PrintVisitor3_0 implements Visitor.Version3_0 {
31 StringBuffer sb = new StringBuffer();
32 Visitor dispatch = Visitor.create(this);
34 public boolean visitUnknown(Expression exp) {
39 public void visitPlus(Plus s) {
40 s.getFirst().visit(dispatch);
42 s.getSecond().visit(dispatch);
45 public void visitMinus(Minus m) {
46 m.getFirst().visit(dispatch);
48 m.getSecond().visit(dispatch);
51 public void visitReal(Real r) {
52 sb.append(r.getValue());
56 Number one = PrintTest.newNumber(1);
57 Number two = PrintTest.newNumber(2);
58 Expression plus = PrintOfMinusStructureTest.newMinus(one, two);
60 PrintVisitor3_0 print = new PrintVisitor3_0();
61 plus.visit(print.dispatch);
63 assertEquals("1.0 - 2.0", print.sb.toString());
65 Real five = newReal(5);
66 Real three = newReal(3);
67 Expression realPlus = PrintOfMinusStructureTest.newMinus(five, three);
69 PrintVisitor3_0 printReal = new PrintVisitor3_0();
70 realPlus.visit(printReal.dispatch);
72 assertEquals("5.0 - 3.0", printReal.sb.toString());
76 public static Real newReal(final double value) {
78 public double getValue() {
82 public void visit(Visitor v) {