package kr.debop4j.data.ogm.test.hibernatecore; import kr.debop4j.data.ogm.test.simpleentity.OgmTestBase; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.ogm.hibernatecore.impl.OgmSession; import org.hibernate.ogm.hibernatecore.impl.OgmSessionFactory; import org.hibernate.ogm.hibernatecore.impl.OgmSessionFactoryObjectFactory; import org.junit.Assert; import org.junit.Test; import javax.naming.Reference; import static org.fest.assertions.Assertions.assertThat; /** * kr.debop4j.data.ogm.test.hibernatecore.HibernateCoreAPIWrappingTest * * @author 배성혁 ( sunghyouk.bae@gmail.com ) * @since 13. 4. 1 */ public class HibernateCoreAPIWrappingTest extends OgmTestBase { @Override protected Class<?>[] getAnnotatedClasses() { return new Class<?>[] { Contact.class }; } @Test public void testWrappedFromEntityManagerAPI() throws Exception { Session s = openSession(); Assert.assertTrue(sessions instanceof OgmSessionFactory); Assert.assertTrue(s instanceof OgmSession); Assert.assertTrue(s.getSessionFactory() instanceof OgmSessionFactory); s.close(); } @Test public void testJNDIReference() throws Exception { Session session = openSession(); Reference reference = sessions.getReference(); assertThat(reference.getClassName()).isEqualTo(OgmSessionFactory.class.getName()); assertThat(reference.getFactoryClassName()).isEqualTo(OgmSessionFactoryObjectFactory.class.getName()); assertThat(reference.get(0)).isNotNull(); assertThat(reference.getFactoryClassLocation()).isNull(); OgmSessionFactoryObjectFactory objFactory = new OgmSessionFactoryObjectFactory(); SessionFactory factoryFromRegistry = (SessionFactory) objFactory.getObjectInstance(reference, null, null, null); assertThat(factoryFromRegistry.getClass()).isEqualTo(OgmSessionFactory.class); assertThat(factoryFromRegistry.getReference()).isEqualTo(sessions.getReference()); session.close(); } }