samples/visitor/11-cleanversion/src-test2.0/org/apidesign/test/visitor/PrintOfMinusStructureTest.java
author Jaroslav Tulach <jtulach@netbeans.org>
Sat, 14 Jun 2008 22:38:00 +0200
changeset 265 eb31b2d1822a
parent 170 206cdfeefeec
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 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;
    11 
    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);
    17         
    18         PrintVisitor print = new PrintVisitor();
    19         plus.visit(print);
    20         
    21         if (Boolean.getBoolean("no.failures")) {
    22             assertEquals(
    23                 "Not defined how to handle Minus. We'll get wrong result",
    24                 "unknown", print.sb.toString()
    25             );
    26             return;
    27         }
    28         assertEquals("1 - 2", print.sb.toString());
    29     }
    30     
    31     @Test public void visitorReadyForVersion2_0() {
    32         // BEGIN: visitor.cleanversion.print2
    33         class PrintVisitor2_0 implements Visitor2_0 {
    34             StringBuffer sb = new StringBuffer();
    35 
    36             public void visitUnknown(Expression exp) {
    37                 sb.append("unknown");
    38             }
    39 
    40             public void visitPlus(Plus s) {
    41                 s.getFirst().visit(this);
    42                 sb.append(" + ");
    43                 s.getSecond().visit(this);
    44             }
    45 
    46             public void visitNumber(Number n) {
    47                 sb.append (n.getValue());
    48             }
    49             public void visitMinus(Minus m) {
    50                 m.getFirst().visit(this);
    51                 sb.append(" - ");
    52                 m.getSecond().visit(this);
    53             }
    54         }
    55         
    56         Number one = new Number(1);
    57         Number two = new Number(2);
    58         Expression plus = new Minus(one, two);
    59         
    60         PrintVisitor2_0 print = new PrintVisitor2_0();
    61         plus.visit(print);
    62         
    63         assertEquals("1 - 2", print.sb.toString());
    64         // END: visitor.cleanversion.print2
    65         
    66     }
    67 }