samples/visitor/abstractclass/src-test/org/apidesign/test/visitor/CountNumbersTest.java
1.1 --- a/samples/visitor/abstractclass/src-test/org/apidesign/test/visitor/CountNumbersTest.java Sat Jun 14 10:09:09 2008 +0200
1.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
1.3 @@ -1,51 +0,0 @@
1.4 -package org.apidesign.test.visitor;
1.5 -
1.6 -import static junit.framework.Assert.*;
1.7 -import org.apidesign.visitor.Language.Expression;
1.8 -import org.apidesign.visitor.Language.Number;
1.9 -import org.apidesign.visitor.Language.Plus;
1.10 -import org.apidesign.visitor.Language.Visitor;
1.11 -import org.junit.Test;
1.12 -
1.13 -public class CountNumbersTest {
1.14 -
1.15 - // BEGIN: visitor.count.numbers.visitunknown
1.16 - private static class CountNumbers extends Visitor/*version1.0*/ {
1.17 - int cnt;
1.18 -
1.19 - @Override
1.20 - public void visitUnknown(Expression exp) {
1.21 - // not a number
1.22 - }
1.23 - public void visitPlus(Plus s) {
1.24 - s.getFirst().visit(this);
1.25 - s.getSecond().visit(this);
1.26 - }
1.27 - public void visitNumber(Number n) {
1.28 - cnt++;
1.29 - }
1.30 - }
1.31 -
1.32 - public static int countNumbers(Expression expression) {
1.33 - CountNumbers counter = new CountNumbers();
1.34 - expression.visit(counter);
1.35 - return counter.cnt;
1.36 - }
1.37 - // END: visitor.count.numbers.visitunknown
1.38 -
1.39 - @Test public void printOnePlusOne() {
1.40 - Number one = new Number(1);
1.41 - Expression expression = new Plus(one, one);
1.42 -
1.43 - assertEquals("Two 1's", 2, countNumbers(expression));
1.44 - }
1.45 -
1.46 - @Test public void printOnePlusTwoPlusThree() {
1.47 - Number one = new Number(1);
1.48 - Number two = new Number(2);
1.49 - Number three = new Number(3);
1.50 - Expression plus = new Plus(one, new Plus(two, three));
1.51 -
1.52 - assertEquals("Three", 3, countNumbers(plus));
1.53 - }
1.54 -}