001 package org.joda.time.contrib.hibernate; 002 003 import junit.framework.Assert; 004 import org.hibernate.Session; 005 import org.hibernate.cfg.Configuration; 006 import org.joda.time.DateTime; 007 import org.joda.time.Duration; 008 import org.joda.time.Period; 009 import org.joda.time.contrib.hibernate.testmodel.SomethingThatLasts; 010 011 import java.io.IOException; 012 import java.io.File; 013 import java.sql.SQLException; 014 015 /** 016 * @author gjoseph 017 * @author $Author: $ (last edit) 018 * @version $Revision: $ 019 */ 020 public class TestPersistentDuration extends HibernateTestCase { 021 protected void setupConfiguration(Configuration cfg) { 022 cfg.addFile(new File("src/test/java/org/joda/time/contrib/hibernate/testmodel/SomethingThatLasts.hbm.xml")); 023 } 024 025 private Duration[] durations = new Duration[]{ 026 Duration.ZERO, new Duration(30), Period.seconds(30).toDurationTo(new DateTime()), Period.months(3).toDurationFrom(new DateTime()) 027 }; 028 029 public void testSimpleStore() throws SQLException, IOException { 030 Session session = getSessionFactory().openSession(); 031 032 for (int i = 0; i < durations.length; i++) { 033 SomethingThatLasts thing = new SomethingThatLasts(); 034 thing.setId(i); 035 thing.setName("test_" + i); 036 thing.setTheDuration(durations[i]); 037 session.save(thing); 038 } 039 040 session.flush(); 041 session.connection().commit(); 042 session.close(); 043 044 for (int i = 0; i < durations.length; i++) { 045 session = getSessionFactory().openSession(); 046 SomethingThatLasts lastingThing = (SomethingThatLasts) session.get(SomethingThatLasts.class, new Long(i)); 047 048 Assert.assertNotNull(lastingThing); 049 Assert.assertEquals(i, lastingThing.getId()); 050 Assert.assertEquals("test_" + i, lastingThing.getName()); 051 Assert.assertEquals(durations[i], lastingThing.getTheDuration()); 052 053 session.close(); 054 } 055 056 // printSqlQueryResults("SELECT * FROM lasting"); 057 } 058 059 }