package kr.debop4j.data.ogm.test.id; import kr.debop4j.data.ogm.test.utils.jpa.JpaTestBase; import lombok.extern.slf4j.Slf4j; import org.junit.Test; import javax.persistence.EntityManager; import static org.fest.assertions.Assertions.assertThat; /** * kr.debop4j.data.ogm.test.id.IdentityIdGeneratorTest * * @author 배성혁 ( sunghyouk.bae@gmail.com ) * @since 13. 4. 2. 오후 4:06 */ @Slf4j public class IdentityIdGeneratorTest extends JpaTestBase { @Override public Class<?>[] getEntities() { return new Class<?>[] { Animal.class }; } @Test public void testIdentityGenerator() throws Exception { getTransactionManager().begin(); final EntityManager em = getFactory().createEntityManager(); Animal jungleKing = new Animal(); Animal fish = new Animal(); boolean ok = false; try { jungleKing.setName("Lion"); jungleKing.setSpecies("Mammal"); em.persist(jungleKing); fish.setName("Shark"); fish.setSpecies("Tiger Shark"); em.persist(fish); ok = true; } finally { commitOrRollback(ok); } em.clear(); getTransactionManager().begin(); ok = false; try { Animal animal = em.find(Animal.class, jungleKing.getId()); assertThat(animal).isNotNull(); assertThat(animal.getId()).isEqualTo(1); assertThat(animal.getName()).isEqualTo("Lion"); em.remove(animal); animal = em.find(Animal.class, fish.getId()); assertThat(animal).isNotNull(); assertThat(animal.getId()).isEqualTo(2); assertThat(animal.getName()).isEqualTo("Shark"); em.remove(animal); ok = true; } finally { commitOrRollback(ok); } em.close(); } }