/*
* Hibernate, Relational Persistence for Idiomatic Java
*
* License: GNU Lesser General Public License (LGPL), version 2.1 or later.
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
*/
package org.hibernate.test.bytecode.enhancement.basic;
import java.net.URL;
import java.net.URLClassLoader;
import org.hibernate.Session;
import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
import org.hibernate.testing.bytecode.enhancement.EnhancerTestUtils;
import org.junit.Assert;
import org.junit.Test;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertSame;
/**
* @author Steve Ebersole
*/
public class BasicInSessionTest extends BaseCoreFunctionalTestCase {
@Override
protected Class<?>[] getAnnotatedClasses() {
return new Class[] {MyEntity.class};
}
@Test
public void testIt() {
Session s = openSession();
s.beginTransaction();
s.save( new MyEntity( 1L ) );
s.save( new MyEntity( 2L ) );
s.getTransaction().commit();
s.close();
s = openSession();
s.beginTransaction();
MyEntity myEntity1 = s.get( MyEntity.class, 1L );
MyEntity myEntity2 = s.get( MyEntity.class, 2L );
assertNotNull( myEntity1.$$_hibernate_getEntityInstance() );
assertSame( myEntity1, myEntity1.$$_hibernate_getEntityInstance() );
assertNotNull( myEntity1.$$_hibernate_getEntityEntry() );
assertNull( myEntity1.$$_hibernate_getPreviousManagedEntity() );
assertNotNull( myEntity1.$$_hibernate_getNextManagedEntity() );
assertNotNull( myEntity2.$$_hibernate_getEntityInstance() );
assertSame( myEntity2, myEntity2.$$_hibernate_getEntityInstance() );
assertNotNull( myEntity2.$$_hibernate_getEntityEntry() );
assertNotNull( myEntity2.$$_hibernate_getPreviousManagedEntity() );
assertNull( myEntity2.$$_hibernate_getNextManagedEntity() );
s.createQuery( "delete MyEntity" ).executeUpdate();
s.getTransaction().commit();
s.close();
assertNull( myEntity1.$$_hibernate_getEntityEntry() );
}
@Test
public void enhacementTest() {
try {
EnhancerTestUtils.enhanceAndDecompile( SimpleEntity.class, new URLClassLoader( new URL[0] ) );
}
catch (Exception e) {
e.printStackTrace();
Assert.fail( "Unexpected exception in EnhancerTestUtils.enhanceAndDecompile(): " + e.getMessage() );
}
}
}