/** * Copyright 2009-2016 the original author or authors. * * Licensed 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. */ package org.apache.ibatis.type; import org.junit.Test; import org.mockito.Mock; import java.sql.Array; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; public class ArrayTypeHandlerTest extends BaseTypeHandlerTest { private static final TypeHandler<Object> TYPE_HANDLER = new ArrayTypeHandler(); @Mock Array mockArray; @Override @Test public void shouldSetParameter() throws Exception { TYPE_HANDLER.setParameter(ps, 1, mockArray, null); verify(ps).setArray(1, mockArray); } @Override @Test public void shouldGetResultFromResultSetByName() throws Exception { when(rs.getArray("column")).thenReturn(mockArray); when(rs.wasNull()).thenReturn(false); String[] stringArray = new String[]{"a", "b"}; when(mockArray.getArray()).thenReturn(stringArray); assertEquals(stringArray, TYPE_HANDLER.getResult(rs, "column")); } @Override @Test public void shouldGetResultNullFromResultSetByName() throws Exception { when(rs.getArray("column")).thenReturn(null); when(rs.wasNull()).thenReturn(true); assertNull(TYPE_HANDLER.getResult(rs, "column")); } @Override @Test public void shouldGetResultFromResultSetByPosition() throws Exception { when(rs.getArray(1)).thenReturn(mockArray); when(rs.wasNull()).thenReturn(false); String[] stringArray = new String[]{"a", "b"}; when(mockArray.getArray()).thenReturn(stringArray); assertEquals(stringArray, TYPE_HANDLER.getResult(rs, 1)); } @Override @Test public void shouldGetResultNullFromResultSetByPosition() throws Exception { when(rs.getArray(1)).thenReturn(null); when(rs.wasNull()).thenReturn(true); assertNull(TYPE_HANDLER.getResult(rs, 1)); } @Override @Test public void shouldGetResultFromCallableStatement() throws Exception { when(cs.getArray(1)).thenReturn(mockArray); when(cs.wasNull()).thenReturn(false); String[] stringArray = new String[]{"a", "b"}; when(mockArray.getArray()).thenReturn(stringArray); assertEquals(stringArray, TYPE_HANDLER.getResult(cs, 1)); } @Override @Test public void shouldGetResultNullFromCallableStatement() throws Exception { when(cs.getArray(1)).thenReturn(null); when(cs.wasNull()).thenReturn(true); assertNull(TYPE_HANDLER.getResult(cs, 1)); } }