Modified: db/torque/torque4/trunk/torque-runtime/src/test/java/org/apache/torque/om/mapper/ObjectListMapperTest.java URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-runtime/src/test/java/org/apache/torque/om/mapper/ObjectListMapperTest.java?rev=1448414&r1=1448413&r2=1448414&view=diff ============================================================================== --- db/torque/torque4/trunk/torque-runtime/src/test/java/org/apache/torque/om/mapper/ObjectListMapperTest.java (original) +++ db/torque/torque4/trunk/torque-runtime/src/test/java/org/apache/torque/om/mapper/ObjectListMapperTest.java Wed Feb 20 21:06:35 2013 @@ -1,464 +1,464 @@ -package org.apache.torque.om.mapper; - -/* - * 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 static org.mockito.Mockito.verify; -import static org.mockito.Mockito.verifyNoMoreInteractions; -import static org.mockito.Mockito.when; - -import java.io.InputStream; -import java.io.Reader; -import java.math.BigDecimal; -import java.net.URL; -import java.sql.Array; -import java.sql.Blob; -import java.sql.Clob; -import java.sql.Date; -import java.sql.Ref; -import java.sql.ResultSet; -import java.sql.ResultSetMetaData; -import java.sql.SQLException; -import java.sql.Time; -import java.sql.Timestamp; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -import org.apache.torque.BaseTestCase; -import org.apache.torque.TorqueException; -import org.apache.torque.criteria.Criteria; -import org.mockito.Mock; -import org.mockito.MockitoAnnotations; - -public class ObjectListMapperTest extends BaseTestCase -{ - /** Mock result set. */ - @Mock - private ResultSet resultSet; - - /** Mock result set metadata. */ - @Mock - private ResultSetMetaData resultSetMetaData; - - /** Mock array. */ - @Mock - private Array array; - - /** Mock blob. */ - @Mock - private Blob blob; - - /** Mock clob. */ - @Mock - private Clob clob; - - /** Mock input stream. */ - @Mock - private InputStream inputStream; - - /** Mock reader. */ - @Mock - private Reader reader; - - /** Mock ref. */ - @Mock - private Ref ref; - - /** Object instance. */ - private Object object = new Object(); - - @Override - public void setUp() throws Exception - { - super.setUp(); - MockitoAnnotations.initMocks(this); - when(resultSet.getObject(0)).thenThrow( - new SQLException("index is 1 based")); - when(resultSet.getBigDecimal(1)).thenReturn(null); - when(resultSet.getObject(1)).thenReturn(null); - when(resultSet.getArray(2)).thenReturn(array); - when(resultSet.getObject(2)).thenReturn(array); - when(resultSet.getBigDecimal(3)).thenReturn(new BigDecimal("123.456")); - when(resultSet.getObject(3)).thenReturn(new BigDecimal("123.456")); - when(resultSet.getBinaryStream(4)).thenReturn(inputStream); - when(resultSet.getObject(4)).thenReturn(inputStream); - when(resultSet.getBlob(5)).thenReturn(blob); - when(resultSet.getBoolean(6)).thenReturn(true); - when(resultSet.getByte(7)).thenReturn(Byte.valueOf("7")); - when(resultSet.getBytes(8)).thenReturn(new byte[] {8}); - when(resultSet.getCharacterStream(9)).thenReturn(reader); - when(resultSet.getClob(10)).thenReturn(clob); - when(resultSet.getDate(11)).thenReturn(new Date(11L)); - when(resultSet.getDouble(12)).thenReturn(12d); - when(resultSet.getFloat(13)).thenReturn(13f); - when(resultSet.getInt(14)).thenReturn(14); - when(resultSet.getLong(15)).thenReturn(15L); - when(resultSet.getObject(16)).thenReturn(object); - when(resultSet.getRef(17)).thenReturn(ref); - when(resultSet.getShort(18)).thenReturn(Short.valueOf("18")); - when(resultSet.getString(19)).thenReturn("abc"); - when(resultSet.getTime(20)).thenReturn(new Time(20L)); - when(resultSet.getTimestamp(21)).thenReturn(new Timestamp(21L)); - when(resultSet.getURL(22)).thenReturn(new URL("http://22")); - when(resultSet.getMetaData()).thenReturn(resultSetMetaData); - when(resultSetMetaData.getColumnCount()).thenReturn(3); - } - - /** - * Tests the processRow method for a mapper where the length is determined - * from the Metadata. - * - * @throws Exception if the test fails - */ - public void testProcessRowLengthDeterminedFromMetadata() throws Exception - { - // prepare - ObjectListMapper mapper = new ObjectListMapper(); - - // execute - List<Object> result = mapper.processRow(resultSet, 0, new Criteria()); - - // verify - assertEquals(3, result.size()); - assertEquals(null, result.get(0)); - assertEquals(array, result.get(1)); - assertEquals(new BigDecimal("123.456"), result.get(2)); - verify(resultSet).getMetaData(); - verify(resultSetMetaData).getColumnCount(); - verify(resultSet).getObject(1); - verify(resultSet).getObject(2); - verify(resultSet).getObject(3); - verifyNoMoreInteractions(resultSet, resultSetMetaData); - } - - /** - * Tests the processRow method for a mapper with offset - * where the length is determined from the Metadata. - * - * @throws Exception if the test fails - */ - public void testProcessRowLengthDeterminedFromMetadataWithOffset() - throws Exception - { - // prepare - ObjectListMapper mapper = new ObjectListMapper(); - - // execute - List<Object> result = mapper.processRow(resultSet, 1, new Criteria()); - - // verify - assertEquals(2, result.size()); - assertEquals(array, result.get(0)); - assertEquals(new BigDecimal("123.456"), result.get(1)); - verify(resultSet).getMetaData(); - verify(resultSetMetaData).getColumnCount(); - verify(resultSet).getObject(2); - verify(resultSet).getObject(3); - verifyNoMoreInteractions(resultSet, resultSetMetaData); - } - - /** - * Tests the processRow method for a mapper with a fixed column count. - * - * @throws Exception if the test fails - */ - public void testProcessRowLenghtAsArgument() throws Exception - { - // prepare - ObjectListMapper mapper = new ObjectListMapper(2); - - // execute - List<Object> result = mapper.processRow(resultSet, 1, new Criteria()); - - // verify - assertEquals(2, result.size()); - assertEquals(array, result.get(0)); - assertEquals(new BigDecimal("123.456"), result.get(1)); - verify(resultSet).getObject(2); - verify(resultSet).getObject(3); - verifyNoMoreInteractions(resultSet, resultSetMetaData); - } - - /** - * Tests the processRow method for a mapper with a fixed column count. - * - * @throws Exception if the test fails - */ - public void testProcessRowClassListAsArgument() throws Exception - { - // prepare - List<Class<?>> classList = new ArrayList<Class<?>>(); - classList.add(BigDecimal.class); - classList.add(Array.class); - classList.add(BigDecimal.class); - classList.add(InputStream.class); - classList.add(Blob.class); - classList.add(Boolean.class); - classList.add(Byte.class); - classList.add(byte[].class); - classList.add(Reader.class); - classList.add(Clob.class); - classList.add(Date.class); - classList.add(Double.class); - classList.add(Float.class); - classList.add(Integer.class); - classList.add(Long.class); - classList.add(Object.class); - classList.add(Ref.class); - classList.add(Short.class); - classList.add(String.class); - classList.add(Time.class); - classList.add(Timestamp.class); - classList.add(URL.class); - ObjectListMapper mapper = new ObjectListMapper(classList); - - // execute - List<Object> result = mapper.processRow(resultSet, 0, null); - - // verify - assertEquals(22, result.size()); - assertEquals(null, result.get(0)); - assertEquals(array, result.get(1)); - assertEquals(new BigDecimal("123.456"), result.get(2)); - assertEquals(inputStream, result.get(3)); - assertEquals(blob, result.get(4)); - assertEquals(true, result.get(5)); - assertEquals(Byte.valueOf("7"), result.get(6)); - assertTrue(Arrays.equals(new byte[] {8}, (byte[]) result.get(7))); - assertEquals(reader, result.get(8)); - assertEquals(clob, result.get(9)); - assertEquals(new Date(11L), result.get(10)); - assertEquals(12d, result.get(11)); - assertEquals(13f, result.get(12)); - assertEquals(14, result.get(13)); - assertEquals(15L, result.get(14)); - assertEquals(object, result.get(15)); - assertEquals(ref, result.get(16)); - assertEquals(Short.valueOf("18"), result.get(17)); - assertEquals("abc", result.get(18)); - assertEquals(new Time(20L), result.get(19)); - assertEquals(new Timestamp(21L), result.get(20)); - assertEquals(new URL("http://22"), result.get(21)); - - - verify(resultSet).getBigDecimal(1); - verify(resultSet).getArray(2); - verify(resultSet).getBigDecimal(3); - verify(resultSet).getBinaryStream(4); - verify(resultSet).getBlob(5); - verify(resultSet).getBoolean(6); - verify(resultSet).getByte(7); - verify(resultSet).getBytes(8); - verify(resultSet).getCharacterStream(9); - verify(resultSet).getClob(10); - verify(resultSet).getDate(11); - verify(resultSet).getDouble(12); - verify(resultSet).getFloat(13); - verify(resultSet).getInt(14); - verify(resultSet).getLong(15); - verify(resultSet).getObject(16); - verify(resultSet).getRef(17); - verify(resultSet).getShort(18); - verify(resultSet).getString(19); - verify(resultSet).getTime(20); - verify(resultSet).getTimestamp(21); - verify(resultSet).getURL(22); - verifyNoMoreInteractions(resultSet, resultSetMetaData); - } - - /** - * Tests the processRow method if the resultSet throws a SqlException. - * - * @throws Exception if the test fails - */ - public void testProcessRowSqlException() throws Exception - { - // prepare - ObjectListMapper mapper = new ObjectListMapper(1); - - // execute - try - { - mapper.processRow(resultSet, -1, new Criteria()); - // verify 1 - fail("Exception expected"); - } - catch (TorqueException e) - { - // verify 2 - assertEquals("java.sql.SQLException: index is 1 based", e.getMessage()); - assertEquals(SQLException.class, e.getCause().getClass()); - assertEquals("index is 1 based", e.getCause().getMessage()); - verify(resultSet).getObject(0); - verifyNoMoreInteractions(resultSet); - } - } - - /** - * Tests the processRow method if the resultSet throws a SqlException. - * - * @throws Exception if the test fails - */ - public void testUnknownClass() throws Exception - { - // prepare - List<Class<?>> classList = new ArrayList<Class<?>>(); - classList.add(RecordMapper.class); - ObjectListMapper mapper = new ObjectListMapper(classList); - - // execute - try - { - mapper.processRow(resultSet, -1, new Criteria()); - // verify 1 - fail("Exception expected"); - } - catch (IllegalArgumentException e) - { - // verify 2 - assertEquals("Unknown convertClass " - + "org.apache.torque.om.mapper.RecordMapper at position 0", - e.getMessage()); - verifyNoMoreInteractions(resultSet); - } - } - - public void testByteNull() throws Exception - { - // prepare - byte zero = 0; - when(resultSet.getByte(1)).thenReturn(zero); - when(resultSet.wasNull()).thenReturn(true); - List<Class<?>> classList = new ArrayList<Class<?>>(); - classList.add(Byte.class); - ObjectListMapper mapper = new ObjectListMapper(classList); - - // execute - List<Object> result = mapper.processRow(resultSet, 0, new Criteria()); - - // verify - assertEquals(1, result.size()); - assertEquals(null, result.get(0)); - verify(resultSet).getByte(1); - verify(resultSet).wasNull(); - verifyNoMoreInteractions(resultSet); - } - - public void testShortNull() throws Exception - { - // prepare - short zero = 0; - when(resultSet.getShort(1)).thenReturn(zero); - when(resultSet.wasNull()).thenReturn(true); - List<Class<?>> classList = new ArrayList<Class<?>>(); - classList.add(Short.class); - ObjectListMapper mapper = new ObjectListMapper(classList); - - // execute - List<Object> result = mapper.processRow(resultSet, 0, new Criteria()); - - // verify - assertEquals(1, result.size()); - assertEquals(null, result.get(0)); - verify(resultSet).getShort(1); - verify(resultSet).wasNull(); - verifyNoMoreInteractions(resultSet); - } - - public void testIntegerNull() throws Exception - { - // prepare - when(resultSet.getInt(1)).thenReturn(0); - when(resultSet.wasNull()).thenReturn(true); - List<Class<?>> classList = new ArrayList<Class<?>>(); - classList.add(Integer.class); - ObjectListMapper mapper = new ObjectListMapper(classList); - - // execute - List<Object> result = mapper.processRow(resultSet, 0, new Criteria()); - - // verify - assertEquals(1, result.size()); - assertEquals(null, result.get(0)); - verify(resultSet).getInt(1); - verify(resultSet).wasNull(); - verifyNoMoreInteractions(resultSet); - } - - public void testLongNull() throws Exception - { - // prepare - when(resultSet.getLong(1)).thenReturn(0L); - when(resultSet.wasNull()).thenReturn(true); - List<Class<?>> classList = new ArrayList<Class<?>>(); - classList.add(Long.class); - ObjectListMapper mapper = new ObjectListMapper(classList); - - // execute - List<Object> result = mapper.processRow(resultSet, 0, new Criteria()); - - // verify - assertEquals(1, result.size()); - assertEquals(null, result.get(0)); - verify(resultSet).getLong(1); - verify(resultSet).wasNull(); - verifyNoMoreInteractions(resultSet); - } - - public void testDoubleNull() throws Exception - { - // prepare - when(resultSet.getDouble(1)).thenReturn(0d); - when(resultSet.wasNull()).thenReturn(true); - List<Class<?>> classList = new ArrayList<Class<?>>(); - classList.add(Double.class); - ObjectListMapper mapper = new ObjectListMapper(classList); - - // execute - List<Object> result = mapper.processRow(resultSet, 0, new Criteria()); - - // verify - assertEquals(1, result.size()); - assertEquals(null, result.get(0)); - verify(resultSet).getDouble(1); - verify(resultSet).wasNull(); - verifyNoMoreInteractions(resultSet); - } - - public void testFloatNull() throws Exception - { - // prepare - when(resultSet.getFloat(1)).thenReturn(0f); - when(resultSet.wasNull()).thenReturn(true); - List<Class<?>> classList = new ArrayList<Class<?>>(); - classList.add(Float.class); - ObjectListMapper mapper = new ObjectListMapper(classList); - - // execute - List<Object> result = mapper.processRow(resultSet, 0, new Criteria()); - - // verify - assertEquals(1, result.size()); - assertEquals(null, result.get(0)); - verify(resultSet).getFloat(1); - verify(resultSet).wasNull(); - verifyNoMoreInteractions(resultSet); - } -} +package org.apache.torque.om.mapper; + +/* + * 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 static org.mockito.Mockito.verify; +import static org.mockito.Mockito.verifyNoMoreInteractions; +import static org.mockito.Mockito.when; + +import java.io.InputStream; +import java.io.Reader; +import java.math.BigDecimal; +import java.net.URL; +import java.sql.Array; +import java.sql.Blob; +import java.sql.Clob; +import java.sql.Date; +import java.sql.Ref; +import java.sql.ResultSet; +import java.sql.ResultSetMetaData; +import java.sql.SQLException; +import java.sql.Time; +import java.sql.Timestamp; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import org.apache.torque.BaseTestCase; +import org.apache.torque.TorqueException; +import org.apache.torque.criteria.Criteria; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; + +public class ObjectListMapperTest extends BaseTestCase +{ + /** Mock result set. */ + @Mock + private ResultSet resultSet; + + /** Mock result set metadata. */ + @Mock + private ResultSetMetaData resultSetMetaData; + + /** Mock array. */ + @Mock + private Array array; + + /** Mock blob. */ + @Mock + private Blob blob; + + /** Mock clob. */ + @Mock + private Clob clob; + + /** Mock input stream. */ + @Mock + private InputStream inputStream; + + /** Mock reader. */ + @Mock + private Reader reader; + + /** Mock ref. */ + @Mock + private Ref ref; + + /** Object instance. */ + private Object object = new Object(); + + @Override + public void setUp() throws Exception + { + super.setUp(); + MockitoAnnotations.initMocks(this); + when(resultSet.getObject(0)).thenThrow( + new SQLException("index is 1 based")); + when(resultSet.getBigDecimal(1)).thenReturn(null); + when(resultSet.getObject(1)).thenReturn(null); + when(resultSet.getArray(2)).thenReturn(array); + when(resultSet.getObject(2)).thenReturn(array); + when(resultSet.getBigDecimal(3)).thenReturn(new BigDecimal("123.456")); + when(resultSet.getObject(3)).thenReturn(new BigDecimal("123.456")); + when(resultSet.getBinaryStream(4)).thenReturn(inputStream); + when(resultSet.getObject(4)).thenReturn(inputStream); + when(resultSet.getBlob(5)).thenReturn(blob); + when(resultSet.getBoolean(6)).thenReturn(true); + when(resultSet.getByte(7)).thenReturn(Byte.valueOf("7")); + when(resultSet.getBytes(8)).thenReturn(new byte[] {8}); + when(resultSet.getCharacterStream(9)).thenReturn(reader); + when(resultSet.getClob(10)).thenReturn(clob); + when(resultSet.getDate(11)).thenReturn(new Date(11L)); + when(resultSet.getDouble(12)).thenReturn(12d); + when(resultSet.getFloat(13)).thenReturn(13f); + when(resultSet.getInt(14)).thenReturn(14); + when(resultSet.getLong(15)).thenReturn(15L); + when(resultSet.getObject(16)).thenReturn(object); + when(resultSet.getRef(17)).thenReturn(ref); + when(resultSet.getShort(18)).thenReturn(Short.valueOf("18")); + when(resultSet.getString(19)).thenReturn("abc"); + when(resultSet.getTime(20)).thenReturn(new Time(20L)); + when(resultSet.getTimestamp(21)).thenReturn(new Timestamp(21L)); + when(resultSet.getURL(22)).thenReturn(new URL("http://22")); + when(resultSet.getMetaData()).thenReturn(resultSetMetaData); + when(resultSetMetaData.getColumnCount()).thenReturn(3); + } + + /** + * Tests the processRow method for a mapper where the length is determined + * from the Metadata. + * + * @throws Exception if the test fails + */ + public void testProcessRowLengthDeterminedFromMetadata() throws Exception + { + // prepare + ObjectListMapper mapper = new ObjectListMapper(); + + // execute + List<Object> result = mapper.processRow(resultSet, 0, new Criteria()); + + // verify + assertEquals(3, result.size()); + assertEquals(null, result.get(0)); + assertEquals(array, result.get(1)); + assertEquals(new BigDecimal("123.456"), result.get(2)); + verify(resultSet).getMetaData(); + verify(resultSetMetaData).getColumnCount(); + verify(resultSet).getObject(1); + verify(resultSet).getObject(2); + verify(resultSet).getObject(3); + verifyNoMoreInteractions(resultSet, resultSetMetaData); + } + + /** + * Tests the processRow method for a mapper with offset + * where the length is determined from the Metadata. + * + * @throws Exception if the test fails + */ + public void testProcessRowLengthDeterminedFromMetadataWithOffset() + throws Exception + { + // prepare + ObjectListMapper mapper = new ObjectListMapper(); + + // execute + List<Object> result = mapper.processRow(resultSet, 1, new Criteria()); + + // verify + assertEquals(2, result.size()); + assertEquals(array, result.get(0)); + assertEquals(new BigDecimal("123.456"), result.get(1)); + verify(resultSet).getMetaData(); + verify(resultSetMetaData).getColumnCount(); + verify(resultSet).getObject(2); + verify(resultSet).getObject(3); + verifyNoMoreInteractions(resultSet, resultSetMetaData); + } + + /** + * Tests the processRow method for a mapper with a fixed column count. + * + * @throws Exception if the test fails + */ + public void testProcessRowLenghtAsArgument() throws Exception + { + // prepare + ObjectListMapper mapper = new ObjectListMapper(2); + + // execute + List<Object> result = mapper.processRow(resultSet, 1, new Criteria()); + + // verify + assertEquals(2, result.size()); + assertEquals(array, result.get(0)); + assertEquals(new BigDecimal("123.456"), result.get(1)); + verify(resultSet).getObject(2); + verify(resultSet).getObject(3); + verifyNoMoreInteractions(resultSet, resultSetMetaData); + } + + /** + * Tests the processRow method for a mapper with a fixed column count. + * + * @throws Exception if the test fails + */ + public void testProcessRowClassListAsArgument() throws Exception + { + // prepare + List<Class<?>> classList = new ArrayList<Class<?>>(); + classList.add(BigDecimal.class); + classList.add(Array.class); + classList.add(BigDecimal.class); + classList.add(InputStream.class); + classList.add(Blob.class); + classList.add(Boolean.class); + classList.add(Byte.class); + classList.add(byte[].class); + classList.add(Reader.class); + classList.add(Clob.class); + classList.add(Date.class); + classList.add(Double.class); + classList.add(Float.class); + classList.add(Integer.class); + classList.add(Long.class); + classList.add(Object.class); + classList.add(Ref.class); + classList.add(Short.class); + classList.add(String.class); + classList.add(Time.class); + classList.add(Timestamp.class); + classList.add(URL.class); + ObjectListMapper mapper = new ObjectListMapper(classList); + + // execute + List<Object> result = mapper.processRow(resultSet, 0, null); + + // verify + assertEquals(22, result.size()); + assertEquals(null, result.get(0)); + assertEquals(array, result.get(1)); + assertEquals(new BigDecimal("123.456"), result.get(2)); + assertEquals(inputStream, result.get(3)); + assertEquals(blob, result.get(4)); + assertEquals(true, result.get(5)); + assertEquals(Byte.valueOf("7"), result.get(6)); + assertTrue(Arrays.equals(new byte[] {8}, (byte[]) result.get(7))); + assertEquals(reader, result.get(8)); + assertEquals(clob, result.get(9)); + assertEquals(new Date(11L), result.get(10)); + assertEquals(12d, result.get(11)); + assertEquals(13f, result.get(12)); + assertEquals(14, result.get(13)); + assertEquals(15L, result.get(14)); + assertEquals(object, result.get(15)); + assertEquals(ref, result.get(16)); + assertEquals(Short.valueOf("18"), result.get(17)); + assertEquals("abc", result.get(18)); + assertEquals(new Time(20L), result.get(19)); + assertEquals(new Timestamp(21L), result.get(20)); + assertEquals(new URL("http://22"), result.get(21)); + + + verify(resultSet).getBigDecimal(1); + verify(resultSet).getArray(2); + verify(resultSet).getBigDecimal(3); + verify(resultSet).getBinaryStream(4); + verify(resultSet).getBlob(5); + verify(resultSet).getBoolean(6); + verify(resultSet).getByte(7); + verify(resultSet).getBytes(8); + verify(resultSet).getCharacterStream(9); + verify(resultSet).getClob(10); + verify(resultSet).getDate(11); + verify(resultSet).getDouble(12); + verify(resultSet).getFloat(13); + verify(resultSet).getInt(14); + verify(resultSet).getLong(15); + verify(resultSet).getObject(16); + verify(resultSet).getRef(17); + verify(resultSet).getShort(18); + verify(resultSet).getString(19); + verify(resultSet).getTime(20); + verify(resultSet).getTimestamp(21); + verify(resultSet).getURL(22); + verifyNoMoreInteractions(resultSet, resultSetMetaData); + } + + /** + * Tests the processRow method if the resultSet throws a SqlException. + * + * @throws Exception if the test fails + */ + public void testProcessRowSqlException() throws Exception + { + // prepare + ObjectListMapper mapper = new ObjectListMapper(1); + + // execute + try + { + mapper.processRow(resultSet, -1, new Criteria()); + // verify 1 + fail("Exception expected"); + } + catch (TorqueException e) + { + // verify 2 + assertEquals("java.sql.SQLException: index is 1 based", e.getMessage()); + assertEquals(SQLException.class, e.getCause().getClass()); + assertEquals("index is 1 based", e.getCause().getMessage()); + verify(resultSet).getObject(0); + verifyNoMoreInteractions(resultSet); + } + } + + /** + * Tests the processRow method if the resultSet throws a SqlException. + * + * @throws Exception if the test fails + */ + public void testUnknownClass() throws Exception + { + // prepare + List<Class<?>> classList = new ArrayList<Class<?>>(); + classList.add(RecordMapper.class); + ObjectListMapper mapper = new ObjectListMapper(classList); + + // execute + try + { + mapper.processRow(resultSet, -1, new Criteria()); + // verify 1 + fail("Exception expected"); + } + catch (IllegalArgumentException e) + { + // verify 2 + assertEquals("Unknown convertClass " + + "org.apache.torque.om.mapper.RecordMapper at position 0", + e.getMessage()); + verifyNoMoreInteractions(resultSet); + } + } + + public void testByteNull() throws Exception + { + // prepare + byte zero = 0; + when(resultSet.getByte(1)).thenReturn(zero); + when(resultSet.wasNull()).thenReturn(true); + List<Class<?>> classList = new ArrayList<Class<?>>(); + classList.add(Byte.class); + ObjectListMapper mapper = new ObjectListMapper(classList); + + // execute + List<Object> result = mapper.processRow(resultSet, 0, new Criteria()); + + // verify + assertEquals(1, result.size()); + assertEquals(null, result.get(0)); + verify(resultSet).getByte(1); + verify(resultSet).wasNull(); + verifyNoMoreInteractions(resultSet); + } + + public void testShortNull() throws Exception + { + // prepare + short zero = 0; + when(resultSet.getShort(1)).thenReturn(zero); + when(resultSet.wasNull()).thenReturn(true); + List<Class<?>> classList = new ArrayList<Class<?>>(); + classList.add(Short.class); + ObjectListMapper mapper = new ObjectListMapper(classList); + + // execute + List<Object> result = mapper.processRow(resultSet, 0, new Criteria()); + + // verify + assertEquals(1, result.size()); + assertEquals(null, result.get(0)); + verify(resultSet).getShort(1); + verify(resultSet).wasNull(); + verifyNoMoreInteractions(resultSet); + } + + public void testIntegerNull() throws Exception + { + // prepare + when(resultSet.getInt(1)).thenReturn(0); + when(resultSet.wasNull()).thenReturn(true); + List<Class<?>> classList = new ArrayList<Class<?>>(); + classList.add(Integer.class); + ObjectListMapper mapper = new ObjectListMapper(classList); + + // execute + List<Object> result = mapper.processRow(resultSet, 0, new Criteria()); + + // verify + assertEquals(1, result.size()); + assertEquals(null, result.get(0)); + verify(resultSet).getInt(1); + verify(resultSet).wasNull(); + verifyNoMoreInteractions(resultSet); + } + + public void testLongNull() throws Exception + { + // prepare + when(resultSet.getLong(1)).thenReturn(0L); + when(resultSet.wasNull()).thenReturn(true); + List<Class<?>> classList = new ArrayList<Class<?>>(); + classList.add(Long.class); + ObjectListMapper mapper = new ObjectListMapper(classList); + + // execute + List<Object> result = mapper.processRow(resultSet, 0, new Criteria()); + + // verify + assertEquals(1, result.size()); + assertEquals(null, result.get(0)); + verify(resultSet).getLong(1); + verify(resultSet).wasNull(); + verifyNoMoreInteractions(resultSet); + } + + public void testDoubleNull() throws Exception + { + // prepare + when(resultSet.getDouble(1)).thenReturn(0d); + when(resultSet.wasNull()).thenReturn(true); + List<Class<?>> classList = new ArrayList<Class<?>>(); + classList.add(Double.class); + ObjectListMapper mapper = new ObjectListMapper(classList); + + // execute + List<Object> result = mapper.processRow(resultSet, 0, new Criteria()); + + // verify + assertEquals(1, result.size()); + assertEquals(null, result.get(0)); + verify(resultSet).getDouble(1); + verify(resultSet).wasNull(); + verifyNoMoreInteractions(resultSet); + } + + public void testFloatNull() throws Exception + { + // prepare + when(resultSet.getFloat(1)).thenReturn(0f); + when(resultSet.wasNull()).thenReturn(true); + List<Class<?>> classList = new ArrayList<Class<?>>(); + classList.add(Float.class); + ObjectListMapper mapper = new ObjectListMapper(classList); + + // execute + List<Object> result = mapper.processRow(resultSet, 0, new Criteria()); + + // verify + assertEquals(1, result.size()); + assertEquals(null, result.get(0)); + verify(resultSet).getFloat(1); + verify(resultSet).wasNull(); + verifyNoMoreInteractions(resultSet); + } +}
Propchange: db/torque/torque4/trunk/torque-runtime/src/test/java/org/apache/torque/om/mapper/ObjectListMapperTest.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: db/torque/torque4/trunk/torque-runtime/src/test/java/org/apache/torque/om/mapper/ObjectListMapperTest.java ------------------------------------------------------------------------------ svn:keywords = Author Date Id Revision Modified: db/torque/torque4/trunk/torque-runtime/src/test/java/org/apache/torque/om/mapper/StringMapperTest.java URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-runtime/src/test/java/org/apache/torque/om/mapper/StringMapperTest.java?rev=1448414&r1=1448413&r2=1448414&view=diff ============================================================================== --- db/torque/torque4/trunk/torque-runtime/src/test/java/org/apache/torque/om/mapper/StringMapperTest.java (original) +++ db/torque/torque4/trunk/torque-runtime/src/test/java/org/apache/torque/om/mapper/StringMapperTest.java Wed Feb 20 21:06:35 2013 @@ -1,126 +1,126 @@ -package org.apache.torque.om.mapper; - -/* - * 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 static org.mockito.Mockito.verify; -import static org.mockito.Mockito.verifyNoMoreInteractions; -import static org.mockito.Mockito.when; - -import java.sql.ResultSet; -import java.sql.SQLException; - -import org.apache.torque.BaseTestCase; -import org.apache.torque.TorqueException; -import org.apache.torque.criteria.Criteria; -import org.mockito.Mock; -import org.mockito.MockitoAnnotations; - -public class StringMapperTest extends BaseTestCase -{ - /** Mock result set. */ - @Mock - private ResultSet resultSet; - - @Override - public void setUp() throws Exception - { - super.setUp(); - MockitoAnnotations.initMocks(this); - when(resultSet.getString(1)).thenReturn(null); - when(resultSet.getString(2)).thenReturn(""); - when(resultSet.getString(3)).thenReturn("abcDEF"); - when(resultSet.getString(0)).thenThrow( - new SQLException("index must be >= 1")); - } - - /** - * Tests the processRow method for a mapper without internal Offset. - * - * @throws Exception if the test fails - */ - public void testProcessRow() throws Exception - { - // prepare - StringMapper mapper = new StringMapper(); - - // execute - String result1 = mapper.processRow(resultSet, 0, new Criteria()); - String result2 = mapper.processRow(resultSet, 1, null); - - // verify - assertEquals(null, result1); - assertEquals("", result2); - verify(resultSet).getString(1); - verify(resultSet).getString(2); - verifyNoMoreInteractions(resultSet); - } - - /** - * Tests the processRow method for a mapper with internal Offset. - * - * @throws Exception if the test fails - */ - public void testProcessRowInternalOffset() throws Exception - { - // prepare - StringMapper mapper = new StringMapper(1); - - // execute - String result1 = mapper.processRow(resultSet, 0, null); - String result2 = mapper.processRow(resultSet, 1, new Criteria()); - - // verify - assertEquals("", result1); - assertEquals("abcDEF", result2); - verify(resultSet).getString(2); - verify(resultSet).getString(3); - verifyNoMoreInteractions(resultSet); - } - - /** - * Tests the processRow method if the resultSet throws a SqlException. - * - * @throws Exception if the test fails - */ - public void testProcessRowSqlException() throws Exception - { - // prepare - StringMapper mapper = new StringMapper(); - - // execute - try - { - mapper.processRow(resultSet, -1, new Criteria()); - // verify 1 - fail("Exception expected"); - } - catch (TorqueException e) - { - // verify 2 - assertEquals( - "Result could not be mapped to a String", - e.getMessage()); - assertEquals(SQLException.class, e.getCause().getClass()); - assertEquals("index must be >= 1", e.getCause().getMessage()); - verify(resultSet).getString(0); - verifyNoMoreInteractions(resultSet); - } - } -} +package org.apache.torque.om.mapper; + +/* + * 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 static org.mockito.Mockito.verify; +import static org.mockito.Mockito.verifyNoMoreInteractions; +import static org.mockito.Mockito.when; + +import java.sql.ResultSet; +import java.sql.SQLException; + +import org.apache.torque.BaseTestCase; +import org.apache.torque.TorqueException; +import org.apache.torque.criteria.Criteria; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; + +public class StringMapperTest extends BaseTestCase +{ + /** Mock result set. */ + @Mock + private ResultSet resultSet; + + @Override + public void setUp() throws Exception + { + super.setUp(); + MockitoAnnotations.initMocks(this); + when(resultSet.getString(1)).thenReturn(null); + when(resultSet.getString(2)).thenReturn(""); + when(resultSet.getString(3)).thenReturn("abcDEF"); + when(resultSet.getString(0)).thenThrow( + new SQLException("index must be >= 1")); + } + + /** + * Tests the processRow method for a mapper without internal Offset. + * + * @throws Exception if the test fails + */ + public void testProcessRow() throws Exception + { + // prepare + StringMapper mapper = new StringMapper(); + + // execute + String result1 = mapper.processRow(resultSet, 0, new Criteria()); + String result2 = mapper.processRow(resultSet, 1, null); + + // verify + assertEquals(null, result1); + assertEquals("", result2); + verify(resultSet).getString(1); + verify(resultSet).getString(2); + verifyNoMoreInteractions(resultSet); + } + + /** + * Tests the processRow method for a mapper with internal Offset. + * + * @throws Exception if the test fails + */ + public void testProcessRowInternalOffset() throws Exception + { + // prepare + StringMapper mapper = new StringMapper(1); + + // execute + String result1 = mapper.processRow(resultSet, 0, null); + String result2 = mapper.processRow(resultSet, 1, new Criteria()); + + // verify + assertEquals("", result1); + assertEquals("abcDEF", result2); + verify(resultSet).getString(2); + verify(resultSet).getString(3); + verifyNoMoreInteractions(resultSet); + } + + /** + * Tests the processRow method if the resultSet throws a SqlException. + * + * @throws Exception if the test fails + */ + public void testProcessRowSqlException() throws Exception + { + // prepare + StringMapper mapper = new StringMapper(); + + // execute + try + { + mapper.processRow(resultSet, -1, new Criteria()); + // verify 1 + fail("Exception expected"); + } + catch (TorqueException e) + { + // verify 2 + assertEquals( + "Result could not be mapped to a String", + e.getMessage()); + assertEquals(SQLException.class, e.getCause().getClass()); + assertEquals("index must be >= 1", e.getCause().getMessage()); + verify(resultSet).getString(0); + verifyNoMoreInteractions(resultSet); + } + } +} Propchange: db/torque/torque4/trunk/torque-runtime/src/test/java/org/apache/torque/om/mapper/StringMapperTest.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: db/torque/torque4/trunk/torque-runtime/src/test/java/org/apache/torque/om/mapper/StringMapperTest.java ------------------------------------------------------------------------------ svn:keywords = Author Date Id Revision --------------------------------------------------------------------- To unsubscribe, e-mail: torque-dev-unsubscr...@db.apache.org For additional commands, e-mail: torque-dev-h...@db.apache.org