001 /* 002 * Copyright 2001-2007 Stephen Colebourne 003 * 004 * Licensed under the Apache License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.apache.org/licenses/LICENSE-2.0 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016 package org.joda.time.contrib.hibernate; 017 018 import java.io.File; 019 import java.sql.SQLException; 020 021 import org.hibernate.Session; 022 import org.hibernate.SessionFactory; 023 import org.hibernate.cfg.Configuration; 024 import org.joda.time.LocalTime; 025 026 public class TestPersistentLocalTime extends HibernateTestCase 027 { 028 private LocalTime[] writeReadTimes = new LocalTime[] 029 { 030 new LocalTime(14, 2, 25), 031 new LocalTime(23, 59, 59, 999), 032 new LocalTime(0, 0, 0) 033 }; 034 035 public void testSimpleStore() throws SQLException 036 { 037 SessionFactory factory = getSessionFactory(); 038 039 Session session = factory.openSession(); 040 041 for (int i = 0; i<writeReadTimes.length; i++) 042 { 043 LocalTime writeReadTime = writeReadTimes[i]; 044 045 Event event = new Event(); 046 event.setId(i); 047 event.setLocalTime(writeReadTime); 048 event.setLocalTime2(writeReadTime); 049 event.setLocalTime3(writeReadTime); 050 051 session.save(event); 052 } 053 054 session.flush(); 055 session.connection().commit(); 056 session.close(); 057 058 for (int i = 0; i<writeReadTimes.length; i++) 059 { 060 LocalTime writeReadTime = writeReadTimes[i]; 061 062 session = factory.openSession(); 063 Event eventReread = (Event) session.get(Event.class, new Integer(i)); 064 065 assertNotNull("get failed - event#'" + i + "'not found", eventReread); 066 assertNotNull("get failed - returned null", eventReread.getLocalTime()); 067 assertNotNull("get failed - returned null", eventReread.getLocalTime2()); 068 assertNotNull("get failed - returned null", eventReread.getLocalTime3()); 069 070 // we might loose the millis, depends on database 071 assertEquals("get failed - returned different time (TIME)", 072 writeReadTime.getMillisOfDay()/1000, 073 eventReread.getLocalTime().getMillisOfDay()/1000); 074 075 assertEquals("get failed - returned different time (INT)", 076 writeReadTime.getMillisOfDay(), 077 eventReread.getLocalTime2().getMillisOfDay()); 078 079 assertEquals("get failed - returned different time (STRING)", 080 writeReadTime.getMillisOfDay(), 081 eventReread.getLocalTime3().getMillisOfDay()); 082 083 session.close(); 084 } 085 } 086 087 protected void setupConfiguration(Configuration cfg) 088 { 089 cfg.addFile(new File("src/test/java/org/joda/time/contrib/hibernate/event.hbm.xml")); 090 cfg.addFile(new File("src/test/java/org/joda/time/contrib/hibernate/eventTZ.hbm.xml")); 091 } 092 }