001: /**
002: * EasyBeans
003: * Copyright (C) 2006 Bull S.A.S.
004: * Contact: easybeans@ow2.org
005: *
006: * This library is free software; you can redistribute it and/or
007: * modify it under the terms of the GNU Lesser General Public
008: * License as published by the Free Software Foundation; either
009: * version 2.1 of the License, or any later version.
010: *
011: * This library is distributed in the hope that it will be useful,
012: * but WITHOUT ANY WARRANTY; without even the implied warranty of
013: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
014: * Lesser General Public License for more details.
015: *
016: * You should have received a copy of the GNU Lesser General Public
017: * License along with this library; if not, write to the Free Software
018: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
019: * USA
020: *
021: * --------------------------------------------------------------------------
022: * $Id: BasePCtxLifetimeCM00.java 1970 2007-10-16 11:49:25Z benoitf $
023: * --------------------------------------------------------------------------
024: */package org.ow2.easybeans.tests.common.ejbs.base.persistencectxlife;
025:
026: import static org.testng.Assert.assertFalse;
027: import static org.testng.Assert.assertTrue;
028:
029: import javax.ejb.TransactionAttribute;
030: import javax.ejb.TransactionAttributeType;
031: import javax.persistence.EntityManager;
032:
033: import org.ow2.easybeans.tests.common.ejbs.entity.ebstore.EBStore;
034:
035: /**
036: * @author Eduardo Studzinski Estima de Castro
037: * @author Gisele Pinheiro Souza
038: */
039: public class BasePCtxLifetimeCM00 implements ItfPCtxLifetime00 {
040:
041: /**
042: * Manager.
043: */
044: private EntityManager em;
045:
046: /**
047: * Hashcode.
048: */
049: private int id = this .hashCode();
050:
051: /**
052: * Entity.
053: */
054: private EBStore eb;
055:
056: /**
057: * @see org.ow2.easybeans.tests.common.ejbs.base.persistencectxlife.ItfPCtxLifetime00
058: * @param em instance
059: */
060: public void initEntityManager(final EntityManager em) {
061: this .em = em;
062: }
063:
064: /**
065: * @see org.ow2.easybeans.tests.common.ejbs.base.persistencectxlife.ItfPCtxLifetime00
066: * @param id entity id
067: */
068: public void setEntityID(final int id) {
069: this .id = id;
070: }
071:
072: /**
073: * @see org.ow2.easybeans.tests.common.ejbs.base.persistencectxlife.ItfPCtxLifetime00
074: */
075: @SuppressWarnings("boxing")
076: @TransactionAttribute(TransactionAttributeType.REQUIRED)
077: public void createCheckEntity00() {
078: eb = new EBStore(id);
079: em.persist(eb);
080:
081: assertTrue(em.contains(eb),
082: "The entity instance should be managed.");
083:
084: EBStore ebFind = em.find(EBStore.class, id);
085:
086: assertTrue(ebFind == eb,
087: "The entity instances should be equals, "
088: + "they are in the same persistence context.");
089: }
090:
091: /**
092: * @see org.ow2.easybeans.tests.common.ejbs.base.persistencectxlife.ItfPCtxLifetime00
093: */
094: @SuppressWarnings("boxing")
095: @TransactionAttribute(TransactionAttributeType.NEVER)
096: public void createCheckEntity01() {
097: eb = new EBStore(id);
098: em.persist(eb);
099:
100: assertFalse(em.contains(eb),
101: "The entity instance should be detached.");
102: }
103:
104: /**
105: * Checks if an entity is contained in the entity manager.
106: * @return true if exists
107: */
108: @SuppressWarnings("boxing")
109: @TransactionAttribute(TransactionAttributeType.MANDATORY)
110: public boolean containsEntity() {
111: return em.contains(eb);
112: }
113:
114: /**
115: * Checks if an entity exists.
116: * @return true if exists
117: */
118: @SuppressWarnings("boxing")
119: @TransactionAttribute(TransactionAttributeType.NEVER)
120: public boolean existsEntity() {
121: return em.find(EBStore.class, id) != null;
122: }
123:
124: /**
125: * @see org.ow2.easybeans.tests.common.ejbs.base.persistencectxlife.ItfPCtxLifetime00
126: */
127: @SuppressWarnings("boxing")
128: @TransactionAttribute(TransactionAttributeType.REQUIRED)
129: public void checkManaged() {
130: assertTrue(em.contains(eb),
131: "The entity instance should be managed.");
132:
133: EBStore ebFind = em.find(EBStore.class, id);
134:
135: assertTrue(ebFind == eb,
136: "The entity instances should be equals, "
137: + "they are in the same persistence context.");
138: }
139:
140: /**
141: * @see org.ow2.easybeans.tests.common.ejbs.base.persistencectxlife.ItfPCtxLifetime00
142: */
143: @SuppressWarnings("boxing")
144: @TransactionAttribute(TransactionAttributeType.REQUIRED)
145: public void checkDetached() {
146: assertFalse(em.contains(eb),
147: "The entity instance should be detached.");
148: }
149:
150: /**
151: * @see org.ow2.easybeans.tests.common.ejbs.base.persistencectxlife.ItfPCtxLifetime00
152: */
153: @SuppressWarnings("boxing")
154: @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
155: public void removeEntity() {
156: EBStore ebFind = em.find(EBStore.class, id);
157: if (ebFind != null) {
158: em.remove(ebFind);
159: }
160: }
161:
162: /**
163: * @see org.ow2.easybeans.tests.common.ejbs.base.persistencectxlife.ItfPCtxLifetime00
164: */
165: public void initEntityManager() {
166: //Must be overrided.
167: }
168:
169: /**
170: * @see org.ow2.easybeans.tests.common.ejbs.base.persistencectxlife.ItfPCtxLifetime00
171: */
172: public void persistEntity() {
173: em.persist(eb);
174: }
175: }
|