Return-Path: X-Original-To: apmail-cayenne-commits-archive@www.apache.org Delivered-To: apmail-cayenne-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 9AC4B105E2 for ; Sun, 2 Feb 2014 12:50:57 +0000 (UTC) Received: (qmail 92806 invoked by uid 500); 2 Feb 2014 12:50:57 -0000 Delivered-To: apmail-cayenne-commits-archive@cayenne.apache.org Received: (qmail 92767 invoked by uid 500); 2 Feb 2014 12:50:50 -0000 Mailing-List: contact commits-help@cayenne.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cayenne.apache.org Delivered-To: mailing list commits@cayenne.apache.org Received: (qmail 92760 invoked by uid 99); 2 Feb 2014 12:50:48 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 02 Feb 2014 12:50:48 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 02 Feb 2014 12:50:47 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 39A2923888E4; Sun, 2 Feb 2014 12:50:27 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1563598 - in /cayenne/main/branches/STABLE-3.1/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne: access/ReturnTypesMappingTest.java unit/MySQLUnitDbAdapter.java unit/UnitDbAdapter.java Date: Sun, 02 Feb 2014 12:50:27 -0000 To: commits@cayenne.apache.org From: aadamchik@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20140202125027.39A2923888E4@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: aadamchik Date: Sun Feb 2 12:50:26 2014 New Revision: 1563598 URL: http://svn.apache.org/r1563598 Log: fixing REAL unit test on MySQL Modified: cayenne/main/branches/STABLE-3.1/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/ReturnTypesMappingTest.java cayenne/main/branches/STABLE-3.1/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/MySQLUnitDbAdapter.java cayenne/main/branches/STABLE-3.1/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/UnitDbAdapter.java Modified: cayenne/main/branches/STABLE-3.1/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/ReturnTypesMappingTest.java URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.1/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/ReturnTypesMappingTest.java?rev=1563598&r1=1563597&r2=1563598&view=diff ============================================================================== --- cayenne/main/branches/STABLE-3.1/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/ReturnTypesMappingTest.java (original) +++ cayenne/main/branches/STABLE-3.1/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/ReturnTypesMappingTest.java Sun Feb 2 12:50:26 2014 @@ -600,8 +600,16 @@ public class ReturnTypesMappingTest exte DataRow testRead = (DataRow) context.performQuery(q).get(0); Object columnValue = testRead.get(columnName); assertNotNull(columnValue); - assertEquals(Float.class, columnValue.getClass()); - assertEquals(realValue, columnValue); + + // MySQL can treat REAL as either DOUBLE or FLOAT depending on the + // engine settings + if (unitDbAdapter.realAsDouble()) { + assertEquals(Double.class, columnValue.getClass()); + assertEquals(Double.valueOf(realValue), (Double) columnValue, 0.0001); + } else { + assertEquals(Float.class, columnValue.getClass()); + assertEquals(realValue, columnValue); + } } public void testREAL2() throws Exception { Modified: cayenne/main/branches/STABLE-3.1/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/MySQLUnitDbAdapter.java URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.1/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/MySQLUnitDbAdapter.java?rev=1563598&r1=1563597&r2=1563598&view=diff ============================================================================== --- cayenne/main/branches/STABLE-3.1/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/MySQLUnitDbAdapter.java (original) +++ cayenne/main/branches/STABLE-3.1/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/MySQLUnitDbAdapter.java Sun Feb 2 12:50:26 2014 @@ -40,6 +40,13 @@ public class MySQLUnitDbAdapter extends public MySQLUnitDbAdapter(DbAdapter adapter) { super(adapter); } + + @Override + public boolean realAsDouble() { + // this actually depends on the "sql_mode" var in MYSQL. However the + // default is REAL == DOUBLE + return true; + } @Override public boolean supportsLobs() { Modified: cayenne/main/branches/STABLE-3.1/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/UnitDbAdapter.java URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.1/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/UnitDbAdapter.java?rev=1563598&r1=1563597&r2=1563598&view=diff ============================================================================== --- cayenne/main/branches/STABLE-3.1/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/UnitDbAdapter.java (original) +++ cayenne/main/branches/STABLE-3.1/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/UnitDbAdapter.java Sun Feb 2 12:50:26 2014 @@ -66,6 +66,16 @@ public class UnitDbAdapter { } this.adapter = adapter; } + + /** + * Returns whether the target DB treats REAL values as DOUBLEs. Default is + * false, i.e. REALs are treated as FLOATs. + * + * @return + */ + public boolean realAsDouble() { + return false; + } /** * Drops all table constraints.