You are viewing a plain text version of this content. The canonical link for it is here.
Posted to torque-dev@db.apache.org by tf...@apache.org on 2014/10/22 00:56:35 UTC

svn commit: r1633481 - in /db/torque/torque4/trunk/torque-test/src: main/java/org/apache/torque/TestEnum.java main/schema/test-schema.xml test/java/org/apache/torque/datatypes/EnumTest.java

Author: tfischer
Date: Tue Oct 21 22:56:35 2014
New Revision: 1633481

URL: http://svn.apache.org/r1633481
Log:
TORQUE-331 - test enum handling

Added:
    db/torque/torque4/trunk/torque-test/src/main/java/org/apache/torque/TestEnum.java
    db/torque/torque4/trunk/torque-test/src/test/java/org/apache/torque/datatypes/EnumTest.java
Modified:
    db/torque/torque4/trunk/torque-test/src/main/schema/test-schema.xml

Added: db/torque/torque4/trunk/torque-test/src/main/java/org/apache/torque/TestEnum.java
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-test/src/main/java/org/apache/torque/TestEnum.java?rev=1633481&view=auto
==============================================================================
--- db/torque/torque4/trunk/torque-test/src/main/java/org/apache/torque/TestEnum.java (added)
+++ db/torque/torque4/trunk/torque-test/src/main/java/org/apache/torque/TestEnum.java Tue Oct 21 22:56:35 2014
@@ -0,0 +1,20 @@
+package org.apache.torque;
+
+
+/** Predefines enum for testing enum handling in Columns. */
+public enum TestEnum
+{
+    A,
+    B,
+    C;
+
+    public String getValue()
+    {
+        return toString();
+    }
+
+    public static TestEnum getByValue(final String arg)
+    {
+        return valueOf(arg);
+    }
+}

Modified: db/torque/torque4/trunk/torque-test/src/main/schema/test-schema.xml
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-test/src/main/schema/test-schema.xml?rev=1633481&r1=1633480&r2=1633481&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-test/src/main/schema/test-schema.xml (original)
+++ db/torque/torque4/trunk/torque-test/src/main/schema/test-schema.xml Tue Oct 21 22:56:35 2014
@@ -145,6 +145,7 @@
     <column name="name" type="VARCHAR" size="50" />
     <column name="version" type="INTEGER" version="true" javaType="object"/>
   </table>
+
   <table name="optimistic_locking_simple" optimisticLockingMode="simpleSelect"
       interface="org.apache.torque.OptimisticLockingInterface"
       peerInterface="org.apache.torque.OptimisticLockingPeerInterface&lt;org.apache.torque.test.dbobject.OptimisticLockingSimple&gt;"
@@ -155,4 +156,25 @@
     <column name="name" type="VARCHAR" size="50" />
     <column name="version" type="INTEGER" version="true" javaType="object"/>
   </table>
+
+  <table name="ENUM_TABLE"
+      description="this table is used for testing enum values in columns">
+    <column name="id" primaryKey="true" type="INTEGER" />
+    <column name="varchar_column" type="VARCHAR" size="50">
+      <enum-value value="x"/>
+      <enum-value value="y"/>
+      <enum-value value="z" javaName="ZZZ"/>
+    </column>
+    <column name="int_column" type="INTEGER" default="1" enumName="MyIntColumnEnum" javaType="object">
+      <enum-value value="1"/>
+      <enum-value value="2" javaName="TWO"/>
+      <enum-value value="3"/>
+    </column>
+    <column name="predefined_enum_column" type="VARCHAR"  size="50" enumName="org.apache.torque.TestEnum" />
+    <column name="int_primitive_column" type="INTEGER" default="1" javaType="primitive">
+      <enum-value value="1"/>
+      <enum-value value="2"/>
+      <enum-value value="3"/>
+    </column>
+  </table>
 </database>

Added: db/torque/torque4/trunk/torque-test/src/test/java/org/apache/torque/datatypes/EnumTest.java
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-test/src/test/java/org/apache/torque/datatypes/EnumTest.java?rev=1633481&view=auto
==============================================================================
--- db/torque/torque4/trunk/torque-test/src/test/java/org/apache/torque/datatypes/EnumTest.java (added)
+++ db/torque/torque4/trunk/torque-test/src/test/java/org/apache/torque/datatypes/EnumTest.java Tue Oct 21 22:56:35 2014
@@ -0,0 +1,160 @@
+package org.apache.torque.datatypes;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.torque.BaseDatabaseTestCase;
+import org.apache.torque.TestEnum;
+import org.apache.torque.TorqueException;
+import org.apache.torque.criteria.Criteria;
+import org.apache.torque.test.dbobject.EnumTable;
+import org.apache.torque.test.dbobject.IntPrimitiveColumnEnum;
+import org.apache.torque.test.dbobject.MyIntColumnEnum;
+import org.apache.torque.test.dbobject.VarcharColumnEnum;
+import org.apache.torque.test.peer.EnumTablePeer;
+
+/**
+ * Tests the enum data types.
+ * @version $Id: BooleanIntCharTest.java 1439295 2013-01-28 08:21:41Z tfischer $
+ */
+public class EnumTest extends BaseDatabaseTestCase
+{
+    @Override
+    public void setUp() throws Exception
+    {
+        super.setUp();
+        fillTables();
+    }
+
+    /**
+     * Checks whether we can read enum values.
+     *
+     * @throws Exception if the test fails
+     */
+    public void testRead() throws Exception
+    {
+        // prepare
+        fillTables();
+
+        // execute
+        EnumTable enumTable = EnumTablePeer.retrieveByPK(1);
+        // verify
+        assertEquals(1, enumTable.getId());
+        assertEquals(MyIntColumnEnum._1, enumTable.getIntColumn());
+        assertEquals(IntPrimitiveColumnEnum._1, enumTable.getIntPrimitiveColumn());
+        assertEquals(TestEnum.A, enumTable.getPredefinedEnumColumn());
+        assertEquals(VarcharColumnEnum.X, enumTable.getVarcharColumn());
+
+        // execute
+        enumTable = EnumTablePeer.retrieveByPK(2);
+        // verify
+        assertEquals(2, enumTable.getId());
+        assertEquals(MyIntColumnEnum.TWO, enumTable.getIntColumn());
+        assertEquals(IntPrimitiveColumnEnum._2, enumTable.getIntPrimitiveColumn());
+        assertEquals(TestEnum.B, enumTable.getPredefinedEnumColumn());
+        assertEquals(VarcharColumnEnum.Y, enumTable.getVarcharColumn());
+    }
+
+    /**
+     * Checks whether we can update enum values.
+     *
+     * @throws Exception if the test fails
+     */
+    public void testUpdate() throws Exception
+    {
+        // prepare
+        EnumTable enumTable = EnumTablePeer.retrieveByPK(1);
+        assertEquals(1, enumTable.getId());
+        assertEquals(MyIntColumnEnum._1, enumTable.getIntColumn());
+        assertEquals(IntPrimitiveColumnEnum._1, enumTable.getIntPrimitiveColumn());
+        assertEquals(TestEnum.A, enumTable.getPredefinedEnumColumn());
+        assertEquals(VarcharColumnEnum.X, enumTable.getVarcharColumn());
+
+        // execute
+        enumTable.setIntColumn(MyIntColumnEnum._3);
+        enumTable.setIntPrimitiveColumn(IntPrimitiveColumnEnum._3);
+        enumTable.setPredefinedEnumColumn(TestEnum.C);
+        enumTable.setVarcharColumn(VarcharColumnEnum.ZZZ);
+        enumTable.save();
+
+        // verify
+        enumTable = EnumTablePeer.retrieveByPK(1);
+        assertEquals(1, enumTable.getId());
+        assertEquals(MyIntColumnEnum._3, enumTable.getIntColumn());
+        assertEquals(IntPrimitiveColumnEnum._3, enumTable.getIntPrimitiveColumn());
+        assertEquals(TestEnum.C, enumTable.getPredefinedEnumColumn());
+        assertEquals(VarcharColumnEnum.ZZZ, enumTable.getVarcharColumn());
+    }
+
+    /**
+     * Checks whether we can select enum values.
+     *
+     * @throws Exception if the test fails
+     */
+    public void testSelect() throws Exception
+    {
+        // prepare
+        Criteria criteria = new Criteria()
+                .where(EnumTablePeer.INT_COLUMN, MyIntColumnEnum._1.getValue())
+                .and(EnumTablePeer.INT_PRIMITIVE_COLUMN, IntPrimitiveColumnEnum._1.getValue())
+                .and(EnumTablePeer.PREDEFINED_ENUM_COLUMN, TestEnum.A.getValue())
+                .and(EnumTablePeer.VARCHAR_COLUMN, VarcharColumnEnum.X.getValue());
+        // execute
+        EnumTable enumTable = EnumTablePeer.doSelectSingleRecord(criteria);
+        // verify
+        assertEquals(1, enumTable.getId());
+
+        // prepare
+        criteria = new Criteria()
+                .where(EnumTablePeer.INT_COLUMN, MyIntColumnEnum._1)
+                .and(EnumTablePeer.INT_PRIMITIVE_COLUMN, IntPrimitiveColumnEnum._1)
+                .and(EnumTablePeer.PREDEFINED_ENUM_COLUMN, TestEnum.A)
+                .and(EnumTablePeer.VARCHAR_COLUMN, VarcharColumnEnum.X);
+        // execute
+        enumTable = EnumTablePeer.doSelectSingleRecord(criteria);
+        // verify
+        assertEquals(1, enumTable.getId());
+    }
+
+    /**
+     * Delete all previous data from the tested tables
+     * and re-inserts test data.
+     */
+    private void fillTables() throws TorqueException
+    {
+        Criteria criteria = new Criteria();
+        EnumTablePeer.doDelete(criteria);
+
+        EnumTable enumTable = new EnumTable();
+        enumTable.setId(1);
+        enumTable.setIntColumn(MyIntColumnEnum._1);
+        enumTable.setIntPrimitiveColumn(IntPrimitiveColumnEnum._1);
+        enumTable.setPredefinedEnumColumn(TestEnum.A);
+        enumTable.setVarcharColumn(VarcharColumnEnum.X);
+        enumTable.save();
+
+        enumTable = new EnumTable();
+        enumTable.setId(2);
+        enumTable.setIntColumn(MyIntColumnEnum.TWO);
+        enumTable.setIntPrimitiveColumn(IntPrimitiveColumnEnum._2);
+        enumTable.setPredefinedEnumColumn(TestEnum.B);
+        enumTable.setVarcharColumn(VarcharColumnEnum.Y);
+        enumTable.save();
+    }
+}



---------------------------------------------------------------------
To unsubscribe, e-mail: torque-dev-unsubscribe@db.apache.org
For additional commands, e-mail: torque-dev-help@db.apache.org