[hibernate-commits] Hibernate SVN: r10893 - in trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/generics: . dynamic

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Thu Nov 30 07:25:06 EST 2006


Author: nusco
Date: 2006-11-30 07:25:02 -0500 (Thu, 30 Nov 2006)
New Revision: 10893

Added:
   trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/generics/dynamic/
   trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/generics/dynamic/Book.java
   trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/generics/dynamic/DynamicGenericsResolutionTest.java
   trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/generics/dynamic/Edition.java
   trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/generics/dynamic/Reprint.java
Log:
Test to expose ANN-494

Added: trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/generics/dynamic/Book.java
===================================================================
--- trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/generics/dynamic/Book.java	2006-11-30 10:35:57 UTC (rev 10892)
+++ trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/generics/dynamic/Book.java	2006-11-30 12:25:02 UTC (rev 10893)
@@ -0,0 +1,15 @@
+package org.hibernate.test.annotations.generics.dynamic;
+
+import javax.persistence.Embeddable;
+import javax.persistence.Id;
+
+ at Embeddable
+public class Book {
+	
+	@Id
+	public final String title;
+	
+	public Book(String title) {
+		this.title = title;
+	}
+}

Added: trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/generics/dynamic/DynamicGenericsResolutionTest.java
===================================================================
--- trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/generics/dynamic/DynamicGenericsResolutionTest.java	2006-11-30 10:35:57 UTC (rev 10892)
+++ trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/generics/dynamic/DynamicGenericsResolutionTest.java	2006-11-30 12:25:02 UTC (rev 10893)
@@ -0,0 +1,53 @@
+package org.hibernate.test.annotations.generics.dynamic;
+
+import org.hibernate.Session;
+import org.hibernate.Transaction;
+import org.hibernate.test.annotations.TestCase;
+
+public class DynamicGenericsResolutionTest extends TestCase {
+
+	Session session;
+
+	public void setUp() throws Exception {
+		super.setUp();
+	}
+
+	public void tearDown() throws Exception {
+		session.close();
+		super.tearDown();
+	}
+
+	private void clean(Class<?> clazz, String id) {
+		Transaction tx = session.beginTransaction();
+		session.delete( session.get( clazz, id ) );
+		tx.commit();
+	}
+
+	public void testDinamicallyResolvesGenericTypes() {
+		session = getSessions().openSession();
+		session.getTransaction().begin();
+		Book book = new Book( "The Naked Lunch" );
+		Edition<Book> edition = new Edition<Book>( "Second", book );
+		edition.originalDocument = book;
+		
+		Reprint series = new Reprint( "Happy Joyful Christmas Readings" );
+		series.batch.add( edition );
+		persist( series );
+
+		clean( Reprint.class, series.name );
+	}
+
+	private void persist(Object data) {
+		session.persist( data );
+		session.getTransaction().commit();
+		session.clear();
+	}
+	
+	protected Class[] getMappings() {
+		return new Class[]{
+				Book.class,
+				Edition.class,
+				Reprint.class
+		};
+	}
+}

Added: trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/generics/dynamic/Edition.java
===================================================================
--- trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/generics/dynamic/Edition.java	2006-11-30 10:35:57 UTC (rev 10892)
+++ trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/generics/dynamic/Edition.java	2006-11-30 12:25:02 UTC (rev 10893)
@@ -0,0 +1,18 @@
+package org.hibernate.test.annotations.generics.dynamic;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+
+ at Entity
+public class Edition<T> {
+
+	@Id
+	public final String code;
+
+    public T originalDocument;
+    
+	public Edition(String name, T originalDocument) {
+		this.code = name;
+		this.originalDocument = originalDocument;
+	}
+}

Added: trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/generics/dynamic/Reprint.java
===================================================================
--- trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/generics/dynamic/Reprint.java	2006-11-30 10:35:57 UTC (rev 10892)
+++ trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/generics/dynamic/Reprint.java	2006-11-30 12:25:02 UTC (rev 10893)
@@ -0,0 +1,23 @@
+
+package org.hibernate.test.annotations.generics.dynamic;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.OneToMany;
+
+ at Entity
+public class Reprint {
+
+	@Id
+	public final String name;
+
+	public Reprint(String name) {
+		this.name = name;
+	}
+	
+	@OneToMany
+	Set<Edition<Book>> batch = new HashSet<Edition<Book>>();
+}




More information about the hibernate-commits mailing list