001: /*
002: * Wilos Is a cLever process Orchestration Software - http://www.wilos-project.org
003: * Copyright (C) 2006-2007 Paul Sabatier University, IUP ISI (Toulouse, France) <massie@irit.fr>
004: * Copyright (C) 2007 Sebastien BALARD <sbalard@wilos-project.org>
005: *
006: * This program is free software; you can redistribute it and/or modify it under the terms of the GNU
007: * General Public License as published by the Free Software Foundation; either version 2 of the License,
008: * or (at your option) any later version.
009: *
010: * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
011: * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
012: * GNU General Public License for more details.
013: *
014: * You should have received a copy of the GNU General Public License along with this program; if not,
015: * write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
016: */
017:
018: package wilos.test.business.services.spem2.guide;
019:
020: import static org.junit.Assert.assertEquals;
021: import static org.junit.Assert.assertNotNull;
022:
023: import java.util.List;
024: import java.util.Set;
025:
026: import org.junit.After;
027: import org.junit.Before;
028: import org.junit.Test;
029:
030: import wilos.business.services.spem2.activity.ActivityService;
031: import wilos.business.services.spem2.guide.GuidanceService;
032: import wilos.hibernate.spem2.role.RoleDefinitionDao;
033: import wilos.hibernate.spem2.task.TaskDefinitionDao;
034: import wilos.model.spem2.activity.Activity;
035: import wilos.model.spem2.guide.Guidance;
036: import wilos.model.spem2.role.RoleDefinition;
037: import wilos.model.spem2.task.TaskDefinition;
038: import wilos.test.TestConfiguration;
039:
040: public class GuidanceServiceTest {
041:
042: private GuidanceService guidanceService = (GuidanceService) TestConfiguration
043: .getInstance().getApplicationContext().getBean(
044: "GuidanceService");
045:
046: private ActivityService activityService = (ActivityService) TestConfiguration
047: .getInstance().getApplicationContext().getBean(
048: "ActivityService");
049:
050: private TaskDefinitionDao taskDefinitionDao = (TaskDefinitionDao) TestConfiguration
051: .getInstance().getApplicationContext().getBean(
052: "TaskDefinitionDao");
053:
054: private RoleDefinitionDao roleDefinitionDao = (RoleDefinitionDao) TestConfiguration
055: .getInstance().getApplicationContext().getBean(
056: "RoleDefinitionDao");
057:
058: private Guidance guidance;
059:
060: private String guidanceId;
061:
062: private Activity activity;
063:
064: private RoleDefinition roleDefinition;
065:
066: private TaskDefinition taskDefinition;
067:
068: @Before
069: public void setUp() {
070:
071: this .roleDefinition = new RoleDefinition();
072: this .roleDefinition.setName("My name");
073: this .roleDefinitionDao
074: .saveOrUpdateRoleDefinition(this .roleDefinition);
075:
076: this .taskDefinition = new TaskDefinition();
077: this .taskDefinition.setName("My name");
078: this .taskDefinitionDao
079: .saveOrUpdateTaskDefinition(this .taskDefinition);
080:
081: this .activity = new Activity();
082: this .activity.setName("My name");
083: this .activityService.saveActivity(this .activity);
084:
085: this .guidance = new Guidance();
086: this .guidance.setGuid("my guid");
087: }
088:
089: @After
090: public void tearDown() {
091: this .taskDefinitionDao
092: .deleteTaskDefinition(this .taskDefinition);
093: this .roleDefinitionDao
094: .deleteRoleDefinition(this .roleDefinition);
095: this .activityService.deleteActivity(this .activity);
096: this .roleDefinition = null;
097: this .taskDefinition = null;
098: this .guidance = null;
099: }
100:
101: @Test
102: public void testStorageOfARoleDescriptorInATransaction() {
103:
104: this .guidance.addRoleDefinition(this .roleDefinition);
105: this .guidance.addTaskDefinition(this .taskDefinition);
106: this .guidance.addActivity(this .activity);
107: this .guidanceId = this .guidanceService
108: .saveGuidance(this .guidance);
109: this .taskDefinitionDao
110: .saveOrUpdateTaskDefinition(this .taskDefinition);
111: this .roleDefinitionDao
112: .saveOrUpdateRoleDefinition(this .roleDefinition);
113: this .activityService.saveActivity(this .activity);
114:
115: Guidance retrievedRd = this .guidanceService
116: .getGuidance(this .guidanceId);
117: assertNotNull("not null", retrievedRd);
118:
119: Set<TaskDefinition> taskDefinitions = this .guidanceService
120: .getTaskDefinitions(retrievedRd);
121: assertEquals("size of taskDefinitions", 1, taskDefinitions
122: .size());
123:
124: Set<RoleDefinition> roleDefinitions = this .guidanceService
125: .getRoleDefinitions(retrievedRd);
126: assertEquals("size of roleDefinitions", 1, roleDefinitions
127: .size());
128:
129: Set<Activity> activities = this .guidanceService
130: .getActivities(retrievedRd);
131: assertEquals("size of activities", 1, activities.size());
132:
133: this .guidance.removeRoleDefinition(this .roleDefinition);
134: this .guidance.removeTaskDefinition(this .taskDefinition);
135: this .guidance.removeActivity(this .activity);
136:
137: this .taskDefinitionDao
138: .saveOrUpdateTaskDefinition(this .taskDefinition);
139: this .roleDefinitionDao
140: .saveOrUpdateRoleDefinition(this .roleDefinition);
141: this .activityService.saveActivity(this .activity);
142: this .guidanceService.saveGuidance(this .guidance);
143:
144: this .guidanceService.deleteGuidance(this .guidance);
145: }
146:
147: @Test
148: public void testThatAllGuidancesAreRetrieved() {
149:
150: int nb = this .guidanceService.getAllGuidances().size();
151:
152: this .guidance.addRoleDefinition(this .roleDefinition);
153: this .guidance.addTaskDefinition(this .taskDefinition);
154: this .guidance.addActivity(this .activity);
155: this .guidanceId = this .guidanceService
156: .saveGuidance(this .guidance);
157: this .taskDefinitionDao
158: .saveOrUpdateTaskDefinition(this .taskDefinition);
159: this .roleDefinitionDao
160: .saveOrUpdateRoleDefinition(this .roleDefinition);
161: this .activityService.saveActivity(this .activity);
162:
163: Guidance g1 = new Guidance();
164: g1.setName("Your name");
165: this .guidanceService.saveGuidance(g1);
166:
167: Guidance g2 = new Guidance();
168: g2.setName("Its name");
169: this .guidanceService.saveGuidance(g2);
170:
171: List<Guidance> guidances = this .guidanceService
172: .getAllGuidances();
173: assertNotNull("not null", guidances);
174: assertEquals("number of guidances", 3, guidances.size() - nb);
175:
176: this.guidance.removeRoleDefinition(this.roleDefinition);
177: this.guidance.removeTaskDefinition(this.taskDefinition);
178: this.guidance.removeActivity(this.activity);
179:
180: this.taskDefinitionDao
181: .saveOrUpdateTaskDefinition(this.taskDefinition);
182: this.roleDefinitionDao
183: .saveOrUpdateRoleDefinition(this.roleDefinition);
184: this.activityService.saveActivity(this.activity);
185:
186: this.guidanceService.deleteGuidance(this.guidance);
187: }
188:
189: }
|