1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.joda.time.contrib.hibernate;
17
18 import java.io.File;
19 import java.sql.SQLException;
20
21 import org.hibernate.Session;
22 import org.hibernate.SessionFactory;
23 import org.hibernate.cfg.Configuration;
24 import org.joda.time.TimeOfDay;
25
26 public class TestPersistentTimeOfDay extends HibernateTestCase
27 {
28 private TimeOfDay[] writeReadTimes = new TimeOfDay[]
29 {
30 new TimeOfDay(12, 10, 31),
31 new TimeOfDay(23, 7, 43, 120)
32 };
33
34 public void testSimpleStore() throws SQLException
35 {
36 SessionFactory factory = getSessionFactory();
37
38 Session session = factory.openSession();
39
40 for (int i = 0; i<writeReadTimes.length; i++)
41 {
42 TimeOfDay writeReadTime = writeReadTimes[i];
43
44 Schedule event = new Schedule();
45 event.setId(i);
46 event.setNextTime(writeReadTime);
47
48 session.save(event);
49 }
50
51 session.flush();
52 session.connection().commit();
53 session.close();
54
55 for (int i = 0; i<writeReadTimes.length; i++)
56 {
57 TimeOfDay writeReadTime = writeReadTimes[i];
58
59 session = factory.openSession();
60 Schedule eventReread = (Schedule) session.get(Schedule.class, new Integer(i));
61
62 assertNotNull("get failed - event#'" + i + "'not found", eventReread);
63 assertNotNull("get failed - returned null", eventReread.getNextTime());
64
65 TimeOfDay reReadTime = eventReread.getNextTime();
66 if (writeReadTime.getHourOfDay() != reReadTime.getHourOfDay() ||
67 writeReadTime.getMinuteOfHour() != reReadTime.getMinuteOfHour() ||
68 writeReadTime.getSecondOfMinute() != reReadTime.getSecondOfMinute())
69 {
70 fail("get failed - returned different date. expected " + writeReadTime + " was " + eventReread.getNextTime());
71 }
72
73 if (writeReadTime.getMillisOfSecond() != reReadTime.getMillisOfSecond())
74 {
75 System.out.println("millis different, might happen?");
76 }
77 }
78
79 session.close();
80 }
81
82 protected void setupConfiguration(Configuration cfg)
83 {
84 cfg.addFile(new File("src/test/java/org/joda/time/contrib/hibernate/schedule.hbm.xml"));
85 }
86 }