// ======================================================================== // Copyright (C) zeroth Project Team. All rights reserved. // GNU AFFERO GENERAL PUBLIC LICENSE Version 3, 19 November 2007 // http://www.gnu.org/licenses/agpl-3.0.txt // ======================================================================== package zeroth.framework.enterprise.domain; import static org.hamcrest.CoreMatchers.*; import static org.junit.Assert.*; import java.math.BigDecimal; import javax.enterprise.inject.Produces; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; import org.jboss.arquillian.transaction.api.annotation.Transactional; import org.jboss.shrinkwrap.api.spec.JavaArchive; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; /** * {@link AbstractPersistable} のユニットテスト * @author nilcy */ @RunWith(Arquillian.class) @Transactional @SuppressWarnings("all") public final class AbstractPersistableTest { private TestPersistable testee; @Produces @PersistenceContext(unitName = "primary") private EntityManager manager; @Deployment public static JavaArchive deployment() { return ArquillianDeployment.defaultDeployment(); } @Before public void before() { testee = new TestPersistable(); } @Test public void testAbstractReferenceObject() { assertThat(testee, is(not(nullValue()))); } @Test public void testGetSetId() { assertThat(testee.getId(), is(nullValue())); testee.setId(BigDecimal.valueOf(0L)); assertThat(testee.getId(), is(BigDecimal.valueOf(0L))); } @Test public void testSameIdentityAs() { final TestPersistable nullObject = null; assertThat(testee.sameIdentityAs(nullObject), is(false)); final TestPersistable other = new TestPersistable(); assertThat(testee.sameIdentityAs(other), is(true)); testee.setId(BigDecimal.valueOf(0L)); other.setId(BigDecimal.valueOf(0L)); assertThat(testee.sameIdentityAs(other), is(true)); testee.setId(BigDecimal.valueOf(0L)); other.setId(BigDecimal.valueOf(1L)); assertThat(testee.sameIdentityAs(other), is(false)); } @Test public void testIdentity() { assertThat(testee.identity(), is(nullValue())); testee.setId(BigDecimal.valueOf(0L)); assertThat(testee.identity(), is(BigDecimal.valueOf(0L))); } @Test public void testCallback() { assertThat(testee.isPersisted(), is(false)); manager.persist(testee); manager.flush(); assertThat(testee.isPersisted(), is(true)); for (final TestPersistable o : manager.createQuery("select e from TestPersistable e", TestPersistable.class).getResultList()) { assertThat(o.isPersisted(), is(true)); } } }