/* * Copyright 2004-2015 the Seasar Foundation and the Others. * * 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.seasar.extension.jdbc.it.auto.select; import java.sql.Time; import java.sql.Timestamp; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import org.junit.runner.RunWith; import org.seasar.extension.jdbc.JdbcManager; import org.seasar.extension.jdbc.it.entity.Authority; import org.seasar.extension.jdbc.it.entity.AuthorityType; import org.seasar.extension.jdbc.it.entity.Job; import org.seasar.extension.jdbc.it.entity.JobType; import org.seasar.extension.jdbc.it.entity.Tense; import org.seasar.extension.jdbc.where.SimpleWhere; import org.seasar.framework.unit.Seasar2; import static org.junit.Assert.*; import static org.seasar.extension.jdbc.parameter.Parameter.*; /** * @author taedium * */ @RunWith(Seasar2.class) public class AutoSelectValueTypeTest { private JdbcManager jdbcManager; /** * * @throws Exception */ public void testTemporalType() throws Exception { Tense tense = jdbcManager.from(Tense.class).where("id = ?", 1).getSingleResult(); assertEquals(tense.sqlDate.getTime(), tense.calDate.getTimeInMillis()); assertEquals(tense.sqlDate.getTime(), tense.dateDate.getTime()); assertEquals(tense.sqlTime.getTime(), tense.calTime.getTimeInMillis()); assertEquals(tense.sqlTime.getTime(), tense.dateTime.getTime()); assertEquals(tense.sqlTimestamp.getTime(), tense.calTimestamp .getTimeInMillis()); assertEquals(tense.sqlTimestamp.getTime(), tense.dateTimestamp .getTime()); } /** * * @throws Exception */ public void testTemporalTypeCalendar_criteria() throws Exception { Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss") .parse("2005-02-14 12:11:10"); Calendar calendar = Calendar.getInstance(); calendar.setTime(date); Tense tense = jdbcManager .from(Tense.class) .where("calDate = ?", date(calendar)) .getSingleResult(); assertNotNull(tense); tense = jdbcManager .from(Tense.class) .where("calTime = ?", time(calendar)) .getSingleResult(); assertNotNull(tense); tense = jdbcManager.from(Tense.class).where( "calTimestamp = ?", timestamp(calendar)).getSingleResult(); assertNotNull(tense); } /** * * @throws Exception */ public void testTemporalTypeCalendar_simpleWhere() throws Exception { Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss") .parse("2005-02-14 12:11:10"); Calendar calendar = Calendar.getInstance(); calendar.setTime(date); Tense tense = jdbcManager.from(Tense.class).where( new SimpleWhere().eq("calDate", calendar)).getSingleResult(); assertNotNull(tense); tense = jdbcManager.from(Tense.class).where( new SimpleWhere().eq("calTime", calendar)).getSingleResult(); assertNotNull(tense); tense = jdbcManager .from(Tense.class) .where(new SimpleWhere().eq("calTimestamp", calendar)) .getSingleResult(); assertNotNull(tense); } /** * * @throws Exception */ public void testTemporalTypeDate_criteria() throws Exception { Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss") .parse("2005-02-14 12:11:10"); Tense tense = jdbcManager .from(Tense.class) .where("dateDate = ?", date(date)) .getSingleResult(); assertNotNull(tense); tense = jdbcManager .from(Tense.class) .where("dateTime = ?", time(date)) .getSingleResult(); assertNotNull(tense); tense = jdbcManager.from(Tense.class).where( "dateTimestamp = ?", timestamp(date)).getSingleResult(); assertNotNull(tense); } /** * * @throws Exception */ public void testTemporalTypeDate_simpleWhere() throws Exception { Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss") .parse("2005-02-14 12:11:10"); Tense tense = jdbcManager.from(Tense.class).where( new SimpleWhere().eq("dateDate", date)).getSingleResult(); assertNotNull(tense); tense = jdbcManager.from(Tense.class).where( new SimpleWhere().eq("dateTime", date)).getSingleResult(); assertNotNull(tense); tense = jdbcManager.from(Tense.class).where( new SimpleWhere().eq("dateTimestamp", date)).getSingleResult(); assertNotNull(tense); } /** * * @throws Exception */ public void testTemporalTypeSql_criteria() throws Exception { long time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse( "2005-02-14 12:11:10").getTime(); Tense tense = jdbcManager.from(Tense.class).where( "sqlDate = ?", new java.sql.Date(time)).getSingleResult(); assertNotNull(tense); tense = jdbcManager.from(Tense.class).where( "sqlTime = ?", Time.valueOf("12:11:10")).getSingleResult(); assertNotNull(tense); tense = jdbcManager.from(Tense.class).where( "sqlTimestamp = ?", new Timestamp(time)).getSingleResult(); assertNotNull(tense); } /** * * @throws Exception */ public void testTemporalTypeSql_simpleWhere() throws Exception { long time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse( "2005-02-14 12:11:10").getTime(); Tense tense = jdbcManager .from(Tense.class) .where(new SimpleWhere().eq("sqlDate", new java.sql.Date(time))) .getSingleResult(); assertNotNull(tense); tense = jdbcManager .from(Tense.class) .where( new SimpleWhere().eq("sqlTime", Time.valueOf("12:11:10"))) .getSingleResult(); assertNotNull(tense); tense = jdbcManager .from(Tense.class) .where( new SimpleWhere().eq("sqlTimestamp", new Timestamp(time))) .getSingleResult(); assertNotNull(tense); } /** * * @throws Exception */ public void testUserDefineValueType() throws Exception { Authority authority = jdbcManager.from(Authority.class).id(3).getSingleResult(); assertEquals(30, authority.authorityType.value()); } /** * * @throws Exception */ public void testUserDefineValueType_criteria() throws Exception { Authority authority = jdbcManager.from(Authority.class).where( "authorityType = ?", AuthorityType.valueOf(20)).getSingleResult(); assertEquals(2, authority.id); } /** * * @throws Exception */ public void testUserDefineValueType_simpleWhere() throws Exception { Authority authority = jdbcManager .from(Authority.class) .where( new SimpleWhere().eq("authorityType", AuthorityType .valueOf(20))) .getSingleResult(); assertEquals(2, authority.id); } /** * * @throws Exception */ public void testEnumType() throws Exception { Job job = jdbcManager.from(Job.class).id(3).getSingleResult(); assertEquals(JobType.PRESIDENT, job.jobType); } /** * * @throws Exception */ public void testEnumType_criteria() throws Exception { Job job = jdbcManager .from(Job.class) .where("jobType = ?", JobType.MANAGER) .getSingleResult(); assertEquals(2, job.id); } /** * * @throws Exception */ public void testEnumType_simpleWhere() throws Exception { Job job = jdbcManager .from(Job.class) .where(new SimpleWhere().eq("jobType", JobType.MANAGER)) .getSingleResult(); assertEquals(2, job.id); } }