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<org.apache.torque.test.dbobject.OptimisticLockingSimple>"
@@ -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