[hibernate-commits] Hibernate SVN: r10246 - in trunk/Hibernate3/test/org/hibernate/test/instrument: . buildtime cases domain runtime

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Fri Aug 11 14:45:00 EDT 2006


Author: steve.ebersole at jboss.com
Date: 2006-08-11 14:39:47 -0400 (Fri, 11 Aug 2006)
New Revision: 10246

Added:
   trunk/Hibernate3/test/org/hibernate/test/instrument/cases/
   trunk/Hibernate3/test/org/hibernate/test/instrument/cases/AbstractExecutable.java
   trunk/Hibernate3/test/org/hibernate/test/instrument/cases/Executable.java
   trunk/Hibernate3/test/org/hibernate/test/instrument/cases/TestDirtyCheckExecutable.java
   trunk/Hibernate3/test/org/hibernate/test/instrument/cases/TestFetchAllExecutable.java
   trunk/Hibernate3/test/org/hibernate/test/instrument/cases/TestInjectFieldInterceptorExecutable.java
   trunk/Hibernate3/test/org/hibernate/test/instrument/cases/TestIsPropertyInitializedExecutable.java
   trunk/Hibernate3/test/org/hibernate/test/instrument/cases/TestLazyExecutable.java
   trunk/Hibernate3/test/org/hibernate/test/instrument/cases/TestLazyManyToOneExecutable.java
   trunk/Hibernate3/test/org/hibernate/test/instrument/cases/TestManyToOneProxyExecutable.java
   trunk/Hibernate3/test/org/hibernate/test/instrument/domain/Entity.java
Removed:
   trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/AbstractExecutable.java
   trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/Executable.java
   trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/TestDirtyCheckExecutable.java
   trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/TestFetchAllExecutable.java
   trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/TestInjectFieldInterceptorExecutable.java
   trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/TestIsPropertyInitializedExecutable.java
   trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/TestLazyExecutable.java
   trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/TestLazyManyToOneExecutable.java
Modified:
   trunk/Hibernate3/test/org/hibernate/test/instrument/buildtime/InstrumentTest.java
   trunk/Hibernate3/test/org/hibernate/test/instrument/domain/Documents.hbm.xml
   trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/AbstractTransformingClassLoaderInstrumentTestCase.java
   trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/JavassistInstrumentationTest.java
Log:
HHH-1740 : many-to-one (and one-to-one) with lazy="proxy" and bytecode instrumentation

Modified: trunk/Hibernate3/test/org/hibernate/test/instrument/buildtime/InstrumentTest.java
===================================================================
--- trunk/Hibernate3/test/org/hibernate/test/instrument/buildtime/InstrumentTest.java	2006-08-11 18:38:39 UTC (rev 10245)
+++ trunk/Hibernate3/test/org/hibernate/test/instrument/buildtime/InstrumentTest.java	2006-08-11 18:39:47 UTC (rev 10246)
@@ -1,22 +1,19 @@
 //$Id$
 package org.hibernate.test.instrument.buildtime;
 
-import java.util.HashSet;
-import java.util.List;
-import java.util.Iterator;
-
 import junit.framework.Test;
 import junit.framework.TestSuite;
 
-import org.hibernate.Hibernate;
-import org.hibernate.LockMode;
-import org.hibernate.Session;
-import org.hibernate.Transaction;
 import org.hibernate.intercept.FieldInterceptionHelper;
 import org.hibernate.test.TestCase;
-import org.hibernate.test.instrument.domain.Owner;
 import org.hibernate.test.instrument.domain.Document;
-import org.hibernate.test.instrument.domain.Folder;
+import org.hibernate.test.instrument.cases.TestDirtyCheckExecutable;
+import org.hibernate.test.instrument.cases.TestFetchAllExecutable;
+import org.hibernate.test.instrument.cases.TestLazyExecutable;
+import org.hibernate.test.instrument.cases.TestLazyManyToOneExecutable;
+import org.hibernate.test.instrument.cases.TestInjectFieldInterceptorExecutable;
+import org.hibernate.test.instrument.cases.TestIsPropertyInitializedExecutable;
+import org.hibernate.test.instrument.cases.TestManyToOneProxyExecutable;
 
 /**
  * @author Gavin King
@@ -28,311 +25,46 @@
 	}
 
 	public void testDirtyCheck() {
-		if ( !isRunnable() ) {
-			return;
-		}
-		Session s = openSession();
-		Transaction t = s.beginTransaction();
-		Folder pics = new Folder();
-		pics.setName("pics");
-		Folder docs = new Folder();
-		docs.setName("docs");
-		s.persist(docs);
-		s.persist(pics);
-		t.commit();
-		s.close();
-
-		s = openSession();
-		t = s.beginTransaction();
-		List list = s.createCriteria(Folder.class).list();
-		for ( Iterator iter = list.iterator(); iter.hasNext(); ) {
-			Folder f = (Folder) iter.next();
-			assertFalse( f.nameWasread );
-		}
-		t.commit();
-		s.close();
-
-		for ( Iterator iter = list.iterator(); iter.hasNext(); ) {
-			Folder f = (Folder) iter.next();
-			assertFalse( f.nameWasread );
-		}
-
-		s = openSession();
-		t = s.beginTransaction();
-		s.createQuery("delete from Folder").executeUpdate();
-		t.commit();
-		s.close();
+		new TestDirtyCheckExecutable().execute();
 	}
 
 	public void testFetchAll() throws Exception {
-		if ( !isRunnable() ) {
-			return;
-		}
-		Session s = openSession();
-		Owner o = new Owner();
-		Document doc = new Document();
-		Folder fol = new Folder();
-		o.setName("gavin");
-		doc.setName("Hibernate in Action");
-		doc.setSummary("blah");
-		doc.updateText("blah blah");
-		fol.setName("books");
-		doc.setOwner(o);
-		doc.setFolder(fol);
-		fol.getDocuments().add(doc);
-		s.persist(o);
-		s.persist(fol);
-		s.flush();
-		s.clear();
-		doc = (Document) s.createQuery("from Document fetch all properties").uniqueResult();
-		assertTrue( Hibernate.isPropertyInitialized( doc, "summary" ) );
-		assertTrue( Hibernate.isPropertyInitialized( doc, "upperCaseName" ) );
-		assertTrue( Hibernate.isPropertyInitialized( doc, "owner" ) );
-		assertEquals( doc.getSummary(), "blah" );
-		s.delete(doc);
-		s.delete( doc.getOwner() );
-		s.delete( doc.getFolder() );
-		s.flush();
-		s.connection().commit();
-		s.close();
+		new TestFetchAllExecutable().execute();
 	}
 
 	public void testLazy() throws Exception {
-		if ( !isRunnable() ) {
-			return;
-		}
-		Session s = openSession();
-		Transaction t = s.beginTransaction();
-		Owner o = new Owner();
-		Document doc = new Document();
-		Folder fol = new Folder();
-		o.setName("gavin");
-		doc.setName("Hibernate in Action");
-		doc.setSummary("blah");
-		doc.updateText("blah blah");
-		fol.setName("books");
-		doc.setOwner(o);
-		doc.setFolder(fol);
-		fol.getDocuments().add(doc);
-		s.save(o);
-		s.save(fol);
-		t.commit();
-		s.close();
-
-		getSessions().evict(Document.class);
-
-		s = openSession();
-		t = s.beginTransaction();
-		doc = ( Document ) s.get( Document.class, doc.getId() );
-		assertTrue(Hibernate.isPropertyInitialized(doc, "weirdProperty"));
-		assertTrue(Hibernate.isPropertyInitialized(doc, "name"));
-		assertFalse(Hibernate.isPropertyInitialized(doc, "text"));
-		assertFalse(Hibernate.isPropertyInitialized(doc, "upperCaseName"));
-		assertFalse(Hibernate.isPropertyInitialized(doc, "folder"));
-		assertFalse(Hibernate.isPropertyInitialized(doc, "owner"));
-		doc.getUpperCaseName();  // should force initialization
-		assertTrue(Hibernate.isPropertyInitialized(doc, "text"));
-		assertTrue(Hibernate.isPropertyInitialized(doc, "weirdProperty"));
-		assertTrue(Hibernate.isPropertyInitialized(doc, "upperCaseName"));
-		assertTrue(Hibernate.isPropertyInitialized(doc, "folder"));
-		assertTrue(Hibernate.isPropertyInitialized(doc, "owner"));
-		t.commit();
-		s.close();
-
-		getSessions().evict(Document.class);
-
-		s = openSession();
-		doc = (Document) s.createQuery("from Document").uniqueResult();
-		doc.getName();
-		assertEquals( doc.getText(), "blah blah" );
-		s.connection().commit();
-		s.close();
-
-		s = openSession();
-		doc = (Document) s.createQuery("from Document").uniqueResult();
-		doc.getName();
-		assertFalse(Hibernate.isPropertyInitialized(doc, "text"));
-		assertFalse(Hibernate.isPropertyInitialized(doc, "summary"));
-		assertEquals( doc.getText(), "blah blah" );
-		assertTrue(Hibernate.isPropertyInitialized(doc, "text"));
-		assertTrue(Hibernate.isPropertyInitialized(doc, "summary"));
-		s.connection().commit();
-		s.close();
-
-		s = openSession();
-		doc = ( Document ) s.createQuery("from Document").uniqueResult();
-		doc.setName("HiA");
-		s.flush();
-		s.connection().commit();
-		s.close();
-
-		s = openSession();
-		doc = (Document) s.createQuery("from Document").uniqueResult();
-		assertEquals( doc.getName(), "HiA" );
-		assertEquals( doc.getText(), "blah blah" );
-		s.connection().commit();
-		s.close();
-
-		s = openSession();
-		doc = (Document) s.createQuery("from Document").uniqueResult();
-		doc.getText();
-		doc.setName("HiA second edition");
-		s.flush();
-		s.connection().commit();
-		s.close();
-
-		s = openSession();
-		doc = (Document) s.createQuery("from Document").uniqueResult();
-		assertTrue(Hibernate.isPropertyInitialized(doc, "weirdProperty"));
-		assertTrue(Hibernate.isPropertyInitialized(doc, "name"));
-		assertFalse(Hibernate.isPropertyInitialized(doc, "text"));
-		assertFalse(Hibernate.isPropertyInitialized(doc, "upperCaseName"));
-		assertFalse(Hibernate.isPropertyInitialized(doc, "owner"));
-		assertEquals( doc.getName(), "HiA second edition" );
-		assertEquals( doc.getText(), "blah blah" );
-		assertEquals( doc.getUpperCaseName(), "HIA SECOND EDITION" );
-		assertTrue(Hibernate.isPropertyInitialized(doc, "text"));
-		assertTrue(Hibernate.isPropertyInitialized(doc, "weirdProperty"));
-		assertTrue(Hibernate.isPropertyInitialized(doc, "upperCaseName"));
-		s.connection().commit();
-		s.close();
-
-		s = openSession();
-		doc = (Document) s.createQuery("from Document").uniqueResult();
-		s.connection().commit();
-		s.close();
-
-		assertFalse(Hibernate.isPropertyInitialized(doc, "text"));
-
-		s = openSession();
-		s.lock(doc, LockMode.NONE);
-		assertFalse(Hibernate.isPropertyInitialized(doc, "text"));
-		assertEquals( doc.getText(), "blah blah" );
-		assertTrue(Hibernate.isPropertyInitialized(doc, "text"));
-		s.connection().commit();
-		s.close();
-
-		s = openSession();
-		doc = (Document) s.createQuery("from Document").uniqueResult();
-		s.connection().commit();
-		s.close();
-
-		doc.setName("HiA2");
-
-		assertFalse(Hibernate.isPropertyInitialized(doc, "text"));
-
-		s = openSession();
-		s.saveOrUpdate(doc);
-		s.flush();
-		assertFalse(Hibernate.isPropertyInitialized(doc, "text"));
-		assertEquals( doc.getText(), "blah blah" );
-		assertTrue(Hibernate.isPropertyInitialized(doc, "text"));
-		doc.updateText("blah blah blah blah");
-		s.flush();
-		s.connection().commit();
-		s.close();
-
-		s = openSession();
-		doc = (Document) s.createQuery("from Document").uniqueResult();
-		assertEquals( doc.getName(), "HiA2" );
-		assertEquals( doc.getText(), "blah blah blah blah" );
-		s.connection().commit();
-		s.close();
-
-		s = openSession();
-		doc = (Document) s.load( Document.class, doc.getId() );
-		doc.getName();
-		assertFalse(Hibernate.isPropertyInitialized(doc, "text"));
-		assertFalse(Hibernate.isPropertyInitialized(doc, "summary"));
-		s.connection().commit();
-		s.close();
-
-		s = openSession();
-		doc = (Document) s.createQuery("from Document").uniqueResult();
-		//s.delete(doc);
-		s.delete( doc.getFolder() );
-		s.delete( doc.getOwner() );
-		s.flush();
-		s.connection().commit();
-		s.close();
-
+		new TestLazyExecutable().execute();
 	}
 
 	public void testLazyManyToOne() {
-		if ( !isRunnable() ) {
-			return;
-		}
-		Session s = openSession();
-		Transaction t = s.beginTransaction();
-		Owner gavin = new Owner();
-		Document hia = new Document();
-		Folder fol = new Folder();
-		gavin.setName("gavin");
-		hia.setName("Hibernate in Action");
-		hia.setSummary("blah");
-		hia.updateText("blah blah");
-		fol.setName("books");
-		hia.setOwner(gavin);
-		hia.setFolder(fol);
-		fol.getDocuments().add(hia);
-		s.persist(gavin);
-		s.persist(fol);
-		t.commit();
-		s.close();
+		new TestLazyManyToOneExecutable().execute();
+	}
 
-		s = openSession();
-		t = s.beginTransaction();
-		hia = (Document) s.createCriteria(Document.class).uniqueResult();
-		assertEquals( hia.getFolder().getClass(), Folder.class);
-		fol = hia.getFolder();
-		assertTrue( Hibernate.isInitialized(fol) );
-		t.commit();
-		s.close();
+	public void testSetFieldInterceptor() {
+		new TestInjectFieldInterceptorExecutable().execute();
+	}
 
-		s = openSession();
-		t = s.beginTransaction();
-		hia = (Document) s.createCriteria(Document.class).uniqueResult();
-		assertSame( hia.getFolder(), s.load(Folder.class, fol.getId()) );
-		assertTrue( Hibernate.isInitialized( hia.getFolder() ) );
-		t.commit();
-		s.close();
-
-		s = openSession();
-		t = s.beginTransaction();
-		fol = (Folder) s.get(Folder.class, fol.getId());
-		hia = (Document) s.createCriteria(Document.class).uniqueResult();
-		assertSame( fol, hia.getFolder() );
-		fol = hia.getFolder();
-		assertTrue( Hibernate.isInitialized(fol) );
-		t.commit();
-		s.close();
-
-		s = openSession();
-		t = s.beginTransaction();
-		fol = (Folder) s.load(Folder.class, fol.getId());
-		hia = (Document) s.createCriteria(Document.class).uniqueResult();
-		assertNotSame( fol, hia.getFolder() );
-		fol = hia.getFolder();
-		assertTrue( Hibernate.isInitialized(fol) );
-		s.delete(hia.getFolder());
-		s.delete(hia.getOwner());
-		t.commit();
-		s.close();
+	public void testPropertyInitialized() {
+		new TestIsPropertyInitializedExecutable().execute();
 	}
 
-	public void testSetFieldInterceptor() {
-		if ( !isRunnable() ) {
-			return;
-		}
-		Document doc = new Document();
-		FieldInterceptionHelper.injectFieldInterceptor( doc, "Document", new HashSet(), null );
-		doc.getId();
+	public void testManyToOneProxy() {
+		new TestManyToOneProxyExecutable().execute();
 	}
 
 	protected String[] getMappings() {
 		return new String[] { "instrument/domain/Documents.hbm.xml" };
 	}
 
+	protected void runTest() throws Throwable {
+		if ( isRunnable() ) {
+			super.runTest();
+		}
+		else {
+			reportSkip( "domain classes not instrumented", "build-time instrumentation" );
+		}
+	}
+
 	public static Test suite() {
 		return new TestSuite(InstrumentTest.class);
 	}

Copied: trunk/Hibernate3/test/org/hibernate/test/instrument/cases/AbstractExecutable.java (from rev 10159, trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/AbstractExecutable.java)
===================================================================
--- trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/AbstractExecutable.java	2006-07-26 13:36:20 UTC (rev 10159)
+++ trunk/Hibernate3/test/org/hibernate/test/instrument/cases/AbstractExecutable.java	2006-08-11 18:39:47 UTC (rev 10246)
@@ -0,0 +1,28 @@
+package org.hibernate.test.instrument.cases;
+
+import org.hibernate.SessionFactory;
+import org.hibernate.cfg.Configuration;
+import org.hibernate.cfg.Environment;
+
+/**
+ * @author Steve Ebersole
+ */
+public abstract class AbstractExecutable implements Executable {
+
+	private SessionFactory factory;
+
+	public void prepare() {
+		factory = new Configuration()
+				.setProperty( Environment.HBM2DDL_AUTO, "create-drop" )
+				.addResource( "org/hibernate/test/instrument/domain/Documents.hbm.xml" )
+				.buildSessionFactory();
+	}
+
+	public void complete() {
+		factory.close();
+	}
+
+	protected SessionFactory getFactory() {
+		return factory;
+	}
+}

Copied: trunk/Hibernate3/test/org/hibernate/test/instrument/cases/Executable.java (from rev 10159, trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/Executable.java)
===================================================================
--- trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/Executable.java	2006-07-26 13:36:20 UTC (rev 10159)
+++ trunk/Hibernate3/test/org/hibernate/test/instrument/cases/Executable.java	2006-08-11 18:39:47 UTC (rev 10246)
@@ -0,0 +1,10 @@
+package org.hibernate.test.instrument.cases;
+
+/**
+ * @author Steve Ebersole
+ */
+public interface Executable {
+	public void prepare();
+	public void execute();
+	public void complete();
+}

Copied: trunk/Hibernate3/test/org/hibernate/test/instrument/cases/TestDirtyCheckExecutable.java (from rev 10159, trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/TestDirtyCheckExecutable.java)
===================================================================
--- trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/TestDirtyCheckExecutable.java	2006-07-26 13:36:20 UTC (rev 10159)
+++ trunk/Hibernate3/test/org/hibernate/test/instrument/cases/TestDirtyCheckExecutable.java	2006-08-11 18:39:47 UTC (rev 10246)
@@ -0,0 +1,49 @@
+package org.hibernate.test.instrument.cases;
+
+import org.hibernate.Session;
+import org.hibernate.Transaction;
+import org.hibernate.test.instrument.domain.Folder;
+
+import java.util.List;
+import java.util.Iterator;
+
+import junit.framework.Assert;
+
+/**
+ * @author Steve Ebersole
+ */
+public class TestDirtyCheckExecutable extends AbstractExecutable {
+	public void execute() {
+		Session s = getFactory().openSession();
+		Transaction t = s.beginTransaction();
+		Folder pics = new Folder();
+		pics.setName("pics");
+		Folder docs = new Folder();
+		docs.setName("docs");
+		s.persist(docs);
+		s.persist(pics);
+		t.commit();
+		s.close();
+
+		s = getFactory().openSession();
+		t = s.beginTransaction();
+		List list = s.createCriteria(Folder.class).list();
+		for ( Iterator iter = list.iterator(); iter.hasNext(); ) {
+			Folder f = (Folder) iter.next();
+			Assert.assertFalse( f.nameWasread );
+		}
+		t.commit();
+		s.close();
+
+		for ( Iterator iter = list.iterator(); iter.hasNext(); ) {
+			Folder f = (Folder) iter.next();
+			Assert.assertFalse( f.nameWasread );
+		}
+
+		s = getFactory().openSession();
+		t = s.beginTransaction();
+		s.createQuery("delete from Folder").executeUpdate();
+		t.commit();
+		s.close();
+	}
+}

Copied: trunk/Hibernate3/test/org/hibernate/test/instrument/cases/TestFetchAllExecutable.java (from rev 10159, trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/TestFetchAllExecutable.java)
===================================================================
--- trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/TestFetchAllExecutable.java	2006-07-26 13:36:20 UTC (rev 10159)
+++ trunk/Hibernate3/test/org/hibernate/test/instrument/cases/TestFetchAllExecutable.java	2006-08-11 18:39:47 UTC (rev 10246)
@@ -0,0 +1,47 @@
+package org.hibernate.test.instrument.cases;
+
+import org.hibernate.Session;
+import org.hibernate.Hibernate;
+import org.hibernate.Transaction;
+import org.hibernate.test.instrument.domain.Owner;
+import org.hibernate.test.instrument.domain.Document;
+import org.hibernate.test.instrument.domain.Folder;
+import junit.framework.Assert;
+
+/**
+ * @author Steve Ebersole
+ */
+public class TestFetchAllExecutable extends AbstractExecutable {
+	public void execute() {
+		Session s = getFactory().openSession();
+		Transaction t = s.beginTransaction();
+		Owner o = new Owner();
+		Document doc = new Document();
+		Folder fol = new Folder();
+		o.setName("gavin");
+		doc.setName("Hibernate in Action");
+		doc.setSummary("blah");
+		doc.updateText("blah blah");
+		fol.setName("books");
+		doc.setOwner(o);
+		doc.setFolder(fol);
+		fol.getDocuments().add(doc);
+		s.persist(o);
+		s.persist(fol);
+		t.commit();
+		s.close();
+
+		s = getFactory().openSession();
+		t = s.beginTransaction();
+		doc = (Document) s.createQuery("from Document fetch all properties").uniqueResult();
+		Assert.assertTrue( Hibernate.isPropertyInitialized( doc, "summary" ) );
+		Assert.assertTrue( Hibernate.isPropertyInitialized( doc, "upperCaseName" ) );
+		Assert.assertTrue( Hibernate.isPropertyInitialized( doc, "owner" ) );
+		Assert.assertEquals( doc.getSummary(), "blah" );
+		s.delete(doc);
+		s.delete( doc.getOwner() );
+		s.delete( doc.getFolder() );
+		t.commit();
+		s.close();
+	}
+}

Copied: trunk/Hibernate3/test/org/hibernate/test/instrument/cases/TestInjectFieldInterceptorExecutable.java (from rev 10159, trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/TestInjectFieldInterceptorExecutable.java)
===================================================================
--- trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/TestInjectFieldInterceptorExecutable.java	2006-07-26 13:36:20 UTC (rev 10159)
+++ trunk/Hibernate3/test/org/hibernate/test/instrument/cases/TestInjectFieldInterceptorExecutable.java	2006-08-11 18:39:47 UTC (rev 10246)
@@ -0,0 +1,17 @@
+package org.hibernate.test.instrument.cases;
+
+import org.hibernate.test.instrument.domain.Document;
+import org.hibernate.intercept.FieldInterceptionHelper;
+
+import java.util.HashSet;
+
+/**
+ * @author Steve Ebersole
+ */
+public class TestInjectFieldInterceptorExecutable extends AbstractExecutable {
+	public void execute() {
+		Document doc = new Document();
+		FieldInterceptionHelper.injectFieldInterceptor( doc, "Document", new HashSet(), null );
+		doc.getId();
+	}
+}

Copied: trunk/Hibernate3/test/org/hibernate/test/instrument/cases/TestIsPropertyInitializedExecutable.java (from rev 10159, trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/TestIsPropertyInitializedExecutable.java)
===================================================================
--- trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/TestIsPropertyInitializedExecutable.java	2006-07-26 13:36:20 UTC (rev 10159)
+++ trunk/Hibernate3/test/org/hibernate/test/instrument/cases/TestIsPropertyInitializedExecutable.java	2006-08-11 18:39:47 UTC (rev 10246)
@@ -0,0 +1,48 @@
+//$Id: $
+package org.hibernate.test.instrument.cases;
+
+import org.hibernate.Session;
+import org.hibernate.Transaction;
+import org.hibernate.Hibernate;
+import org.hibernate.test.instrument.domain.Owner;
+import org.hibernate.test.instrument.domain.Document;
+import org.hibernate.test.instrument.domain.Folder;
+import junit.framework.Assert;
+
+/**
+ * @author Steve Ebersole
+ */
+public class TestIsPropertyInitializedExecutable extends AbstractExecutable {
+	public void execute() {
+		Session s = getFactory().openSession();
+		Transaction t = s.beginTransaction();
+		Owner o = new Owner();
+		Document doc = new Document();
+		Folder fol = new Folder();
+		o.setName("gavin");
+		doc.setName("Hibernate in Action");
+		doc.setSummary("blah");
+		doc.updateText("blah blah");
+		fol.setName("books");
+		doc.setOwner(o);
+		doc.setFolder(fol);
+		fol.getDocuments().add(doc);
+		Assert.assertTrue( Hibernate.isPropertyInitialized( doc, "summary" ) );
+		s.persist(o);
+		s.persist(fol);
+		t.commit();
+		s.close();
+
+		s = getFactory().openSession();
+		t = s.beginTransaction();
+		doc = (Document) s.get( Document.class, doc.getId() );
+		Assert.assertFalse( Hibernate.isPropertyInitialized( doc, "summary" ) );
+		Assert.assertFalse( Hibernate.isPropertyInitialized( doc, "upperCaseName" ) );
+		Assert.assertFalse( Hibernate.isPropertyInitialized( doc, "owner" ) );
+		s.delete(doc);
+		s.delete( doc.getOwner() );
+		s.delete( doc.getFolder() );
+		t.commit();
+		s.close();
+	}
+}

Copied: trunk/Hibernate3/test/org/hibernate/test/instrument/cases/TestLazyExecutable.java (from rev 10159, trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/TestLazyExecutable.java)
===================================================================
--- trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/TestLazyExecutable.java	2006-07-26 13:36:20 UTC (rev 10159)
+++ trunk/Hibernate3/test/org/hibernate/test/instrument/cases/TestLazyExecutable.java	2006-08-11 18:39:47 UTC (rev 10246)
@@ -0,0 +1,197 @@
+package org.hibernate.test.instrument.cases;
+
+import org.hibernate.test.TestCase;
+import org.hibernate.test.instrument.cases.AbstractExecutable;
+import org.hibernate.test.instrument.domain.Owner;
+import org.hibernate.test.instrument.domain.Document;
+import org.hibernate.test.instrument.domain.Folder;
+import org.hibernate.Session;
+import org.hibernate.Transaction;
+import org.hibernate.Hibernate;
+import org.hibernate.LockMode;
+import org.hibernate.CacheMode;
+import org.hibernate.SessionFactory;
+
+/**
+ * @author Steve Ebersole
+ */
+public class TestLazyExecutable extends AbstractExecutable {
+	public void execute() {
+		SessionFactory factory = getFactory();
+		Session s = factory.openSession();
+		Transaction t = s.beginTransaction();
+		Owner o = new Owner();
+		Document doc = new Document();
+		Folder fol = new Folder();
+		o.setName("gavin");
+		doc.setName("Hibernate in Action");
+		doc.setSummary("blah");
+		doc.updateText("blah blah");
+		fol.setName("books");
+		doc.setOwner(o);
+		doc.setFolder(fol);
+		fol.getDocuments().add(doc);
+		s.save(o);
+		s.save(fol);
+		t.commit();
+		s.close();
+
+		s = factory.openSession();
+		s.setCacheMode( CacheMode.IGNORE );
+		t = s.beginTransaction();
+		doc = ( Document ) s.get( Document.class, doc.getId() );
+		TestCase.assertTrue( Hibernate.isPropertyInitialized(doc, "weirdProperty"));
+		TestCase.assertTrue(Hibernate.isPropertyInitialized(doc, "name"));
+		TestCase.assertFalse(Hibernate.isPropertyInitialized(doc, "text"));
+		TestCase.assertFalse(Hibernate.isPropertyInitialized(doc, "upperCaseName"));
+		TestCase.assertFalse(Hibernate.isPropertyInitialized(doc, "folder"));
+		TestCase.assertFalse(Hibernate.isPropertyInitialized(doc, "owner"));
+		doc.getUpperCaseName();  // should force initialization
+		TestCase.assertTrue(Hibernate.isPropertyInitialized(doc, "text"));
+		TestCase.assertTrue(Hibernate.isPropertyInitialized(doc, "weirdProperty"));
+		TestCase.assertTrue(Hibernate.isPropertyInitialized(doc, "upperCaseName"));
+		TestCase.assertTrue(Hibernate.isPropertyInitialized(doc, "folder"));
+		TestCase.assertTrue(Hibernate.isPropertyInitialized(doc, "owner"));
+		t.commit();
+		s.close();
+
+		s = factory.openSession();
+		s.setCacheMode( CacheMode.IGNORE );
+		t = s.beginTransaction();
+		doc = (Document) s.createQuery("from Document").uniqueResult();
+		doc.getName();
+		TestCase.assertEquals( doc.getText(), "blah blah" );
+		t.commit();
+		s.close();
+
+		s = factory.openSession();
+		s.setCacheMode( CacheMode.IGNORE );
+		t = s.beginTransaction();
+		doc = (Document) s.createQuery("from Document").uniqueResult();
+		doc.getName();
+		TestCase.assertFalse(Hibernate.isPropertyInitialized(doc, "text"));
+		TestCase.assertFalse(Hibernate.isPropertyInitialized(doc, "summary"));
+		TestCase.assertEquals( doc.getText(), "blah blah" );
+		TestCase.assertTrue(Hibernate.isPropertyInitialized(doc, "text"));
+		TestCase.assertTrue(Hibernate.isPropertyInitialized(doc, "summary"));
+		t.commit();
+		s.close();
+
+		s = factory.openSession();
+		s.setCacheMode( CacheMode.IGNORE );
+		t = s.beginTransaction();
+		doc = (Document) s.createQuery("from Document").uniqueResult();
+		doc.setName("HiA");
+		t.commit();
+		s.close();
+
+		s = factory.openSession();
+		s.setCacheMode( CacheMode.IGNORE );
+		t = s.beginTransaction();
+		doc = (Document) s.createQuery("from Document").uniqueResult();
+		TestCase.assertEquals( doc.getName(), "HiA" );
+		TestCase.assertEquals( doc.getText(), "blah blah" );
+		t.commit();
+		s.close();
+
+		s = factory.openSession();
+		s.setCacheMode( CacheMode.IGNORE );
+		t = s.beginTransaction();
+		doc = (Document) s.createQuery("from Document").uniqueResult();
+		doc.getText();
+		doc.setName("HiA second edition");
+		t.commit();
+		s.close();
+
+		s = factory.openSession();
+		s.setCacheMode( CacheMode.IGNORE );
+		t = s.beginTransaction();
+		doc = (Document) s.createQuery("from Document").uniqueResult();
+		TestCase.assertTrue(Hibernate.isPropertyInitialized(doc, "weirdProperty"));
+		TestCase.assertTrue(Hibernate.isPropertyInitialized(doc, "name"));
+		TestCase.assertFalse(Hibernate.isPropertyInitialized(doc, "text"));
+		TestCase.assertFalse(Hibernate.isPropertyInitialized(doc, "upperCaseName"));
+		TestCase.assertFalse(Hibernate.isPropertyInitialized(doc, "owner"));
+		TestCase.assertEquals( doc.getName(), "HiA second edition" );
+		TestCase.assertEquals( doc.getText(), "blah blah" );
+		TestCase.assertEquals( doc.getUpperCaseName(), "HIA SECOND EDITION" );
+		TestCase.assertTrue(Hibernate.isPropertyInitialized(doc, "text"));
+		TestCase.assertTrue(Hibernate.isPropertyInitialized(doc, "weirdProperty"));
+		TestCase.assertTrue(Hibernate.isPropertyInitialized(doc, "upperCaseName"));
+		t.commit();
+		s.close();
+
+		s = factory.openSession();
+		s.setCacheMode( CacheMode.IGNORE );
+		t = s.beginTransaction();
+		doc = (Document) s.createQuery("from Document").uniqueResult();
+		t.commit();
+		s.close();
+
+		TestCase.assertFalse(Hibernate.isPropertyInitialized(doc, "text"));
+
+		s = factory.openSession();
+		s.setCacheMode( CacheMode.IGNORE );
+		t = s.beginTransaction();
+		s.lock(doc, LockMode.NONE);
+		TestCase.assertFalse(Hibernate.isPropertyInitialized(doc, "text"));
+		TestCase.assertEquals( doc.getText(), "blah blah" );
+		TestCase.assertTrue(Hibernate.isPropertyInitialized(doc, "text"));
+		t.commit();
+		s.close();
+
+		s = factory.openSession();
+		s.setCacheMode( CacheMode.IGNORE );
+		t = s.beginTransaction();
+		doc = (Document) s.createQuery("from Document").uniqueResult();
+		t.commit();
+		s.close();
+
+		doc.setName("HiA2");
+
+		TestCase.assertFalse(Hibernate.isPropertyInitialized(doc, "text"));
+
+		s = factory.openSession();
+		s.setCacheMode( CacheMode.IGNORE );
+		t = s.beginTransaction();
+		s.saveOrUpdate(doc);
+		s.flush();
+		TestCase.assertFalse(Hibernate.isPropertyInitialized(doc, "text"));
+		TestCase.assertEquals( doc.getText(), "blah blah" );
+		TestCase.assertTrue(Hibernate.isPropertyInitialized(doc, "text"));
+		doc.updateText("blah blah blah blah");
+		t.commit();
+		s.close();
+
+		s = factory.openSession();
+		s.setCacheMode( CacheMode.IGNORE );
+		t = s.beginTransaction();
+		doc = ( Document ) s.createQuery("from Document").uniqueResult();
+		TestCase.assertEquals( doc.getName(), "HiA2" );
+		TestCase.assertEquals( doc.getText(), "blah blah blah blah" );
+		t.commit();
+		s.close();
+
+		s = factory.openSession();
+		s.setCacheMode( CacheMode.IGNORE );
+		t = s.beginTransaction();
+		doc = (Document) s.load( Document.class, doc.getId() );
+		doc.getName();
+		TestCase.assertFalse(Hibernate.isPropertyInitialized(doc, "text"));
+		TestCase.assertFalse(Hibernate.isPropertyInitialized(doc, "summary"));
+		t.commit();
+		s.close();
+
+		s = factory.openSession();
+		s.setCacheMode( CacheMode.IGNORE );
+		t = s.beginTransaction();
+		doc = (Document) s.createQuery("from Document").uniqueResult();
+		//s.delete(doc);
+		s.delete( doc.getFolder() );
+		s.delete( doc.getOwner() );
+		s.flush();
+		t.commit();
+		s.close();
+	}
+
+}

Copied: trunk/Hibernate3/test/org/hibernate/test/instrument/cases/TestLazyManyToOneExecutable.java (from rev 10159, trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/TestLazyManyToOneExecutable.java)
===================================================================
--- trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/TestLazyManyToOneExecutable.java	2006-07-26 13:36:20 UTC (rev 10159)
+++ trunk/Hibernate3/test/org/hibernate/test/instrument/cases/TestLazyManyToOneExecutable.java	2006-08-11 18:39:47 UTC (rev 10246)
@@ -0,0 +1,74 @@
+package org.hibernate.test.instrument.cases;
+
+import org.hibernate.Session;
+import org.hibernate.Transaction;
+import org.hibernate.Hibernate;
+import org.hibernate.test.instrument.domain.Owner;
+import org.hibernate.test.instrument.domain.Document;
+import org.hibernate.test.instrument.domain.Folder;
+import org.hibernate.test.instrument.cases.AbstractExecutable;
+import junit.framework.Assert;
+
+/**
+ * @author Steve Ebersole
+ */
+public class TestLazyManyToOneExecutable extends AbstractExecutable {
+	public void execute() {
+		Session s = getFactory().openSession();
+		Transaction t = s.beginTransaction();
+		Owner gavin = new Owner();
+		Document hia = new Document();
+		Folder fol = new Folder();
+		gavin.setName("gavin");
+		hia.setName("Hibernate in Action");
+		hia.setSummary("blah");
+		hia.updateText("blah blah");
+		fol.setName("books");
+		hia.setOwner(gavin);
+		hia.setFolder(fol);
+		fol.getDocuments().add(hia);
+		s.persist(gavin);
+		s.persist(fol);
+		t.commit();
+		s.close();
+
+		s = getFactory().openSession();
+		t = s.beginTransaction();
+		hia = (Document) s.createCriteria(Document.class).uniqueResult();
+		Assert.assertEquals( hia.getFolder().getClass(), Folder.class);
+		fol = hia.getFolder();
+		Assert.assertTrue( Hibernate.isInitialized(fol) );
+		t.commit();
+		s.close();
+
+		s = getFactory().openSession();
+		t = s.beginTransaction();
+		hia = (Document) s.createCriteria(Document.class).uniqueResult();
+		Assert.assertSame( hia.getFolder(), s.load(Folder.class, fol.getId()) );
+		Assert.assertTrue( Hibernate.isInitialized( hia.getFolder() ) );
+		t.commit();
+		s.close();
+
+		s = getFactory().openSession();
+		t = s.beginTransaction();
+		fol = (Folder) s.get(Folder.class, fol.getId());
+		hia = (Document) s.createCriteria(Document.class).uniqueResult();
+		Assert.assertSame( fol, hia.getFolder() );
+		fol = hia.getFolder();
+		Assert.assertTrue( Hibernate.isInitialized(fol) );
+		t.commit();
+		s.close();
+
+		s = getFactory().openSession();
+		t = s.beginTransaction();
+		fol = (Folder) s.load(Folder.class, fol.getId());
+		hia = (Document) s.createCriteria(Document.class).uniqueResult();
+		Assert.assertNotSame( fol, hia.getFolder() );
+		fol = hia.getFolder();
+		Assert.assertTrue( Hibernate.isInitialized(fol) );
+		s.delete(hia.getFolder());
+		s.delete(hia.getOwner());
+		t.commit();
+		s.close();
+	}
+}

Added: trunk/Hibernate3/test/org/hibernate/test/instrument/cases/TestManyToOneProxyExecutable.java
===================================================================
--- trunk/Hibernate3/test/org/hibernate/test/instrument/cases/TestManyToOneProxyExecutable.java	2006-08-11 18:38:39 UTC (rev 10245)
+++ trunk/Hibernate3/test/org/hibernate/test/instrument/cases/TestManyToOneProxyExecutable.java	2006-08-11 18:39:47 UTC (rev 10246)
@@ -0,0 +1,37 @@
+package org.hibernate.test.instrument.cases;
+
+import org.hibernate.Session;
+import org.hibernate.Transaction;
+import org.hibernate.Hibernate;
+import org.hibernate.test.instrument.domain.Entity;
+import junit.framework.Assert;
+
+/**
+ *
+ * @author Steve Ebersole
+ */
+public class TestManyToOneProxyExecutable extends AbstractExecutable {
+	public void execute() {
+		Session s = getFactory().openSession();
+		Transaction t = s.beginTransaction();
+		Entity parent = new Entity( "parent" );
+		s.save( parent );
+		Entity child = new Entity( "child", parent );
+		s.save( child );
+		t.commit();
+		s.close();
+
+		s = getFactory().openSession();
+		t = s.beginTransaction();
+		child = ( Entity ) s.get( Entity.class, child.getId() );
+		Assert.assertFalse( Hibernate.isPropertyInitialized( child, "name" ) );
+		Assert.assertTrue( Hibernate.isPropertyInitialized( child, "parent" ) );
+		parent = child.getParent();
+		Assert.assertFalse( Hibernate.isPropertyInitialized( parent, "name" ) );
+		Assert.assertFalse( Hibernate.isPropertyInitialized( child, "name" ) );
+		s.delete( child );
+		s.delete( parent );
+		t.commit();
+		s.close();
+	}
+}

Modified: trunk/Hibernate3/test/org/hibernate/test/instrument/domain/Documents.hbm.xml
===================================================================
--- trunk/Hibernate3/test/org/hibernate/test/instrument/domain/Documents.hbm.xml	2006-08-11 18:38:39 UTC (rev 10245)
+++ trunk/Hibernate3/test/org/hibernate/test/instrument/domain/Documents.hbm.xml	2006-08-11 18:39:47 UTC (rev 10246)
@@ -21,7 +21,7 @@
 
     <class name="Folder" table="folders">
     	<id name="id">
-    		<generator class="native"/>
+    		<generator class="increment"/>
     	</id>
     	<property name="name" 
     		not-null="true" 
@@ -43,7 +43,7 @@
 	
 	<class name="Owner" table="owners" lazy="false">
    		<id name="id">
-    		<generator class="native"/>
+    		<generator class="increment"/>
     	</id>
     	<property name="name" 
     		not-null="true" 
@@ -52,7 +52,7 @@
  	
 	<class name="Document" table="documents">
    		<id name="id">
-    		<generator class="native"/>
+    		<generator class="increment"/>
     	</id>
     	<property name="name" not-null="true" length="50"/>
     	<property name="upperCaseName" formula="upper(name)" lazy="true"/>
@@ -62,6 +62,13 @@
     	<property name="text" not-null="true" length="2000" lazy="true"/>
     	<property name="lastTextModification" not-null="true" lazy="true" access="field"/>
     </class>
- 	
 
+    <class name="Entity" table="entity">
+        <id name="id" column="ID" type="long">
+            <generator class="increment"/>
+        </id>
+        <property name="name" column="NAME" type="string" lazy="true"/>
+        <many-to-one name="parent" column="PRNT_ID" class="Entity" lazy="proxy"/>
+    </class>
+
 </hibernate-mapping>

Added: trunk/Hibernate3/test/org/hibernate/test/instrument/domain/Entity.java
===================================================================
--- trunk/Hibernate3/test/org/hibernate/test/instrument/domain/Entity.java	2006-08-11 18:38:39 UTC (rev 10245)
+++ trunk/Hibernate3/test/org/hibernate/test/instrument/domain/Entity.java	2006-08-11 18:39:47 UTC (rev 10246)
@@ -0,0 +1,44 @@
+package org.hibernate.test.instrument.domain;
+
+/**
+ * todo: describe Entity
+ *
+ * @author Steve Ebersole
+ */
+public class Entity {
+	private Long id;
+	private String name;
+	private Entity parent;
+
+	public Entity() {
+	}
+
+	public Entity(String name) {
+		this.name = name;
+	}
+
+	public Entity(String name, Entity parent) {
+		this.name = name;
+		this.parent = parent;
+	}
+
+	public Long getId() {
+		return id;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public Entity getParent() {
+		return parent;
+	}
+
+	public void setParent(Entity parent) {
+		this.parent = parent;
+	}
+}

Deleted: trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/AbstractExecutable.java
===================================================================
--- trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/AbstractExecutable.java	2006-08-11 18:38:39 UTC (rev 10245)
+++ trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/AbstractExecutable.java	2006-08-11 18:39:47 UTC (rev 10246)
@@ -1,29 +0,0 @@
-package org.hibernate.test.instrument.runtime;
-
-import org.hibernate.SessionFactory;
-import org.hibernate.test.instrument.runtime.Executable;
-import org.hibernate.cfg.Configuration;
-import org.hibernate.cfg.Environment;
-
-/**
- * @author Steve Ebersole
- */
-public abstract class AbstractExecutable implements Executable {
-
-	private SessionFactory factory;
-
-	public void prepare() {
-		factory = new Configuration()
-				.setProperty( Environment.HBM2DDL_AUTO, "create-drop" )
-				.addResource( "org/hibernate/test/instrument/domain/Documents.hbm.xml" )
-				.buildSessionFactory();
-	}
-
-	public void complete() {
-		factory.close();
-	}
-
-	protected SessionFactory getFactory() {
-		return factory;
-	}
-}

Modified: trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/AbstractTransformingClassLoaderInstrumentTestCase.java
===================================================================
--- trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/AbstractTransformingClassLoaderInstrumentTestCase.java	2006-08-11 18:38:39 UTC (rev 10245)
+++ trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/AbstractTransformingClassLoaderInstrumentTestCase.java	2006-08-11 18:39:47 UTC (rev 10246)
@@ -22,10 +22,11 @@
 						new BasicClassFilter( new String[] { "org.hibernate.test.instrument" }, null ),
 						new FieldFilter() {
 							public boolean shouldInstrumentField(String className, String fieldName) {
-								return true;
+								return className.startsWith( "org.hibernate.test.instrument.domain" );
 							}
 							public boolean shouldTransformFieldAccess(String transformingClassName, String fieldOwnerClassName, String fieldName) {
-								return true;
+								return fieldOwnerClassName.startsWith( "org.hibernate.test.instrument.domain" )
+										&& transformingClassName.equals( fieldOwnerClassName );
 							}
 						}
 				)
@@ -42,30 +43,35 @@
 	// the tests ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 	public void testSetFieldInterceptor() {
-		executeExecutable( "org.hibernate.test.instrument.runtime.TestInjectFieldInterceptorExecutable" );
+		executeExecutable( "org.hibernate.test.instrument.cases.TestInjectFieldInterceptorExecutable" );
 	}
 
 	public void testDirtyCheck() {
-		executeExecutable( "org.hibernate.test.instrument.runtime.TestDirtyCheckExecutable" );
+		executeExecutable( "org.hibernate.test.instrument.cases.TestDirtyCheckExecutable" );
 	}
 
 	public void testFetchAll() throws Exception {
-		executeExecutable( "org.hibernate.test.instrument.runtime.TestFetchAllExecutable" );
+		executeExecutable( "org.hibernate.test.instrument.cases.TestFetchAllExecutable" );
 	}
 
 	public void testLazy() {
-		executeExecutable( "org.hibernate.test.instrument.runtime.TestLazyExecutable" );
+		executeExecutable( "org.hibernate.test.instrument.cases.TestLazyExecutable" );
 	}
 
 	public void testLazyManyToOne() {
-		executeExecutable( "org.hibernate.test.instrument.runtime.TestLazyManyToOneExecutable" );
+		executeExecutable( "org.hibernate.test.instrument.cases.TestLazyManyToOneExecutable" );
 	}
 
 	public void testPropertyInitialized() {
-		executeExecutable( "org.hibernate.test.instrument.runtime.TestIsPropertyInitializedExecutable" );
+		executeExecutable( "org.hibernate.test.instrument.cases.TestIsPropertyInitializedExecutable" );
 	}
 
+	public void testManyToOneProxy() {
+		executeExecutable( "org.hibernate.test.instrument.cases.TestManyToOneProxyExecutable" );
+	}
 
+
+
 	// reflection code to ensure isolation into the created classloader ~~~~~~~
 
 	private static final Class[] SIG = new Class[] {};

Deleted: trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/Executable.java
===================================================================
--- trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/Executable.java	2006-08-11 18:38:39 UTC (rev 10245)
+++ trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/Executable.java	2006-08-11 18:39:47 UTC (rev 10246)
@@ -1,10 +0,0 @@
-package org.hibernate.test.instrument.runtime;
-
-/**
- * @author Steve Ebersole
- */
-public interface Executable {
-	public void prepare();
-	public void execute();
-	public void complete();
-}

Modified: trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/JavassistInstrumentationTest.java
===================================================================
--- trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/JavassistInstrumentationTest.java	2006-08-11 18:38:39 UTC (rev 10245)
+++ trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/JavassistInstrumentationTest.java	2006-08-11 18:39:47 UTC (rev 10246)
@@ -17,4 +17,32 @@
 	public static Test suite() {
 		return new TestSuite( JavassistInstrumentationTest.class );
 	}
+
+	public void testSetFieldInterceptor() {
+		super.testSetFieldInterceptor();
+	}
+
+	public void testDirtyCheck() {
+		super.testDirtyCheck();
+	}
+
+	public void testFetchAll() throws Exception {
+		super.testFetchAll();
+	}
+
+	public void testLazy() {
+		super.testLazy();
+	}
+
+	public void testLazyManyToOne() {
+		super.testLazyManyToOne();
+	}
+
+	public void testPropertyInitialized() {
+		super.testPropertyInitialized();
+	}
+
+	public void testManyToOneProxy() {
+		super.testManyToOneProxy();
+	}
 }

Deleted: trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/TestDirtyCheckExecutable.java
===================================================================
--- trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/TestDirtyCheckExecutable.java	2006-08-11 18:38:39 UTC (rev 10245)
+++ trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/TestDirtyCheckExecutable.java	2006-08-11 18:39:47 UTC (rev 10246)
@@ -1,50 +0,0 @@
-package org.hibernate.test.instrument.runtime;
-
-import org.hibernate.Session;
-import org.hibernate.Transaction;
-import org.hibernate.test.instrument.runtime.AbstractExecutable;
-import org.hibernate.test.instrument.domain.Folder;
-
-import java.util.List;
-import java.util.Iterator;
-
-import junit.framework.Assert;
-
-/**
- * @author Steve Ebersole
- */
-public class TestDirtyCheckExecutable extends AbstractExecutable {
-	public void execute() {
-		Session s = getFactory().openSession();
-		Transaction t = s.beginTransaction();
-		Folder pics = new Folder();
-		pics.setName("pics");
-		Folder docs = new Folder();
-		docs.setName("docs");
-		s.persist(docs);
-		s.persist(pics);
-		t.commit();
-		s.close();
-
-		s = getFactory().openSession();
-		t = s.beginTransaction();
-		List list = s.createCriteria(Folder.class).list();
-		for ( Iterator iter = list.iterator(); iter.hasNext(); ) {
-			Folder f = (Folder) iter.next();
-			Assert.assertFalse( f.nameWasread );
-		}
-		t.commit();
-		s.close();
-
-		for ( Iterator iter = list.iterator(); iter.hasNext(); ) {
-			Folder f = (Folder) iter.next();
-			Assert.assertFalse( f.nameWasread );
-		}
-
-		s = getFactory().openSession();
-		t = s.beginTransaction();
-		s.createQuery("delete from Folder").executeUpdate();
-		t.commit();
-		s.close();
-	}
-}

Deleted: trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/TestFetchAllExecutable.java
===================================================================
--- trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/TestFetchAllExecutable.java	2006-08-11 18:38:39 UTC (rev 10245)
+++ trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/TestFetchAllExecutable.java	2006-08-11 18:39:47 UTC (rev 10246)
@@ -1,47 +0,0 @@
-package org.hibernate.test.instrument.runtime;
-
-import org.hibernate.Session;
-import org.hibernate.Hibernate;
-import org.hibernate.Transaction;
-import org.hibernate.test.instrument.domain.Owner;
-import org.hibernate.test.instrument.domain.Document;
-import org.hibernate.test.instrument.domain.Folder;
-import junit.framework.Assert;
-
-/**
- * @author Steve Ebersole
- */
-public class TestFetchAllExecutable extends AbstractExecutable {
-	public void execute() {
-		Session s = getFactory().openSession();
-		Transaction t = s.beginTransaction();
-		Owner o = new Owner();
-		Document doc = new Document();
-		Folder fol = new Folder();
-		o.setName("gavin");
-		doc.setName("Hibernate in Action");
-		doc.setSummary("blah");
-		doc.updateText("blah blah");
-		fol.setName("books");
-		doc.setOwner(o);
-		doc.setFolder(fol);
-		fol.getDocuments().add(doc);
-		s.persist(o);
-		s.persist(fol);
-		t.commit();
-		s.close();
-
-		s = getFactory().openSession();
-		t = s.beginTransaction();
-		doc = (Document) s.createQuery("from Document fetch all properties").uniqueResult();
-		Assert.assertTrue( Hibernate.isPropertyInitialized( doc, "summary" ) );
-		Assert.assertTrue( Hibernate.isPropertyInitialized( doc, "upperCaseName" ) );
-		Assert.assertTrue( Hibernate.isPropertyInitialized( doc, "owner" ) );
-		Assert.assertEquals( doc.getSummary(), "blah" );
-		s.delete(doc);
-		s.delete( doc.getOwner() );
-		s.delete( doc.getFolder() );
-		t.commit();
-		s.close();
-	}
-}

Deleted: trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/TestInjectFieldInterceptorExecutable.java
===================================================================
--- trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/TestInjectFieldInterceptorExecutable.java	2006-08-11 18:38:39 UTC (rev 10245)
+++ trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/TestInjectFieldInterceptorExecutable.java	2006-08-11 18:39:47 UTC (rev 10246)
@@ -1,17 +0,0 @@
-package org.hibernate.test.instrument.runtime;
-
-import org.hibernate.test.instrument.domain.Document;
-import org.hibernate.intercept.FieldInterceptionHelper;
-
-import java.util.HashSet;
-
-/**
- * @author Steve Ebersole
- */
-public class TestInjectFieldInterceptorExecutable extends AbstractExecutable {
-	public void execute() {
-		Document doc = new Document();
-		FieldInterceptionHelper.injectFieldInterceptor( doc, "Document", new HashSet(), null );
-		doc.getId();
-	}
-}

Deleted: trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/TestIsPropertyInitializedExecutable.java
===================================================================
--- trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/TestIsPropertyInitializedExecutable.java	2006-08-11 18:38:39 UTC (rev 10245)
+++ trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/TestIsPropertyInitializedExecutable.java	2006-08-11 18:39:47 UTC (rev 10246)
@@ -1,48 +0,0 @@
-//$Id: $
-package org.hibernate.test.instrument.runtime;
-
-import org.hibernate.Session;
-import org.hibernate.Transaction;
-import org.hibernate.Hibernate;
-import org.hibernate.test.instrument.domain.Owner;
-import org.hibernate.test.instrument.domain.Document;
-import org.hibernate.test.instrument.domain.Folder;
-import junit.framework.Assert;
-
-/**
- * @author Steve Ebersole
- */
-public class TestIsPropertyInitializedExecutable extends AbstractExecutable {
-	public void execute() {
-		Session s = getFactory().openSession();
-		Transaction t = s.beginTransaction();
-		Owner o = new Owner();
-		Document doc = new Document();
-		Folder fol = new Folder();
-		o.setName("gavin");
-		doc.setName("Hibernate in Action");
-		doc.setSummary("blah");
-		doc.updateText("blah blah");
-		fol.setName("books");
-		doc.setOwner(o);
-		doc.setFolder(fol);
-		fol.getDocuments().add(doc);
-		Assert.assertTrue( Hibernate.isPropertyInitialized( doc, "summary" ) );
-		s.persist(o);
-		s.persist(fol);
-		t.commit();
-		s.close();
-
-		s = getFactory().openSession();
-		t = s.beginTransaction();
-		doc = (Document) s.get( Document.class, doc.getId() );
-		Assert.assertFalse( Hibernate.isPropertyInitialized( doc, "summary" ) );
-		Assert.assertFalse( Hibernate.isPropertyInitialized( doc, "upperCaseName" ) );
-		Assert.assertFalse( Hibernate.isPropertyInitialized( doc, "owner" ) );
-		s.delete(doc);
-		s.delete( doc.getOwner() );
-		s.delete( doc.getFolder() );
-		t.commit();
-		s.close();
-	}
-}

Deleted: trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/TestLazyExecutable.java
===================================================================
--- trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/TestLazyExecutable.java	2006-08-11 18:38:39 UTC (rev 10245)
+++ trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/TestLazyExecutable.java	2006-08-11 18:39:47 UTC (rev 10246)
@@ -1,197 +0,0 @@
-package org.hibernate.test.instrument.runtime;
-
-import org.hibernate.test.TestCase;
-import org.hibernate.test.instrument.runtime.AbstractExecutable;
-import org.hibernate.test.instrument.domain.Owner;
-import org.hibernate.test.instrument.domain.Document;
-import org.hibernate.test.instrument.domain.Folder;
-import org.hibernate.Session;
-import org.hibernate.Transaction;
-import org.hibernate.Hibernate;
-import org.hibernate.LockMode;
-import org.hibernate.CacheMode;
-import org.hibernate.SessionFactory;
-
-/**
- * @author Steve Ebersole
- */
-public class TestLazyExecutable extends AbstractExecutable {
-	public void execute() {
-		SessionFactory factory = getFactory();
-		Session s = factory.openSession();
-		Transaction t = s.beginTransaction();
-		Owner o = new Owner();
-		Document doc = new Document();
-		Folder fol = new Folder();
-		o.setName("gavin");
-		doc.setName("Hibernate in Action");
-		doc.setSummary("blah");
-		doc.updateText("blah blah");
-		fol.setName("books");
-		doc.setOwner(o);
-		doc.setFolder(fol);
-		fol.getDocuments().add(doc);
-		s.save(o);
-		s.save(fol);
-		t.commit();
-		s.close();
-
-		s = factory.openSession();
-		s.setCacheMode( CacheMode.IGNORE );
-		t = s.beginTransaction();
-		doc = ( Document ) s.get( Document.class, doc.getId() );
-		TestCase.assertTrue( Hibernate.isPropertyInitialized(doc, "weirdProperty"));
-		TestCase.assertTrue(Hibernate.isPropertyInitialized(doc, "name"));
-		TestCase.assertFalse(Hibernate.isPropertyInitialized(doc, "text"));
-		TestCase.assertFalse(Hibernate.isPropertyInitialized(doc, "upperCaseName"));
-		TestCase.assertFalse(Hibernate.isPropertyInitialized(doc, "folder"));
-		TestCase.assertFalse(Hibernate.isPropertyInitialized(doc, "owner"));
-		doc.getUpperCaseName();  // should force initialization
-		TestCase.assertTrue(Hibernate.isPropertyInitialized(doc, "text"));
-		TestCase.assertTrue(Hibernate.isPropertyInitialized(doc, "weirdProperty"));
-		TestCase.assertTrue(Hibernate.isPropertyInitialized(doc, "upperCaseName"));
-		TestCase.assertTrue(Hibernate.isPropertyInitialized(doc, "folder"));
-		TestCase.assertTrue(Hibernate.isPropertyInitialized(doc, "owner"));
-		t.commit();
-		s.close();
-
-		s = factory.openSession();
-		s.setCacheMode( CacheMode.IGNORE );
-		t = s.beginTransaction();
-		doc = (Document) s.createQuery("from Document").uniqueResult();
-		doc.getName();
-		TestCase.assertEquals( doc.getText(), "blah blah" );
-		t.commit();
-		s.close();
-
-		s = factory.openSession();
-		s.setCacheMode( CacheMode.IGNORE );
-		t = s.beginTransaction();
-		doc = (Document) s.createQuery("from Document").uniqueResult();
-		doc.getName();
-		TestCase.assertFalse(Hibernate.isPropertyInitialized(doc, "text"));
-		TestCase.assertFalse(Hibernate.isPropertyInitialized(doc, "summary"));
-		TestCase.assertEquals( doc.getText(), "blah blah" );
-		TestCase.assertTrue(Hibernate.isPropertyInitialized(doc, "text"));
-		TestCase.assertTrue(Hibernate.isPropertyInitialized(doc, "summary"));
-		t.commit();
-		s.close();
-
-		s = factory.openSession();
-		s.setCacheMode( CacheMode.IGNORE );
-		t = s.beginTransaction();
-		doc = (Document) s.createQuery("from Document").uniqueResult();
-		doc.setName("HiA");
-		t.commit();
-		s.close();
-
-		s = factory.openSession();
-		s.setCacheMode( CacheMode.IGNORE );
-		t = s.beginTransaction();
-		doc = (Document) s.createQuery("from Document").uniqueResult();
-		TestCase.assertEquals( doc.getName(), "HiA" );
-		TestCase.assertEquals( doc.getText(), "blah blah" );
-		t.commit();
-		s.close();
-
-		s = factory.openSession();
-		s.setCacheMode( CacheMode.IGNORE );
-		t = s.beginTransaction();
-		doc = (Document) s.createQuery("from Document").uniqueResult();
-		doc.getText();
-		doc.setName("HiA second edition");
-		t.commit();
-		s.close();
-
-		s = factory.openSession();
-		s.setCacheMode( CacheMode.IGNORE );
-		t = s.beginTransaction();
-		doc = (Document) s.createQuery("from Document").uniqueResult();
-		TestCase.assertTrue(Hibernate.isPropertyInitialized(doc, "weirdProperty"));
-		TestCase.assertTrue(Hibernate.isPropertyInitialized(doc, "name"));
-		TestCase.assertFalse(Hibernate.isPropertyInitialized(doc, "text"));
-		TestCase.assertFalse(Hibernate.isPropertyInitialized(doc, "upperCaseName"));
-		TestCase.assertFalse(Hibernate.isPropertyInitialized(doc, "owner"));
-		TestCase.assertEquals( doc.getName(), "HiA second edition" );
-		TestCase.assertEquals( doc.getText(), "blah blah" );
-		TestCase.assertEquals( doc.getUpperCaseName(), "HIA SECOND EDITION" );
-		TestCase.assertTrue(Hibernate.isPropertyInitialized(doc, "text"));
-		TestCase.assertTrue(Hibernate.isPropertyInitialized(doc, "weirdProperty"));
-		TestCase.assertTrue(Hibernate.isPropertyInitialized(doc, "upperCaseName"));
-		t.commit();
-		s.close();
-
-		s = factory.openSession();
-		s.setCacheMode( CacheMode.IGNORE );
-		t = s.beginTransaction();
-		doc = (Document) s.createQuery("from Document").uniqueResult();
-		t.commit();
-		s.close();
-
-		TestCase.assertFalse(Hibernate.isPropertyInitialized(doc, "text"));
-
-		s = factory.openSession();
-		s.setCacheMode( CacheMode.IGNORE );
-		t = s.beginTransaction();
-		s.lock(doc, LockMode.NONE);
-		TestCase.assertFalse(Hibernate.isPropertyInitialized(doc, "text"));
-		TestCase.assertEquals( doc.getText(), "blah blah" );
-		TestCase.assertTrue(Hibernate.isPropertyInitialized(doc, "text"));
-		t.commit();
-		s.close();
-
-		s = factory.openSession();
-		s.setCacheMode( CacheMode.IGNORE );
-		t = s.beginTransaction();
-		doc = (Document) s.createQuery("from Document").uniqueResult();
-		t.commit();
-		s.close();
-
-		doc.setName("HiA2");
-
-		TestCase.assertFalse(Hibernate.isPropertyInitialized(doc, "text"));
-
-		s = factory.openSession();
-		s.setCacheMode( CacheMode.IGNORE );
-		t = s.beginTransaction();
-		s.saveOrUpdate(doc);
-		s.flush();
-		TestCase.assertFalse(Hibernate.isPropertyInitialized(doc, "text"));
-		TestCase.assertEquals( doc.getText(), "blah blah" );
-		TestCase.assertTrue(Hibernate.isPropertyInitialized(doc, "text"));
-		doc.updateText("blah blah blah blah");
-		t.commit();
-		s.close();
-
-		s = factory.openSession();
-		s.setCacheMode( CacheMode.IGNORE );
-		t = s.beginTransaction();
-		doc = ( Document ) s.createQuery("from Document").uniqueResult();
-		TestCase.assertEquals( doc.getName(), "HiA2" );
-		TestCase.assertEquals( doc.getText(), "blah blah blah blah" );
-		t.commit();
-		s.close();
-
-		s = factory.openSession();
-		s.setCacheMode( CacheMode.IGNORE );
-		t = s.beginTransaction();
-		doc = (Document) s.load( Document.class, doc.getId() );
-		doc.getName();
-		TestCase.assertFalse(Hibernate.isPropertyInitialized(doc, "text"));
-		TestCase.assertFalse(Hibernate.isPropertyInitialized(doc, "summary"));
-		t.commit();
-		s.close();
-
-		s = factory.openSession();
-		s.setCacheMode( CacheMode.IGNORE );
-		t = s.beginTransaction();
-		doc = (Document) s.createQuery("from Document").uniqueResult();
-		//s.delete(doc);
-		s.delete( doc.getFolder() );
-		s.delete( doc.getOwner() );
-		s.flush();
-		t.commit();
-		s.close();
-	}
-
-}

Deleted: trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/TestLazyManyToOneExecutable.java
===================================================================
--- trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/TestLazyManyToOneExecutable.java	2006-08-11 18:38:39 UTC (rev 10245)
+++ trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/TestLazyManyToOneExecutable.java	2006-08-11 18:39:47 UTC (rev 10246)
@@ -1,73 +0,0 @@
-package org.hibernate.test.instrument.runtime;
-
-import org.hibernate.Session;
-import org.hibernate.Transaction;
-import org.hibernate.Hibernate;
-import org.hibernate.test.instrument.domain.Owner;
-import org.hibernate.test.instrument.domain.Document;
-import org.hibernate.test.instrument.domain.Folder;
-import junit.framework.Assert;
-
-/**
- * @author Steve Ebersole
- */
-public class TestLazyManyToOneExecutable extends AbstractExecutable {
-	public void execute() {
-		Session s = getFactory().openSession();
-		Transaction t = s.beginTransaction();
-		Owner gavin = new Owner();
-		Document hia = new Document();
-		Folder fol = new Folder();
-		gavin.setName("gavin");
-		hia.setName("Hibernate in Action");
-		hia.setSummary("blah");
-		hia.updateText("blah blah");
-		fol.setName("books");
-		hia.setOwner(gavin);
-		hia.setFolder(fol);
-		fol.getDocuments().add(hia);
-		s.persist(gavin);
-		s.persist(fol);
-		t.commit();
-		s.close();
-
-		s = getFactory().openSession();
-		t = s.beginTransaction();
-		hia = (Document) s.createCriteria(Document.class).uniqueResult();
-		Assert.assertEquals( hia.getFolder().getClass(), Folder.class);
-		fol = hia.getFolder();
-		Assert.assertTrue( Hibernate.isInitialized(fol) );
-		t.commit();
-		s.close();
-
-		s = getFactory().openSession();
-		t = s.beginTransaction();
-		hia = (Document) s.createCriteria(Document.class).uniqueResult();
-		Assert.assertSame( hia.getFolder(), s.load(Folder.class, fol.getId()) );
-		Assert.assertTrue( Hibernate.isInitialized( hia.getFolder() ) );
-		t.commit();
-		s.close();
-
-		s = getFactory().openSession();
-		t = s.beginTransaction();
-		fol = (Folder) s.get(Folder.class, fol.getId());
-		hia = (Document) s.createCriteria(Document.class).uniqueResult();
-		Assert.assertSame( fol, hia.getFolder() );
-		fol = hia.getFolder();
-		Assert.assertTrue( Hibernate.isInitialized(fol) );
-		t.commit();
-		s.close();
-
-		s = getFactory().openSession();
-		t = s.beginTransaction();
-		fol = (Folder) s.load(Folder.class, fol.getId());
-		hia = (Document) s.createCriteria(Document.class).uniqueResult();
-		Assert.assertNotSame( fol, hia.getFolder() );
-		fol = hia.getFolder();
-		Assert.assertTrue( Hibernate.isInitialized(fol) );
-		s.delete(hia.getFolder());
-		s.delete(hia.getOwner());
-		t.commit();
-		s.close();
-	}
-}




More information about the hibernate-commits mailing list