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:$
023: * --------------------------------------------------------------------------
024: */package org.ow2.easybeans.tests.entity;
025:
026: import static org.testng.Assert.assertNotNull;
027: import static org.testng.Assert.assertNull;
028:
029: import org.ow2.easybeans.tests.common.ejbs.entity.ebstore.EBStore;
030: import org.ow2.easybeans.tests.common.ejbs.stateless.containermanaged.entitymanager.ItfEntityManagerTester00;
031: import org.ow2.easybeans.tests.common.ejbs.stateless.containermanaged.entitymanager.SLSBEntityManagerTester00;
032: import org.ow2.easybeans.tests.common.helper.EJBHelper;
033: import org.testng.annotations.BeforeMethod;
034: import org.testng.annotations.Test;
035:
036: /**
037: * Verifies if the methods remove and persist from EntityManager are working
038: * properly. The items 3.2.1 e 3.2.2 (Persistence doc)
039: * @reference JSR 220-PROPOSED FINAL
040: * @requirement Application Server must be running; the bean
041: * SLSBEntityManagerTester must be deployed.
042: * @setup gets the reference of SLSBEntityManagerTester
043: * @author Gisele Pinheiro Souza
044: * @author Eduardo Studzinski Estima de Castro
045: */
046: public class TestEntityManager00 {
047:
048: /**
049: * The entity bean primary key that is used during the tests.
050: */
051: private static final int PRIMARY_KEY = 1;
052:
053: /**
054: * The entity bean name that is used during the tests.
055: */
056: private static final String ENTITY_NAME = "test";
057:
058: /**
059: * The statelles bean used to verify the EntityManager.
060: */
061: private ItfEntityManagerTester00 slsbEntityManagerTester;
062:
063: /**
064: * Creates the stateless bean used during the tests.
065: * @throws Exception if an error occurs during the lookup.
066: */
067: @BeforeMethod
068: public void setup() throws Exception {
069: slsbEntityManagerTester = EJBHelper.getBeanRemoteInstance(
070: SLSBEntityManagerTester00.class,
071: ItfEntityManagerTester00.class);
072: slsbEntityManagerTester.removeEBStore(PRIMARY_KEY);
073: }
074:
075: /**
076: * Tests if the EntityManager can persist a new entity.
077: * @input PRIMARY_KEY and ENTITY_NAME.
078: * @output the method execution without error.
079: */
080: @Test
081: public void createNewEntity() {
082: slsbEntityManagerTester.createEBStoreNew(PRIMARY_KEY,
083: ENTITY_NAME);
084: EBStore ebstore = slsbEntityManagerTester
085: .findEBStore(PRIMARY_KEY);
086: assertNotNull(ebstore,
087: "The entity was not inserted in the database");
088: }
089:
090: /**
091: * Tests if the EntityManager can persist a removed entity. The
092: * specification says that the bean must become managed.
093: * @input PRIMARY_KEY and ENTITY_NAME.
094: * @output the method execution without error.
095: */
096: @Test
097: public void createRemoved() {
098: slsbEntityManagerTester.createEBStoreRemoved(PRIMARY_KEY,
099: ENTITY_NAME);
100: EBStore ebstore = slsbEntityManagerTester
101: .findEBStore(PRIMARY_KEY);
102: assertNotNull(ebstore,
103: "The entity was not re-inserted in the database");
104: }
105:
106: /**
107: * Tests if the EntityManager can persist a managed entity. The
108: * specification says that the persist operation must be ignored.
109: * @input PRIMARY_KEY and ENTITY_NAME.
110: * @output the method execution without error.
111: */
112: @Test
113: public void createManaged() {
114: slsbEntityManagerTester.createEBStoreManaged(PRIMARY_KEY,
115: ENTITY_NAME);
116: EBStore ebstore = slsbEntityManagerTester
117: .findEBStore(PRIMARY_KEY);
118: assertNotNull(ebstore, "The persist operation was not ignored.");
119: }
120:
121: /**
122: * Tests if the EntityManager can remove a new entity. The specification
123: * says that the remove operation must be ignored.
124: * @input PRIMARY_KEY and ENTITY_NAME.
125: * @output the method execution without error.
126: */
127: @Test
128: public void removeNew() {
129: slsbEntityManagerTester.removeEBStoreNew(PRIMARY_KEY,
130: ENTITY_NAME);
131: EBStore ebstore = slsbEntityManagerTester
132: .findEBStore(PRIMARY_KEY);
133: assertNull(ebstore, "The remove operation was not ignored.");
134: }
135:
136: /**
137: * Tests if the EntityManager can remove a managed entity.
138: * @input PRIMARY_KEY and ENTITY_NAME.
139: * @output the method execution without error.
140: */
141: @Test
142: public void removeManaged() {
143: slsbEntityManagerTester.removeEBStoreManaged(PRIMARY_KEY,
144: ENTITY_NAME);
145: EBStore ebstore = slsbEntityManagerTester
146: .findEBStore(PRIMARY_KEY);
147: assertNull(ebstore, "The remove operation failed.");
148: }
149:
150: /**
151: * Tests if the EntityManager can remove a removed entity. The specification
152: * says that the remove operation must be ignored.
153: * @input PRIMARY_KEY and ENTITY_NAME.
154: * @output the method execution without error.
155: */
156: @Test
157: public void removeRemoved() {
158: slsbEntityManagerTester.removeEBStoreManaged(PRIMARY_KEY,
159: ENTITY_NAME);
160: EBStore ebstore = slsbEntityManagerTester
161: .findEBStore(PRIMARY_KEY);
162: assertNull(ebstore, "The remove operation was not ignored.");
163: }
164: }
|