View Javadoc
1   /*
2    *    Copyright 2009-2022 the original author or authors.
3    *
4    *    Licensed under the Apache License, Version 2.0 (the "License");
5    *    you may not use this file except in compliance with the License.
6    *    You may obtain a copy of the License at
7    *
8    *       https://www.apache.org/licenses/LICENSE-2.0
9    *
10   *    Unless required by applicable law or agreed to in writing, software
11   *    distributed under the License is distributed on an "AS IS" BASIS,
12   *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   *    See the License for the specific language governing permissions and
14   *    limitations under the License.
15   */
16  package org.apache.ibatis.type;
17  
18  import static org.junit.jupiter.api.Assertions.assertEquals;
19  import static org.junit.jupiter.api.Assertions.assertNull;
20  import static org.mockito.Mockito.never;
21  import static org.mockito.Mockito.verify;
22  import static org.mockito.Mockito.when;
23  
24  import java.util.Date;
25  
26  import org.junit.jupiter.api.Test;
27  
28  class DateOnlyTypeHandlerTest extends BaseTypeHandlerTest {
29  
30    private static final TypeHandler<Date> TYPE_HANDLER = new DateOnlyTypeHandler();
31    private static final Date DATE = new Date();
32    private static final java.sql.Date SQL_DATE = new java.sql.Date(DATE.getTime());
33  
34    @Override
35    @Test
36    public void shouldSetParameter() throws Exception {
37      TYPE_HANDLER.setParameter(ps, 1, DATE, null);
38      verify(ps).setDate(1, new java.sql.Date(DATE.getTime()));
39    }
40  
41    @Override
42    @Test
43    public void shouldGetResultFromResultSetByName() throws Exception {
44      when(rs.getDate("column")).thenReturn(SQL_DATE);
45      assertEquals(DATE, TYPE_HANDLER.getResult(rs, "column"));
46      verify(rs, never()).wasNull();
47    }
48  
49    @Override
50    @Test
51    public void shouldGetResultNullFromResultSetByName() throws Exception {
52      when(rs.getDate("column")).thenReturn(null);
53      assertNull(TYPE_HANDLER.getResult(rs, "column"));
54      verify(rs, never()).wasNull();
55    }
56  
57    @Override
58    @Test
59    public void shouldGetResultFromResultSetByPosition() throws Exception {
60      when(rs.getDate(1)).thenReturn(SQL_DATE);
61      assertEquals(DATE, TYPE_HANDLER.getResult(rs, 1));
62      verify(rs, never()).wasNull();
63    }
64  
65    @Override
66    @Test
67    public void shouldGetResultNullFromResultSetByPosition() throws Exception {
68      when(rs.getDate(1)).thenReturn(null);
69      assertNull(TYPE_HANDLER.getResult(rs, 1));
70      verify(rs, never()).wasNull();
71    }
72  
73    @Override
74    @Test
75    public void shouldGetResultFromCallableStatement() throws Exception {
76      when(cs.getDate(1)).thenReturn(SQL_DATE);
77      assertEquals(DATE, TYPE_HANDLER.getResult(cs, 1));
78      verify(cs, never()).wasNull();
79    }
80  
81    @Override
82    @Test
83    public void shouldGetResultNullFromCallableStatement() throws Exception {
84      when(cs.getDate(1)).thenReturn(null);
85      assertNull(TYPE_HANDLER.getResult(cs, 1));
86      verify(cs, never()).wasNull();
87    }
88  
89  }