package org.hibernate.examples.mapping.property.enumerated;
import lombok.extern.slf4j.Slf4j;
import org.hibernate.examples.AbstractJpaTest;
import org.junit.Test;
import org.springframework.transaction.annotation.Transactional;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import static org.assertj.core.api.Assertions.assertThat;
/**
* org.hibernate.examples.mapping.property.enumerated.EnumeratedEntityTest
*
* @author 배성혁 sunghyouk.bae@gmail.com
* @since 2013. 12. 3. 오후 2:01
*/
@Slf4j
@Transactional
public class EnumeratedEntityTest extends AbstractJpaTest {
@PersistenceContext
EntityManager em;
static EnumeratedEntity entity = new EnumeratedEntity();
@Test
public void enumerated() throws Exception {
entity.setIntValue(OrdinalEnum.Second);
entity.setStringValue(StringEnum.Integer);
em.persist(entity);
em.flush();
em.clear();
log.debug("load from database");
EnumeratedEntity loaded = em.find(EnumeratedEntity.class, entity.getId());
assertThat(loaded).isNotNull();
assertThat(loaded).isEqualTo(entity);
assertThat(loaded.getIntValue()).isEqualTo(OrdinalEnum.Second);
assertThat(loaded.getStringValue()).isEqualTo(StringEnum.Integer);
em.clear();
log.debug("load from cache");
loaded = em.find(EnumeratedEntity.class, entity.getId());
assertThat(loaded).isNotNull();
assertThat(loaded).isEqualTo(entity);
assertThat(loaded.getIntValue()).isEqualTo(OrdinalEnum.Second);
assertThat(loaded.getStringValue()).isEqualTo(StringEnum.Integer);
}
}