# HG changeset patch # User Jaroslav Tulach # Date 1213430370 -7200 # Node ID 77b3c0f1e4c33ff38d0e8e10ad4293837ef0796a # Parent 81d72f69fa42b2fe2655afcee9bd5ba79c033b82 Adding tests also for 3.0 version of the API diff -r 81d72f69fa42 -r 77b3c0f1e4c3 samples/visitor/21-clientprovider/build.xml --- a/samples/visitor/21-clientprovider/build.xml Sat Jun 14 09:59:27 2008 +0200 +++ b/samples/visitor/21-clientprovider/build.xml Sat Jun 14 09:59:30 2008 +0200 @@ -21,18 +21,14 @@ - - - - - - - - + + + + @@ -50,6 +46,12 @@ + + + + + + diff -r 81d72f69fa42 -r 77b3c0f1e4c3 samples/visitor/21-clientprovider/nbproject/project.xml --- a/samples/visitor/21-clientprovider/nbproject/project.xml Sat Jun 14 09:59:27 2008 +0200 +++ b/samples/visitor/21-clientprovider/nbproject/project.xml Sat Jun 14 09:59:30 2008 +0200 @@ -40,6 +40,12 @@ src-test2.0 UTF-8 + + + java + src-test3.0 + UTF-8 + @@ -66,20 +72,24 @@ src-api1.0 + + src-test + + src-api2.0 + + src-test2.0 + + src-api3.0 - - src-test - - - - src-test2.0 + + src-test3.0 build.xml @@ -116,6 +126,11 @@ src-api2.0:src-test:../../libs/dist/junit-4.4.jar 1.5 + + src-test3.0 + src-api3.0:src-test:src-test2.0:../../libs/dist/junit-4.4.jar + 1.5 + diff -r 81d72f69fa42 -r 77b3c0f1e4c3 samples/visitor/21-clientprovider/src-test3.0/org/apidesign/test/visitor/PrintRealTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/samples/visitor/21-clientprovider/src-test3.0/org/apidesign/test/visitor/PrintRealTest.java Sat Jun 14 09:59:30 2008 +0200 @@ -0,0 +1,83 @@ +package org.apidesign.test.visitor; + +import org.apidesign.test.visitor.PrintTest.PrintVisitor; +import static junit.framework.Assert.*; +import org.apidesign.visitor.Language.Expression; +import org.apidesign.visitor.Language.Minus; +import org.apidesign.visitor.Language.Number; +import org.apidesign.visitor.Language.Plus; +import org.apidesign.visitor.Language.Real; +import org.apidesign.visitor.Language.Visitor; +import org.junit.Test; + +public class PrintRealTest { + @Test public void printOneMinusTwo() { + Real one = newReal(1); + Real two = newReal(2); + Expression plus = PrintOfMinusStructureTest.newMinus(one, two); + + PrintVisitor print = new PrintVisitor(); + plus.visit(print.dispatch); + + assertEquals("1.0 - 2.0", print.sb.toString()); + } + + @Test public void visitorReadyForVersion3_0() { + class PrintVisitor3_0 implements Visitor.Version3_0 { + StringBuffer sb = new StringBuffer(); + Visitor dispatch = Visitor.create(this); + + public boolean visitUnknown(Expression exp) { + sb.append("unknown"); + return true; + } + + public void visitPlus(Plus s) { + s.getFirst().visit(dispatch); + sb.append(" + "); + s.getSecond().visit(dispatch); + } + + public void visitMinus(Minus m) { + m.getFirst().visit(dispatch); + sb.append(" - "); + m.getSecond().visit(dispatch); + } + + public void visitReal(Real r) { + sb.append(r.getValue()); + } + } + + Number one = PrintTest.newNumber(1); + Number two = PrintTest.newNumber(2); + Expression plus = PrintOfMinusStructureTest.newMinus(one, two); + + PrintVisitor3_0 print = new PrintVisitor3_0(); + plus.visit(print.dispatch); + + assertEquals("1.0 - 2.0", print.sb.toString()); + + Real five = newReal(5); + Real three = newReal(3); + Expression realPlus = PrintOfMinusStructureTest.newMinus(five, three); + + PrintVisitor3_0 printReal = new PrintVisitor3_0(); + realPlus.visit(printReal.dispatch); + + assertEquals("5.0 - 3.0", printReal.sb.toString()); + + } + + public static Real newReal(final double value) { + return new Real() { + public double getValue() { + return value; + } + + public void visit(Visitor v) { + v.dispatchReal(this); + } + }; + } +}