You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2013/03/18 20:33:10 UTC

svn commit: r1457929 - in /cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src: main/java/org/apache/cayenne/query/ test/java/org/apache/cayenne/exp/ test/java/org/apache/cayenne/exp/parser/

Author: aadamchik
Date: Mon Mar 18 19:33:10 2013
New Revision: 1457929

URL: http://svn.apache.org/r1457929
Log:
CAY-1803  Define toString() in path expressions

unit tests

Modified:
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/SelectQueryMetadata.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/exp/ExpressionTest.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/exp/parser/ASTDbPathTest.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/exp/parser/ASTObjPathTest.java

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/SelectQueryMetadata.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/SelectQueryMetadata.java?rev=1457929&r1=1457928&r2=1457929&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/SelectQueryMetadata.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/SelectQueryMetadata.java Mon Mar 18 19:33:10 2013
@@ -18,10 +18,12 @@
  ****************************************************************/
 package org.apache.cayenne.query;
 
+import java.io.IOException;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
 
+import org.apache.cayenne.CayenneRuntimeException;
 import org.apache.cayenne.exp.Expression;
 import org.apache.cayenne.map.EntityResolver;
 import org.apache.cayenne.map.ObjEntity;
@@ -46,23 +48,26 @@ class SelectQueryMetadata extends BaseQu
             // generate unique cache key...
             if (QueryCacheStrategy.NO_CACHE == getCacheStrategy()) {
 
-            }
-            else {
-                // create a unique key based on entity, qualifier, ordering and fetch
-                // offset and limit
+            } else {
+                // create a unique key based on entity, qualifier, ordering and
+                // fetch offset and limit
 
                 StringBuilder key = new StringBuilder();
 
                 ObjEntity entity = getObjEntity();
                 if (entity != null) {
                     key.append(entity.getName());
-                }
-                else if (dbEntity != null) {
+                } else if (dbEntity != null) {
                     key.append("db:").append(dbEntity.getName());
                 }
 
                 if (query.getQualifier() != null) {
-                    key.append('/').append(query.getQualifier());
+                    key.append('/');
+                    try {
+                        query.getQualifier().appendAsString(key);
+                    } catch (IOException e) {
+                        throw new CayenneRuntimeException("Unexpected IO Exception appending to StringBuilder", e);
+                    }
                 }
 
                 if (!query.getOrderings().isEmpty()) {
@@ -77,7 +82,7 @@ class SelectQueryMetadata extends BaseQu
                         }
                     }
                 }
-                
+
                 if (query.getFetchOffset() > 0 || query.getFetchLimit() > 0) {
                     key.append('/');
                     if (query.getFetchOffset() > 0) {
@@ -87,7 +92,7 @@ class SelectQueryMetadata extends BaseQu
                         key.append('l').append(query.getFetchLimit());
                     }
                 }
-                
+
                 this.cacheKey = key.toString();
             }
 
@@ -132,8 +137,7 @@ class SelectQueryMetadata extends BaseQu
      */
     @Override
     public Map<String, String> getPathSplitAliases() {
-        return pathSplitAliases != null ? pathSplitAliases : Collections
-                .<String, String> emptyMap();
+        return pathSplitAliases != null ? pathSplitAliases : Collections.<String, String> emptyMap();
     }
 
     /**

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/exp/ExpressionTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/exp/ExpressionTest.java?rev=1457929&r1=1457928&r2=1457929&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/exp/ExpressionTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/exp/ExpressionTest.java Mon Mar 18 19:33:10 2013
@@ -19,6 +19,7 @@
 
 package org.apache.cayenne.exp;
 
+import java.io.IOException;
 import java.io.PrintWriter;
 import java.io.StringWriter;
 import java.util.ArrayList;
@@ -56,9 +57,7 @@ public class ExpressionTest extends Serv
 
         if (objects.size() > 0) {
             SelectQuery query1 = new SelectQuery(Painting.class);
-            Expression e = ExpressionFactory.matchExp(
-                    Painting.TO_ARTIST_PROPERTY,
-                    objects.get(0));
+            Expression e = ExpressionFactory.matchExp(Painting.TO_ARTIST_PROPERTY, objects.get(0));
             query.setQualifier(e);
             objects.addAll(context.performQuery(query1));
         }
@@ -91,31 +90,26 @@ public class ExpressionTest extends Serv
     }
 
     public void testFromStringEnum() {
-        Expression e1 = Expression
-                .fromString("a = enum:org.apache.cayenne.exp.ExpEnum1.ONE");
+        Expression e1 = Expression.fromString("a = enum:org.apache.cayenne.exp.ExpEnum1.ONE");
         assertEquals(ExpEnum1.ONE, e1.getOperand(1));
 
-        Expression e2 = Expression
-                .fromString("a = enum:org.apache.cayenne.exp.ExpEnum1.TWO");
+        Expression e2 = Expression.fromString("a = enum:org.apache.cayenne.exp.ExpEnum1.TWO");
         assertEquals(ExpEnum1.TWO, e2.getOperand(1));
 
-        Expression e3 = Expression
-                .fromString("a = enum:org.apache.cayenne.exp.ExpEnum1.THREE");
+        Expression e3 = Expression.fromString("a = enum:org.apache.cayenne.exp.ExpEnum1.THREE");
         assertEquals(ExpEnum1.THREE, e3.getOperand(1));
 
         try {
             Expression.fromString("a = enum:org.apache.cayenne.exp.ExpEnum1.BOGUS");
             fail("Didn't throw on bad enum");
-        }
-        catch (ExpressionException e) {
+        } catch (ExpressionException e) {
             // expected
         }
 
         try {
             Expression.fromString("a = enum:BOGUS");
             fail("Didn't throw on bad enum");
-        }
-        catch (ExpressionException e) {
+        } catch (ExpressionException e) {
             // expected
         }
     }
@@ -135,49 +129,45 @@ public class ExpressionTest extends Serv
         assertEquals("x.artistName = 'bla'", e.toEJBQL("x"));
     }
 
-    public void testEncodeAsEJBQL1() {
+    public void testEncodeAsEJBQL1() throws IOException {
 
         Expression e = Expression.fromString("artistName = 'bla'");
 
-        StringWriter buffer = new StringWriter();
-        PrintWriter pw = new PrintWriter(buffer);
-        e.encodeAsEJBQL(pw, "x");
-        pw.close();
-        buffer.flush();
+        StringBuilder buffer = new StringBuilder();
+
+        e.appendAsEJBQL(buffer, "x");
+
         String ejbql = buffer.toString();
 
         assertEquals("x.artistName = 'bla'", ejbql);
     }
 
-    public void testEncodeAsEJBQL2() {
+    public void testEncodeAsEJBQL2() throws IOException {
 
         Expression e = Expression.fromString("artistName.stuff = $name");
 
-        StringWriter buffer = new StringWriter();
-        PrintWriter pw = new PrintWriter(buffer);
-        e.encodeAsEJBQL(pw, "x");
-        pw.close();
-        buffer.flush();
+        StringBuilder buffer = new StringBuilder();
+
+        e.appendAsEJBQL(buffer, "x");
         String ejbql = buffer.toString();
 
         assertEquals("x.artistName.stuff = :name", ejbql);
     }
 
-    public void testEncodeAsEJBQL3_EncodeListOfParameters() {
+    public void testEncodeAsEJBQL3_EncodeListOfParameters() throws IOException {
 
         Expression e = ExpressionFactory.inExp("artistName", "a", "b", "c");
 
-        StringWriter buffer = new StringWriter();
-        PrintWriter pw = new PrintWriter(buffer);
-        e.encodeAsEJBQL(pw, "x");
-        pw.close();
-        buffer.flush();
+        StringBuilder buffer = new StringBuilder();
+
+        e.appendAsEJBQL(buffer, "x");
+
         String ejbql = buffer.toString();
 
         assertEquals("x.artistName in ('a', 'b', 'c')", ejbql);
     }
 
-    public void testEncodeAsEJBQL_PersistentParamater() {
+    public void testEncodeAsEJBQL_PersistentParamater() throws IOException {
 
         Artist a = new Artist();
         ObjectId aId = new ObjectId("Artist", Artist.ARTIST_ID_PK_COLUMN, 1);
@@ -185,67 +175,54 @@ public class ExpressionTest extends Serv
 
         Expression e = ExpressionFactory.matchExp("artist", a);
 
-        StringWriter buffer = new StringWriter();
-        PrintWriter pw = new PrintWriter(buffer);
-        e.encodeAsEJBQL(pw, "x");
-        pw.close();
-        buffer.flush();
+        StringBuilder buffer = new StringBuilder();
+
+        e.appendAsEJBQL(buffer, "x");
+
         String ejbql = buffer.toString();
 
         assertEquals("x.artist = 1", ejbql);
     }
 
-    public void testEncodeAsEJBQLNotEquals() {
+    public void testAppendAsEJBQLNotEquals() throws IOException {
 
         Expression e = Expression.fromString("artistName != 'bla'");
 
-        StringWriter buffer = new StringWriter();
-        PrintWriter pw = new PrintWriter(buffer);
-        e.encodeAsEJBQL(pw, "x");
-        pw.close();
-        buffer.flush();
+        StringBuilder buffer = new StringBuilder();
+        e.appendAsEJBQL(buffer, "x");
         String ejbql = buffer.toString();
 
         assertEquals("x.artistName <> 'bla'", ejbql);
     }
 
-    public void testEncodeAsEJBQL_Enum() {
+    public void testEncodeAsEJBQL_Enum() throws IOException {
+
+        Expression e = Expression.fromString("a = enum:org.apache.cayenne.exp.ExpEnum1.THREE");
 
-        Expression e = Expression
-                .fromString("a = enum:org.apache.cayenne.exp.ExpEnum1.THREE");
+        StringBuilder buffer = new StringBuilder();
+        e.appendAsEJBQL(buffer, "x");
 
-        StringWriter buffer = new StringWriter();
-        PrintWriter pw = new PrintWriter(buffer);
-        e.encodeAsEJBQL(pw, "x");
-        pw.close();
-        buffer.flush();
         String ejbql = buffer.toString();
 
         assertEquals("x.a = enum:org.apache.cayenne.exp.ExpEnum1.THREE", ejbql);
     }
 
-    public void testEncodeAsString_StringLiteral() {
+    public void testEncodeAsString_StringLiteral() throws IOException {
         Expression e1 = Expression.fromString("a = 'abc'");
 
-        StringWriter buffer = new StringWriter();
-        PrintWriter pw = new PrintWriter(buffer);
-        e1.encodeAsString(pw);
-        pw.close();
-        buffer.flush();
+        StringBuilder buffer = new StringBuilder();
+
+        e1.appendAsString(buffer);
 
         assertEquals("a = \"abc\"", buffer.toString());
     }
 
-    public void testEncodeAsString_Enum() {
-        Expression e1 = Expression
-                .fromString("a = enum:org.apache.cayenne.exp.ExpEnum1.TWO");
-
-        StringWriter buffer = new StringWriter();
-        PrintWriter pw = new PrintWriter(buffer);
-        e1.encodeAsString(pw);
-        pw.close();
-        buffer.flush();
+    public void testEncodeAsString_Enum() throws IOException {
+        Expression e1 = Expression.fromString("a = enum:org.apache.cayenne.exp.ExpEnum1.TWO");
+
+        StringBuilder buffer = new StringBuilder();
 
+        e1.appendAsString(buffer);
         assertEquals("a = enum:org.apache.cayenne.exp.ExpEnum1.TWO", buffer.toString());
     }
 
@@ -275,7 +252,8 @@ public class ExpressionTest extends Serv
         // 2 same objects in different contexts
         assertTrue(e.match(objects.get(0)));
 
-        // we change one object - so the objects are different now (PersistenceState
+        // we change one object - so the objects are different now
+        // (PersistenceState
         // different)
         a1.setArtistName("newName");
 
@@ -326,7 +304,7 @@ public class ExpressionTest extends Serv
 
         Expression exp = e1.andExp(e2);
         assertEquals(exp.getType(), Expression.AND);
-        assertEquals(2, ((SimpleNode)exp).jjtGetNumChildren());
+        assertEquals(2, ((SimpleNode) exp).jjtGetNumChildren());
     }
 
     public void testOrExp() {
@@ -335,7 +313,7 @@ public class ExpressionTest extends Serv
 
         Expression exp = e1.orExp(e2);
         assertEquals(exp.getType(), Expression.OR);
-        assertEquals(2, ((SimpleNode)exp).jjtGetNumChildren());
+        assertEquals(2, ((SimpleNode) exp).jjtGetNumChildren());
     }
 
     public void testAndExpVarArgs() {
@@ -346,7 +324,7 @@ public class ExpressionTest extends Serv
 
         Expression exp = e1.andExp(e2, e3, e4);
         assertEquals(exp.getType(), Expression.AND);
-        assertEquals(4, ((SimpleNode)exp).jjtGetNumChildren());
+        assertEquals(4, ((SimpleNode) exp).jjtGetNumChildren());
     }
 
     public void testOrExpVarArgs() {
@@ -357,146 +335,182 @@ public class ExpressionTest extends Serv
 
         Expression exp = e1.orExp(e2, e3, e4);
         assertEquals(exp.getType(), Expression.OR);
-        assertEquals(4, ((SimpleNode)exp).jjtGetNumChildren());
+        assertEquals(4, ((SimpleNode) exp).jjtGetNumChildren());
     }
-    
+
     // bitwise operations test
     public void testBitwiseNegate() {
-    	Expression exp = Expression.fromString("~7");
-    	
-    	assertEquals(Expression.BITWISE_NOT, exp.getType());
-    	assertEquals(1, ((SimpleNode) exp).jjtGetNumChildren());
-    	assertEquals(new Long(-8), exp.evaluate(new Object())); // ~7 = -8 in digital world
+        Expression exp = Expression.fromString("~7");
+
+        assertEquals(Expression.BITWISE_NOT, exp.getType());
+        assertEquals(1, ((SimpleNode) exp).jjtGetNumChildren());
+        assertEquals(new Long(-8), exp.evaluate(new Object())); // ~7 = -8 in
+                                                                // digital world
     }
-    
+
     public void testBitwiseAnd() {
-    	Expression exp = Expression.fromString("1 & 0");
-    	
-    	assertEquals(Expression.BITWISE_AND, exp.getType());
-    	assertEquals(2, ((SimpleNode) exp).jjtGetNumChildren());
-    	assertEquals(new Long(0), exp.evaluate(new Object()));
+        Expression exp = Expression.fromString("1 & 0");
+
+        assertEquals(Expression.BITWISE_AND, exp.getType());
+        assertEquals(2, ((SimpleNode) exp).jjtGetNumChildren());
+        assertEquals(new Long(0), exp.evaluate(new Object()));
     }
-    
+
     public void testBitwiseOr() {
-    	Expression exp = Expression.fromString("1 | 0");
-    	
-    	assertEquals(Expression.BITWISE_OR, exp.getType());
-    	assertEquals(2, ((SimpleNode) exp).jjtGetNumChildren());
-    	assertEquals(new Long(1), exp.evaluate(new Object()));
+        Expression exp = Expression.fromString("1 | 0");
+
+        assertEquals(Expression.BITWISE_OR, exp.getType());
+        assertEquals(2, ((SimpleNode) exp).jjtGetNumChildren());
+        assertEquals(new Long(1), exp.evaluate(new Object()));
     }
-    
+
     public void testBitwiseXor() {
-    	Expression exp = Expression.fromString("1 ^ 0");
-    	
-    	assertEquals(Expression.BITWISE_XOR, exp.getType());
-    	assertEquals(2, ((SimpleNode) exp).jjtGetNumChildren());
-    	assertEquals(new Long(1), exp.evaluate(new Object()));
+        Expression exp = Expression.fromString("1 ^ 0");
+
+        assertEquals(Expression.BITWISE_XOR, exp.getType());
+        assertEquals(2, ((SimpleNode) exp).jjtGetNumChildren());
+        assertEquals(new Long(1), exp.evaluate(new Object()));
     }
-    
+
     public void testBitwiseLeftShift() {
-    	Expression exp = Expression.fromString("7 << 2");
-    	
-    	assertEquals(Expression.BITWISE_LEFT_SHIFT, exp.getType());
-    	assertEquals(2, ((SimpleNode) exp).jjtGetNumChildren());
-    	assertEquals(new Long(28), exp.evaluate(new Object()));
+        Expression exp = Expression.fromString("7 << 2");
+
+        assertEquals(Expression.BITWISE_LEFT_SHIFT, exp.getType());
+        assertEquals(2, ((SimpleNode) exp).jjtGetNumChildren());
+        assertEquals(new Long(28), exp.evaluate(new Object()));
     }
-    
+
     public void testBitwiseRightShift() {
-    	Expression exp = Expression.fromString("7 >> 2");
-    	
-    	assertEquals(Expression.BITWISE_RIGHT_SHIFT, exp.getType());
-    	assertEquals(2, ((SimpleNode) exp).jjtGetNumChildren());
-    	
-    	assertEquals(new Long(1), exp.evaluate(new Object()));
+        Expression exp = Expression.fromString("7 >> 2");
+
+        assertEquals(Expression.BITWISE_RIGHT_SHIFT, exp.getType());
+        assertEquals(2, ((SimpleNode) exp).jjtGetNumChildren());
+
+        assertEquals(new Long(1), exp.evaluate(new Object()));
     }
-    
+
     /**
      * (a | b) | c = a | (b | c)
      */
     public void testBitwiseAssociativity() {
-    	Expression e1 = Expression.fromString("(3010 | 2012) | 4095");
-    	Expression e2 = Expression.fromString("3010 | (2012 | 4095)");
-    	
-    	assertEquals(e1.evaluate(new Object()), e2.evaluate(new Object()));
+        Expression e1 = Expression.fromString("(3010 | 2012) | 4095");
+        Expression e2 = Expression.fromString("3010 | (2012 | 4095)");
+
+        assertEquals(e1.evaluate(new Object()), e2.evaluate(new Object()));
     }
-    
+
     /**
      * a | b = b | a
      */
     public void testBitwiseCommutativity() {
-    	Expression e1 = Expression.fromString("3010 | 4095");
-    	Expression e2 = Expression.fromString("4095 | 3010");
-    	
-    	assertEquals(e1.evaluate(new Object()), e2.evaluate(new Object()));
+        Expression e1 = Expression.fromString("3010 | 4095");
+        Expression e2 = Expression.fromString("4095 | 3010");
+
+        assertEquals(e1.evaluate(new Object()), e2.evaluate(new Object()));
     }
-    
+
     /**
      * a | (a & b) = a
      */
     public void testBitwiseAbsorption() {
-    	Expression e1 = Expression.fromString("2012 | (2012 & 3010)");
-    	Expression e2 = Expression.fromString("2012L"); // scalar becomes Long object
-    	
-    	assertEquals(e1.evaluate(new Object()), e2.evaluate(new Object()));
+        Expression e1 = Expression.fromString("2012 | (2012 & 3010)");
+        Expression e2 = Expression.fromString("2012L"); // scalar becomes Long
+                                                        // object
+
+        assertEquals(e1.evaluate(new Object()), e2.evaluate(new Object()));
     }
-    
+
     /**
-     *  a | (b & c) = (a | b) & (a | c)
+     * a | (b & c) = (a | b) & (a | c)
      */
     public void testBitwiseDistributivity() {
-    	Expression e1 = Expression.fromString("4095 | (7777 & 8888)");
-    	Expression e2 = Expression.fromString("(4095 | 7777) & (4095 | 8888)");
-    	
-    	assertEquals(e1.evaluate(new Object()), e2.evaluate(new Object()));
+        Expression e1 = Expression.fromString("4095 | (7777 & 8888)");
+        Expression e2 = Expression.fromString("(4095 | 7777) & (4095 | 8888)");
+
+        assertEquals(e1.evaluate(new Object()), e2.evaluate(new Object()));
     }
-    
+
     /**
-     * a | ~a = 1 
-     * But in Java computed result is -1 because of JVM represents negative numbers as positive ones: ~2 = -3;
-     * For instance, there are only 4 bits and that is why -3 means '1101' and 3 means '0011' because of '1101' + '0011' = (1)'0000' what is zero; but the same time '1101' is 13.
+     * a | ~a = 1 But in Java computed result is -1 because of JVM represents
+     * negative numbers as positive ones: ~2 = -3; For instance, there are only
+     * 4 bits and that is why -3 means '1101' and 3 means '0011' because of
+     * '1101' + '0011' = (1)'0000' what is zero; but the same time '1101' is 13.
      */
     public void testBitwiseComplements() {
-    	Expression e1 = Expression.fromString("5555 | ~5555");
-    	Expression e2 = Expression.fromString("9999 & ~9999");
-    	
-    	assertEquals(new Long(-1), e1.evaluate(new Object())); // ~0 = -1 that is the way how robots kill humans what means x | ~x = 1 in boolean algebra against java digital bitwise operations logics
-    	assertEquals(new Long(0), e2.evaluate(new Object()));
+        Expression e1 = Expression.fromString("5555 | ~5555");
+        Expression e2 = Expression.fromString("9999 & ~9999");
+
+        assertEquals(new Long(-1), e1.evaluate(new Object())); // ~0 = -1 that
+                                                               // is the way how
+                                                               // robots kill
+                                                               // humans what
+                                                               // means x | ~x =
+                                                               // 1 in boolean
+                                                               // algebra
+                                                               // against java
+                                                               // digital
+                                                               // bitwise
+                                                               // operations
+                                                               // logics
+        assertEquals(new Long(0), e2.evaluate(new Object()));
     }
-    
+
     /**
-     * Huntington equation n(n(x) + y) + n(n(x) + n(y)) = x where is 'n' is negotation (may be any other unary operation) and '+' is disjunction (OR operation, i.e. '|' bitwise operation).
+     * Huntington equation n(n(x) + y) + n(n(x) + n(y)) = x where is 'n' is
+     * negotation (may be any other unary operation) and '+' is disjunction (OR
+     * operation, i.e. '|' bitwise operation).
      */
     public void testBitwiseHuntingtonEquation() {
-    	Expression theHuntingEquation = Expression.fromString("~(~3748 | 4095) | ~(~3748 | ~4095)");
-    	
-    	assertEquals(new Long(3748), theHuntingEquation.evaluate(new Object()));
+        Expression theHuntingEquation = Expression.fromString("~(~3748 | 4095) | ~(~3748 | ~4095)");
+
+        assertEquals(new Long(3748), theHuntingEquation.evaluate(new Object()));
     }
-    
+
     /**
-     * Robbins equation n(n(x + y) + n(x + n(y))) = x where is 'n' is negotation and '+' is disjunction (OR operation, i.e. '|' bitwise operation).
-     * Every Robbins algebra is a Boolean algebra according to automated reasoning program EQP.
+     * Robbins equation n(n(x + y) + n(x + n(y))) = x where is 'n' is negotation
+     * and '+' is disjunction (OR operation, i.e. '|' bitwise operation). Every
+     * Robbins algebra is a Boolean algebra according to automated reasoning
+     * program EQP.
      */
     public void testBitwiseRobbinsEquation() {
-    	Expression theRobbinsEquation = Expression.fromString("~(~(5111 | 4095) | ~(5111 | ~4095))");
-    	
-    	assertEquals(new Long(5111), theRobbinsEquation.evaluate(new Object()) );
+        Expression theRobbinsEquation = Expression.fromString("~(~(5111 | 4095) | ~(5111 | ~4095))");
+
+        assertEquals(new Long(5111), theRobbinsEquation.evaluate(new Object()));
     }
-    
+
     /**
      * Bitwise and math operations are ruled by precedence.
      */
     public void testBitwisePrecedence() {
-    	Expression e1 = Expression.fromString("1 << 1 & 2"); // 1 << 1 = 2 and after that 2 & 2 = 2;
-    	Expression e2 = Expression.fromString("0 | 1 & ~(3 | ~3)"); // by java math precedence that means 0 | (1 & (~(3 | (~3))))
-    	Expression e3 = Expression.fromString("3 | ~(-3) + 2");    // JVM ~(-3) = 2 and then 2 + 2 is 4 what bitwise is 100, then 011 | 100 = 111 what means 3 + 4 = 7
-    	Expression e4 = Expression.fromString("2 * 2 | 2"); // (2 * 2) | 2 = 4 | 2 = '100' | '10' = '110' = 6
-    	Expression e5 = Expression.fromString("6 / 2 & 3"); // (6 / 2) & 3 = 3 & 3 = 3
-    	
-    	assertEquals(new Long(2), e1.evaluate(new Object()));
-    	assertEquals(new Long(0), e2.evaluate(new Object()));
-    	assertEquals(new Long(7), e3.evaluate(new Object()));
-    	assertEquals(new Long(6), e4.evaluate(new Object()));
-    	assertEquals(new Long(3), e5.evaluate(new Object()));
+        Expression e1 = Expression.fromString("1 << 1 & 2"); // 1 << 1 = 2 and
+                                                             // after that 2 & 2
+                                                             // = 2;
+        Expression e2 = Expression.fromString("0 | 1 & ~(3 | ~3)"); // by java
+                                                                    // math
+                                                                    // precedence
+                                                                    // that
+                                                                    // means 0 |
+                                                                    // (1 & (~(3
+                                                                    // | (~3))))
+        Expression e3 = Expression.fromString("3 | ~(-3) + 2"); // JVM ~(-3) = 2
+                                                                // and then 2 +
+                                                                // 2 is 4 what
+                                                                // bitwise is
+                                                                // 100, then 011
+                                                                // | 100 = 111
+                                                                // what means 3
+                                                                // + 4 = 7
+        Expression e4 = Expression.fromString("2 * 2 | 2"); // (2 * 2) | 2 = 4 |
+                                                            // 2 = '100' | '10'
+                                                            // = '110' = 6
+        Expression e5 = Expression.fromString("6 / 2 & 3"); // (6 / 2) & 3 = 3 &
+                                                            // 3 = 3
+
+        assertEquals(new Long(2), e1.evaluate(new Object()));
+        assertEquals(new Long(0), e2.evaluate(new Object()));
+        assertEquals(new Long(7), e3.evaluate(new Object()));
+        assertEquals(new Long(6), e4.evaluate(new Object()));
+        assertEquals(new Long(3), e5.evaluate(new Object()));
     }
     // bitwise
 }

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/exp/parser/ASTDbPathTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/exp/parser/ASTDbPathTest.java?rev=1457929&r1=1457928&r2=1457929&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/exp/parser/ASTDbPathTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/exp/parser/ASTDbPathTest.java Mon Mar 18 19:33:10 2013
@@ -18,8 +18,7 @@
  ****************************************************************/
 package org.apache.cayenne.exp.parser;
 
-import java.io.ByteArrayOutputStream;
-import java.io.PrintWriter;
+import java.io.IOException;
 
 import junit.framework.TestCase;
 
@@ -28,13 +27,12 @@ public class ASTDbPathTest extends TestC
     public void testToString() {
         assertEquals("db:x.y", new ASTDbPath("x.y").toString());
     }
-    
-    public void testEncodeAsString() {
-        ByteArrayOutputStream out = new ByteArrayOutputStream();
-        PrintWriter pw = new PrintWriter(out);
-        new ASTDbPath("x.y").encodeAsString(pw);
-        pw.close();
-        
-        assertEquals("db:x.y", new String(out.toByteArray()));
+
+    public void testAppendAsString() throws IOException {
+        StringBuilder buffer = new StringBuilder();
+
+        new ASTDbPath("x.y").appendAsString(buffer);
+
+        assertEquals("db:x.y", buffer.toString());
     }
 }

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/exp/parser/ASTObjPathTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/exp/parser/ASTObjPathTest.java?rev=1457929&r1=1457928&r2=1457929&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/exp/parser/ASTObjPathTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/exp/parser/ASTObjPathTest.java Mon Mar 18 19:33:10 2013
@@ -18,8 +18,7 @@
  ****************************************************************/
 package org.apache.cayenne.exp.parser;
 
-import java.io.ByteArrayOutputStream;
-import java.io.PrintWriter;
+import java.io.IOException;
 
 import junit.framework.TestCase;
 
@@ -29,12 +28,9 @@ public class ASTObjPathTest extends Test
         assertEquals("x.y", new ASTObjPath("x.y").toString());
     }
 
-    public void testEncodeAsString() {
-        ByteArrayOutputStream out = new ByteArrayOutputStream();
-        PrintWriter pw = new PrintWriter(out);
-        new ASTObjPath("x.y").encodeAsString(pw);
-        pw.close();
-
-        assertEquals("x.y", new String(out.toByteArray()));
+    public void testEncodeAsString() throws IOException {
+        StringBuilder buffer = new StringBuilder();
+        new ASTObjPath("x.y").appendAsString(buffer);
+        assertEquals("x.y", buffer.toString());
     }
 }