From: <hib...@li...> - 2006-04-25 17:08:05
|
Author: epbernard Date: 2006-04-25 13:07:59 -0400 (Tue, 25 Apr 2006) New Revision: 9790 Added: trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/joined/AlarmT.java trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/joined/EventInformationT.java trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/joined/JoinedSubclassTest.java Removed: trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/joined/SubclassTest.java Log: more tests Added: trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/joined/AlarmT.java =================================================================== --- trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/joined/AlarmT.java 2006-04-25 17:06:55 UTC (rev 9789) +++ trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/joined/AlarmT.java 2006-04-25 17:07:59 UTC (rev 9790) @@ -0,0 +1,40 @@ +//$Id: Sweater.java 8974 2006-01-04 00:43:49Z epbernard $ +package org.hibernate.test.annotations.inheritance.joined; + +import javax.persistence.DiscriminatorValue; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.JoinColumns; +import javax.persistence.OneToOne; + +@Entity +@DiscriminatorValue("AlarmT") +public class AlarmT extends EventInformationT { + + protected EventInformationT eventInfo; + + @OneToOne + @JoinColumns({@JoinColumn(name = "EVENTINFORMATIONT_NOTIFICATIONID", + referencedColumnName = "NOTIFICATIONID")}) + public EventInformationT getEventInfo() { + return eventInfo; + } + + public void setEventInfo(EventInformationT value) { + this.eventInfo = value; + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + String eventId = ( getEventInfo() != null ? + getEventInfo().getNotificationId() : null ); + sb.append( + "AlarmT: id = " + getNotificationId() + "\t" + + "has event id = " + eventId + ); + return sb.toString(); + } + +} Added: trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/joined/EventInformationT.java =================================================================== --- trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/joined/EventInformationT.java 2006-04-25 17:06:55 UTC (rev 9789) +++ trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/joined/EventInformationT.java 2006-04-25 17:07:59 UTC (rev 9790) @@ -0,0 +1,38 @@ +//$Id: Sweater.java 8974 2006-01-04 00:43:49Z epbernard $ +package org.hibernate.test.annotations.inheritance.joined; + +import javax.persistence.DiscriminatorColumn; +import javax.persistence.DiscriminatorType; +import javax.persistence.DiscriminatorValue; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Inheritance; +import javax.persistence.InheritanceType; + + +@Entity +@Inheritance(strategy = InheritanceType.JOINED) +@DiscriminatorColumn(name = "DTYPE", discriminatorType = DiscriminatorType.STRING, length = 80) +@DiscriminatorValue("EventInformationT") +public class EventInformationT implements java.io.Serializable { + + + protected String notificationId; + + @Id + public String getNotificationId() { + return notificationId; + } + + public void setNotificationId(String value) { + this.notificationId = value; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append( "EventInformationT: id = " + getNotificationId() ); + return sb.toString(); + } + +} Copied: trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/joined/JoinedSubclassTest.java (from rev 9709, trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/joined/SubclassTest.java) =================================================================== --- trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/joined/SubclassTest.java 2006-03-29 03:32:24 UTC (rev 9709) +++ trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/joined/JoinedSubclassTest.java 2006-04-25 17:07:59 UTC (rev 9790) @@ -0,0 +1,153 @@ +//$Id$ +package org.hibernate.test.annotations.inheritance.joined; + +import java.util.List; + +import org.hibernate.Session; +import org.hibernate.Transaction; +import org.hibernate.test.annotations.TestCase; + +/** + * @author Emmanuel Bernard + */ +public class JoinedSubclassTest extends TestCase { + + public JoinedSubclassTest(String x) { + super( x ); + } + + public void testDefault() throws Exception { + Session s; + Transaction tx; + s = openSession(); + tx = s.beginTransaction(); + File doc = new Document( "Enron Stuff To Shred", 1000 ); + Folder folder = new Folder( "Enron" ); + s.persist( doc ); + s.persist( folder ); + tx.commit(); + s.close(); + + s = openSession(); + tx = s.beginTransaction(); + List result = s.createCriteria( File.class ).list(); + assertNotNull( result ); + assertEquals( 2, result.size() ); + File f2 = (File) result.get( 0 ); + checkClassType( f2, doc, folder ); + f2 = (File) result.get( 1 ); + checkClassType( f2, doc, folder ); + s.delete( result.get( 0 ) ); + s.delete( result.get( 1 ) ); + tx.commit(); + s.close(); + } + + public void testManyToOneOnAbstract() throws Exception { + Folder f = new Folder(); + f.setName( "data" ); + ProgramExecution remove = new ProgramExecution(); + remove.setAction( "remove" ); + remove.setAppliesOn( f ); + Session s; + Transaction tx; + s = openSession(); + tx = s.beginTransaction(); + s.persist( f ); + s.persist( remove ); + tx.commit(); + s.clear(); + tx = s.beginTransaction(); + remove = (ProgramExecution) s.get( ProgramExecution.class, remove.getId() ); + assertNotNull( remove ); + assertNotNull( remove.getAppliesOn().getName() ); + s.delete( remove ); + s.delete( remove.getAppliesOn() ); + tx.commit(); + s.close(); + + } + + private void checkClassType(File fruitToTest, File f, Folder a) { + if ( fruitToTest.getName().equals( f.getName() ) ) { + assertFalse( fruitToTest instanceof Folder ); + } + else if ( fruitToTest.getName().equals( a.getName() ) ) { + assertTrue( fruitToTest instanceof Folder ); + } + else { + fail( "Result does not contains the previously inserted elements" ); + } + } + + public void testJoinedAbstractClass() throws Exception { + Session s; + Transaction tx; + s = openSession(); + s.getTransaction().begin(); + Sweater sw = new Sweater(); + sw.setColor( "Black" ); + sw.setSize( 2 ); + sw.setSweat( true ); + s.persist( sw ); + s.getTransaction().commit(); + s.clear(); + + s = openSession(); + s.getTransaction().begin(); + sw = (Sweater) s.get( Sweater.class, sw.getId() ); + s.delete( sw ); + s.getTransaction().commit(); + s.close(); + } + + public void testInheritance() throws Exception { + Session session = openSession(); + Transaction transaction = session.beginTransaction(); + String eventPK = "event1"; + System.out.println( "*******Finding event " + eventPK ); + EventInformationT event = (EventInformationT) session.get( EventInformationT.class, eventPK ); + if ( event == null ) { + System.out.println( "Creating event " + eventPK ); + event = new EventInformationT(); + event.setNotificationId( eventPK ); + session.persist( event ); + } + else { + System.out.println( "Found " + event ); + } + String alarmPK = "alarm1"; + System.out.println( "*******Finding alarm " + alarmPK ); + AlarmT alarm = (AlarmT) session.get( AlarmT.class, alarmPK ); + if ( alarm == null ) { + System.out.println( "Creating alarm " + alarmPK ); + alarm = new AlarmT(); + alarm.setNotificationId( alarmPK ); + alarm.setEventInfo( event ); + session.persist( alarm ); + } + else { + System.out.println( "Found " + alarm ); + } + transaction.commit(); + session.close(); + } + + /** + * @see org.hibernate.test.annotations.TestCase#getMappings() + */ + protected Class[] getMappings() { + return new Class[]{ + File.class, + Folder.class, + Document.class, + SymbolicLink.class, + ProgramExecution.class, + Clothing.class, + Sweater.class, + EventInformationT.class, + AlarmT.class + }; + } + +} Property changes on: trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/joined/JoinedSubclassTest.java ___________________________________________________________________ Name: svn:executable + * Name: svn:keywords + Author Date Id Revision Name: svn:eol-style + native Deleted: trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/joined/SubclassTest.java =================================================================== --- trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/joined/SubclassTest.java 2006-04-25 17:06:55 UTC (rev 9789) +++ trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/joined/SubclassTest.java 2006-04-25 17:07:59 UTC (rev 9790) @@ -1,117 +0,0 @@ -//$Id$ -package org.hibernate.test.annotations.inheritance.joined; - -import java.util.List; - -import org.hibernate.Session; -import org.hibernate.Transaction; -import org.hibernate.test.annotations.TestCase; - -/** - * @author Emmanuel Bernard - */ -public class SubclassTest extends TestCase { - - public SubclassTest(String x) { - super(x); - } - - public void testDefault() throws Exception { - Session s; - Transaction tx; - s = openSession(); - tx = s.beginTransaction(); - File doc = new Document("Enron Stuff To Shred", 1000); - Folder folder = new Folder("Enron"); - s.persist(doc); - s.persist(folder); - tx.commit(); - s.close(); - - s = openSession(); - tx = s.beginTransaction(); - List result = s.createCriteria(File.class).list(); - assertNotNull(result); - assertEquals( 2, result.size() ); - File f2 = (File) result.get(0); - checkClassType(f2, doc, folder); - f2 = (File) result.get(1); - checkClassType(f2, doc, folder); - s.delete( result.get(0) ); - s.delete( result.get(1) ); - tx.commit(); - s.close(); - } - - public void testManyToOneOnAbstract() throws Exception { - Folder f = new Folder(); - f.setName("data"); - ProgramExecution remove = new ProgramExecution(); - remove.setAction("remove"); - remove.setAppliesOn(f); - Session s; - Transaction tx; - s = openSession(); - tx = s.beginTransaction(); - s.persist(f); - s.persist(remove); - tx.commit(); - s.clear(); - tx = s.beginTransaction(); - remove = (ProgramExecution) s.get( ProgramExecution.class, remove.getId() ); - assertNotNull(remove); - assertNotNull( remove.getAppliesOn().getName() ); - s.delete( remove ); - s.delete( remove.getAppliesOn() ); - tx.commit(); - s.close(); - - } - - private void checkClassType(File fruitToTest, File f, Folder a) { - if ( fruitToTest.getName().equals( f.getName() ) ) { - assertFalse(fruitToTest instanceof Folder); - } else if ( fruitToTest.getName().equals( a.getName() ) ) { - assertTrue(fruitToTest instanceof Folder); - } else { - fail("Result does not contains the previously inserted elements"); - } - } - - public void testJoinedAbstractClass() throws Exception { - Session s; - Transaction tx; - s = openSession(); - s.getTransaction().begin(); - Sweater sw = new Sweater(); - sw.setColor( "Black" ); - sw.setSize( 2 ); - sw.setSweat( true ); - s.persist( sw ); - s.getTransaction().commit(); - s.clear(); - - s = openSession(); - s.getTransaction().begin(); - sw = (Sweater) s.get( Sweater.class, sw.getId() ); - s.delete( sw ); - s.getTransaction().commit(); - s.close(); - } - - /** - * @see org.hibernate.test.annotations.TestCase#getMappings() - */ - protected Class[] getMappings() { - return new Class[] { - File.class, - Folder.class, - Document.class, - SymbolicLink.class, - ProgramExecution.class, - Clothing.class, - Sweater.class - }; - } - -} |