KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > hero > client > test > EngineTests


1 package hero.client.test;
2
3 /*
4 *
5 * EngineTest.java -
6 * Copyright (C) 2003 Ecoo Team
7 * valdes@loria.fr
8 *
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU Lesser General Public License
12 * as published by the Free Software Foundation; either version 2
13 * of the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU Lesser General Public License for more details.
19 *
20 * You should have received a copy of the GNU Lesser General Public License
21 * along with this program; if not, write to the Free Software
22 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
23 */

24
25 import hero.interfaces.BnEdgeValue;
26 import hero.interfaces.BnNodeValue;
27 import hero.interfaces.BnProjectValue;
28 import hero.interfaces.Constants;
29 import hero.interfaces.Engine;
30 import hero.interfaces.EngineHome;
31 import hero.interfaces.EngineUtil;
32 import hero.interfaces.ProjectSession;
33 import hero.interfaces.ProjectSessionHome;
34 import hero.interfaces.ProjectSessionUtil;
35 import hero.util.EngineException;
36 import hero.util.HeroException;
37 import junit.framework.TestCase;
38 import junit.framework.TestSuite;
39
40 public class EngineTests extends TestCase {
41     private ProjectSessionHome psh;
42     private ProjectSession ps;
43     private EngineHome eh;
44     private Engine eng;
45
46     public EngineTests(String JavaDoc testname) {
47         super(testname);
48     }
49
50     public static TestSuite suite() {
51         return new TestSuite(EngineTests.class);
52     }
53
54     public void setUp() throws Exception JavaDoc {
55         psh = ProjectSessionUtil.getHome();
56         eh = EngineUtil.getHome();
57     }
58
59     public void testEngineAND() throws Exception JavaDoc {
60         ProjectSession proj;
61         BnProjectValue pm;
62         BnNodeValue nd;
63         BnEdgeValue ev;
64
65         // creation du projet
66
proj = psh.create();
67         proj.initProject("work");
68         proj.addNode("init", Constants.Nd.AND_JOIN_NODE);
69         proj.addNode("sp1", Constants.Nd.AND_JOIN_AUTOMATIC_NODE);
70         proj.addNode("ac1", Constants.Nd.AND_JOIN_NODE);
71         proj.addNode("ac2", Constants.Nd.AND_JOIN_NODE);
72         proj.addNode("jn1", Constants.Nd.AND_JOIN_AUTOMATIC_NODE);
73         proj.addNode("ac3", Constants.Nd.AND_JOIN_NODE);
74         String JavaDoc e1 = proj.addEdge("init", "sp1");
75         String JavaDoc e2 = proj.addEdge("sp1", "ac1");
76         String JavaDoc e3 = proj.addEdge("sp1", "ac2");
77         String JavaDoc e4 = proj.addEdge("ac1", "jn1");
78         String JavaDoc e5 = proj.addEdge("ac2", "jn1");
79         String JavaDoc e6 = proj.addEdge("jn1", "ac3");
80         proj.addRole("test", "testeur");
81         proj.setUserRole("admin", "test");
82
83         eng = eh.create();
84
85         try {
86             eng.startActivity("work","ac1");
87             assertTrue("start ac1 should have failed", false);
88         } catch (EngineException e) {
89             // normal behavior
90
}
91
92         try {
93             eng.terminateActivity("work","init");
94             assertTrue("terminate init should have failed", false);
95         } catch (EngineException e) {
96             // normal behavior
97
}
98
99         eng.startActivity("work","init");
100         proj = psh.create();
101         proj.initProject("work");
102
103         assertTrue("BnNode State Error init",proj.getNodeValue("init").getState() == Constants.Nd.EXECUTING);
104         assertTrue("BnEdge State Error e1",proj.getEdgeValue(e1).getState() == Constants.Ed.ANTICIPATING);
105         assertTrue("BnNode State Error sp1",proj.getNodeValue("sp1").getState() == Constants.Nd.ANTICIPATING);
106         assertTrue("BnEdge State Error e2",proj.getEdgeValue(e2).getState() == Constants.Ed.ANTICIPATING);
107         assertTrue("BnNode State Error ac1",proj.getNodeValue("ac1").getState() == Constants.Nd.ANTICIPABLE);
108         assertTrue("BnEdge State Error e3",proj.getEdgeValue(e3).getState() == Constants.Ed.ANTICIPATING);
109         assertTrue("BnNode State Error ac2",proj.getNodeValue("ac2").getState() == Constants.Nd.ANTICIPABLE);
110         assertTrue("BnEdge State Error e4",proj.getEdgeValue(e4).getState() == Constants.Ed.INITIAL);
111         assertTrue("BnEdge State Error e5", proj.getEdgeValue(e5).getState() == Constants.Ed.INITIAL);
112         assertTrue("BnNode State Error jn1",proj.getNodeValue("jn1").getState() == Constants.Nd.INITIAL);
113         assertTrue( "BnEdge State Error e6",proj.getEdgeValue(e6).getState() == Constants.Ed.INITIAL);
114         assertTrue("BnNode State Error ac3",proj.getNodeValue("ac3").getState() == Constants.Nd.INITIAL);
115
116         try {
117             eng.terminateActivity("work","sp1");
118             assertTrue("terminate sp1 should have failed", false);
119         } catch (EngineException e) {
120             // normal behavior
121
}
122
123         eng.terminateActivity("work","init");
124
125         assertTrue("BnNode State Error Term init",proj.getNodeValue("init").getState() == Constants.Nd.TERMINATED);
126         assertTrue("BnEdge State Error Term e1", proj.getEdgeValue(e1).getState() == Constants.Ed.ACTIVE);
127         assertTrue("BnNode State Error Term sp1",proj.getNodeValue("sp1").getState() == Constants.Nd.TERMINATED);
128         assertTrue("BnEdge State Error e2",proj.getEdgeValue(e2).getState() == Constants.Ed.ACTIVE);
129         assertTrue("BnNode State Error ac1",proj.getNodeValue("ac1").getState() == Constants.Nd.READY);
130         assertTrue("BnEdge State Error e3",proj.getEdgeValue(e3).getState() == Constants.Ed.ACTIVE);
131         assertTrue("BnNode State Error ac2",proj.getNodeValue("ac2").getState() == Constants.Nd.READY);
132         assertTrue("BnEdge State Error e4",proj.getEdgeValue(e4).getState() == Constants.Ed.INITIAL);
133         assertTrue("BnEdge State Error e5",proj.getEdgeValue(e5).getState() == Constants.Ed.INITIAL);
134         assertTrue("BnNode State Error jn1",proj.getNodeValue("jn1").getState() == Constants.Nd.INITIAL);
135         assertTrue("BnEdge State Error e6",proj.getEdgeValue(e6).getState() == Constants.Ed.INITIAL);
136         assertTrue("BnNode State Error ac3",proj.getNodeValue("ac3").getState() == Constants.Nd.INITIAL);
137
138         eng.startActivity("work","ac1");
139
140         assertTrue("BnNode State Error start ac1 : init",proj.getNodeValue("init").getState() == Constants.Nd.TERMINATED);
141         assertTrue("BnEdge State Error start ac1 : e1",proj.getEdgeValue(e1).getState() == Constants.Ed.ACTIVE);
142         assertTrue("BnNode State Error start ac1 : sp1",proj.getNodeValue("sp1").getState() == Constants.Nd.TERMINATED);
143         assertTrue("BnEdge State Error start ac1 : e2",proj.getEdgeValue(e2).getState() == Constants.Ed.ACTIVE);
144         assertTrue("BnNode State Error start ac1 : ac1",proj.getNodeValue("ac1").getState() == Constants.Nd.EXECUTING);
145         assertTrue("BnEdge State Error start ac1 : e3",proj.getEdgeValue(e3).getState() == Constants.Ed.ACTIVE);
146         assertTrue("BnNode State Error start ac1 : ac2",proj.getNodeValue("ac2").getState() == Constants.Nd.READY);
147         assertTrue("BnEdge State Error start ac1 : e4",proj.getEdgeValue(e4).getState() == Constants.Ed.ANTICIPATING);
148         assertTrue("BnEdge State Error start ac1 : e5",proj.getEdgeValue(e5).getState() == Constants.Ed.INITIAL);
149         assertTrue("BnNode State Error start ac1 : jn1",proj.getNodeValue("jn1").getState() == Constants.Nd.INITIAL);
150         assertTrue("BnEdge State Error start ac1 : e6",proj.getEdgeValue(e6).getState() == Constants.Ed.INITIAL);
151         assertTrue("BnNode State Error start ac1 : ac3",proj.getNodeValue("ac3").getState() == Constants.Nd.INITIAL);
152
153         eng.startActivity("work","ac2");
154
155         assertTrue("BnNode State Error start ac2 : init",proj.getNodeValue("init").getState()== Constants.Nd.TERMINATED);
156         assertTrue("BnEdge State Error start ac2 : e1",proj.getEdgeValue(e1).getState() == Constants.Ed.ACTIVE);
157         assertTrue("BnNode State Error start ac2 : sp1",proj.getNodeValue("sp1").getState()== Constants.Nd.TERMINATED);
158         assertTrue("BnEdge State Error start ac2 : e2", proj.getEdgeValue(e2).getState()== Constants.Ed.ACTIVE);
159         assertTrue("BnNode State Error start ac2 : ac1",proj.getNodeValue("ac1").getState() == Constants.Nd.EXECUTING);
160         assertTrue("BnEdge State Error start ac2 : e3",proj.getEdgeValue(e3).getState() == Constants.Ed.ACTIVE);
161         assertTrue("BnNode State Error start ac2 : ac2",proj.getNodeValue("ac2").getState() == Constants.Nd.EXECUTING);
162         assertTrue("BnEdge State Error start ac2 : e4",proj.getEdgeValue(e4).getState() == Constants.Ed.ANTICIPATING);
163         assertTrue("BnEdge State Error start ac2 : e5",proj.getEdgeValue(e5).getState() == Constants.Ed.ANTICIPATING);
164         assertTrue("BnNode State Error start ac2 : jn1",proj.getNodeValue("jn1").getState() == Constants.Nd.ANTICIPATING);
165         assertTrue("BnEdge State Error start ac2 : e6", proj.getEdgeValue(e6).getState() == Constants.Ed.ANTICIPATING);
166         assertTrue("BnNode State Error start ac2 : ac3",proj.getNodeValue("ac3").getState() == Constants.Nd.ANTICIPABLE);
167
168         eng.startActivity("work","ac3");
169
170         try {
171             eng.terminate("work");
172             assertTrue("should have failed", false);
173         } catch (HeroException h) {
174             // normal behavior
175
}
176
177         assertTrue("BnNode State Error start ac3 : init",proj.getNodeValue("init").getState() == Constants.Nd.TERMINATED);
178         assertTrue("BnEdge State Error start ac3 : e1",proj.getEdgeValue(e1).getState() == Constants.Ed.ACTIVE);
179         assertTrue("BnNode State Error start ac3 : sp1",proj.getNodeValue("sp1").getState() == Constants.Nd.TERMINATED);
180         assertTrue("BnEdge State Error start ac3 : e2",proj.getEdgeValue(e2).getState() == Constants.Ed.ACTIVE);
181         assertTrue("BnNode Value Error start ac3 : ac1",proj.getNodeValue("ac1").getState() == Constants.Nd.EXECUTING);
182         assertTrue("BnEdge Value Error start ac3 : e3", proj.getEdgeValue(e3).getState() == Constants.Ed.ACTIVE);
183         assertTrue("BnNode Value Error start ac3 : ac2",proj.getNodeValue("ac2").getState() == Constants.Nd.EXECUTING);
184         assertTrue("BnEdge Value Error start ac3 : e4", proj.getEdgeValue(e4).getState() == Constants.Ed.ANTICIPATING);
185         assertTrue("BnEdge Value Error start ac3 : e5", proj.getEdgeValue(e5).getState() == Constants.Ed.ANTICIPATING);
186         assertTrue("BnNode Value Error start ac3 : jn1",proj.getNodeValue("jn1").getState() == Constants.Nd.ANTICIPATING);
187         assertTrue("BnEdge Value Error start ac3 : e6", proj.getEdgeValue(e6).getState() == Constants.Ed.ANTICIPATING);
188         assertTrue("BnNode Value Error start ac3 : ac3",proj.getNodeValue("ac3").getState() == Constants.Nd.ANTICIPATING);
189
190         try {
191             eng.terminateActivity("work","ac3");
192             assertTrue("terminate ac3 should have failed", false);
193         } catch (EngineException e) {
194             // normal behavior
195
}
196
197         eng.terminateActivity("work","ac1");
198
199         assertTrue("BnNode Value Error terminate ac1 : init",proj.getNodeValue("init").getState() == Constants.Nd.TERMINATED);
200         assertTrue("BnEdge Value Error terminate ac1 : e1", proj.getEdgeValue(e1).getState() == Constants.Ed.ACTIVE);
201         assertTrue("BnNode Value Error terminate ac1 : sp1",proj.getNodeValue("sp1").getState() == Constants.Nd.TERMINATED);
202         assertTrue("BnEdge Value Error terminate ac1 : e2", proj.getEdgeValue(e2).getState() == Constants.Ed.ACTIVE);
203         assertTrue("BnNode Value Error terminate ac1 : ac1",proj.getNodeValue("ac1").getState() == Constants.Nd.TERMINATED);
204         assertTrue("BnEdge Value Error terminate ac1 : e3", proj.getEdgeValue(e3).getState() == Constants.Ed.ACTIVE);
205         assertTrue("BnNode Value Error terminate ac1 : ac2",proj.getNodeValue("ac2").getState() == Constants.Nd.EXECUTING);
206         assertTrue("BnEdge Value Error terminate ac1 : e4", proj.getEdgeValue(e4).getState() == Constants.Ed.ACTIVE);
207         assertTrue("BnEdge Value Error terminate ac1 : e5", proj.getEdgeValue(e5).getState() == Constants.Ed.ANTICIPATING);
208         assertTrue("BnNode Value Error terminate ac1 : jn1",proj.getNodeValue("jn1").getState() == Constants.Nd.ANTICIPATING);
209         assertTrue("BnEdge Value Error terminate ac1 : e6", proj.getEdgeValue(e6).getState() == Constants.Ed.ANTICIPATING);
210         assertTrue("BnNode Value Error terminate ac1 : ac3",proj.getNodeValue("ac3").getState() == Constants.Nd.ANTICIPATING);
211
212         eng.terminateActivity("work","ac2");
213
214         assertTrue("BnNode Value Error terminate ac2 : init",proj.getNodeValue("init").getState() == Constants.Nd.TERMINATED);
215         assertTrue("BnEdge Value Error terminate ac2 : e1", proj.getEdgeValue(e1).getState() == Constants.Ed.ACTIVE);
216         assertTrue("BnNode Value Error terminate ac2 : sp1",proj.getNodeValue("sp1").getState() == Constants.Nd.TERMINATED);
217         assertTrue("BnEdge Value Error terminate ac2 : e2", proj.getEdgeValue(e2).getState() == Constants.Ed.ACTIVE);
218         assertTrue("BnNode Value Error terminate ac2 : ac1",proj.getNodeValue("ac1").getState() == Constants.Nd.TERMINATED);
219         assertTrue("BnEdge Value Error terminate ac2 : e3", proj.getEdgeValue(e3).getState() == Constants.Ed.ACTIVE);
220         assertTrue("BnNode Value Error terminate ac2 : ac2",proj.getNodeValue("ac2").getState() == Constants.Nd.TERMINATED);
221         assertTrue("BnEdge Value Error terminate ac2 : e4",proj.getEdgeValue(e4).getState() == Constants.Ed.ACTIVE);
222         assertTrue("BnEdge Value Error terminate ac2 : e5", proj.getEdgeValue(e5).getState() == Constants.Ed.ACTIVE);
223         assertTrue("BnNode Value Error terminate ac2 : jn1",proj.getNodeValue("jn1").getState() == Constants.Nd.TERMINATED);
224         assertTrue("BnEdge Value Error terminate ac2 : e6", proj.getEdgeValue(e6).getState() == Constants.Ed.ACTIVE);
225         assertTrue("BnNode Value Error terminate ac2 : ac3",proj.getNodeValue("ac3").getState() == Constants.Nd.EXECUTING);
226
227         eng.terminateActivity("work","ac3");
228
229         assertTrue("BnNode Value Error terminate ac2 : init",proj.getNodeValue("init").getState() == Constants.Nd.TERMINATED);
230         assertTrue("BnEdge Value Error terminate ac2 : e1",proj.getEdgeValue(e1).getState() == Constants.Ed.ACTIVE);
231         assertTrue("BnNode Value Error terminate ac2 : sp1", proj.getNodeValue("sp1").getState() == Constants.Nd.TERMINATED);
232         assertTrue("BnEdge Value Error terminate ac2 : e2",proj.getEdgeValue(e2).getState() == Constants.Ed.ACTIVE);
233         assertTrue("BnNode Value Error terminate ac2 : ac1",proj.getNodeValue("ac1").getState() == Constants.Nd.TERMINATED);
234         assertTrue("BnEdge Value Error terminate ac2 : e3",proj.getEdgeValue(e3).getState() == Constants.Ed.ACTIVE);
235         assertTrue("BnNode Value Error terminate ac2 : ac2",proj.getNodeValue("ac2").getState() == Constants.Nd.TERMINATED);
236         assertTrue("BnEdge Value Error terminate ac2 : e4", proj.getEdgeValue(e4).getState() == Constants.Ed.ACTIVE);
237         assertTrue("BnEdge Value Error terminate ac2 : e5", proj.getEdgeValue(e5).getState() == Constants.Ed.ACTIVE);
238         assertTrue("BnNode Value Error terminate ac2 : jn1",proj.getNodeValue("jn1").getState() == Constants.Nd.TERMINATED);
239         assertTrue("BnEdge Value Error terminate ac2 : e6", proj.getEdgeValue(e6).getState() == Constants.Ed.ACTIVE);
240         assertTrue("BnNode Value Error terminate ac2 : ac3",proj.getNodeValue("ac3").getState() == Constants.Nd.TERMINATED);
241
242         try {
243             eng.startActivity("work","ac2");
244             assertTrue("start ac2 should have failed", false);
245         } catch (EngineException e) {
246             // normal behavior
247
}
248
249         eng.terminate("work");
250         assertTrue("Wrong project state",proj.getDetails().getState() == Constants.Pj.TERMINATED);
251     }
252
253
254     public void testEngineOR() throws Exception JavaDoc {
255         ProjectSession proj;
256         BnProjectValue pm;
257         BnNodeValue nd;
258         BnEdgeValue ev;
259         
260         // creation du projet
261
proj = psh.create();
262         proj.initProject("workOR");
263         proj.addNode("init", Constants.Nd.AND_JOIN_NODE);
264         proj.addNode("sp1", Constants.Nd.AND_JOIN_NODE);
265         proj.addNode("ac1", Constants.Nd.AND_JOIN_NODE);
266         proj.addNode("ac2", Constants.Nd.AND_JOIN_NODE);
267         proj.addNode("jn1", Constants.Nd.OR_JOIN_NODE);
268         proj.addNode("ac3", Constants.Nd.AND_JOIN_NODE);
269         String JavaDoc e1 = proj.addEdge("init", "sp1");
270         String JavaDoc e2 = proj.addEdge("sp1", "ac1");
271         String JavaDoc e3 = proj.addEdge("sp1", "ac2");
272         String JavaDoc e4 = proj.addEdge("ac1", "jn1");
273         String JavaDoc e5 = proj.addEdge("ac2", "jn1");
274         String JavaDoc e6 = proj.addEdge("jn1", "ac3");
275         proj.addRole("test", "testeur");
276         proj.setUserRole("admin", "test");
277         
278         eng = eh.create();
279         eng.startActivity("workOR","init");
280         eng.startActivity("workOR","sp1");
281         proj = psh.create();
282         proj.initProject("workOR");
283         eng.terminateActivity("workOR","init");
284         
285         assertTrue("BnNode State Error init", proj.getNodeValue("init").getState() == Constants.Nd.TERMINATED);
286         assertTrue("BnEdge State Error e1",proj.getEdgeValue(e1).getState() == Constants.Ed.ACTIVE);
287         assertTrue("BnNode State Error sp1",proj.getNodeValue("sp1").getState() == Constants.Nd.EXECUTING);
288         assertTrue("BnEdge State Error e2",proj.getEdgeValue(e2).getState() == Constants.Ed.ANTICIPATING);
289         assertTrue("BnNode State Error ac1",proj.getNodeValue("ac1").getState() == Constants.Nd.ANTICIPABLE);
290         assertTrue("BnEdge State Error e3",proj.getEdgeValue(e3).getState() == Constants.Ed.ANTICIPATING);
291         assertTrue("BnNode State Error ac2",proj.getNodeValue("ac2").getState() == Constants.Nd.ANTICIPABLE);
292         assertTrue("BnEdge State Error e4",proj.getEdgeValue(e4).getState() == Constants.Ed.INITIAL);
293         assertTrue("BnEdge State Error e5", proj.getEdgeValue(e5).getState() == Constants.Ed.INITIAL);
294         assertTrue("BnNode State Error jn1", proj.getNodeValue("jn1").getState() == Constants.Nd.INITIAL);
295         assertTrue( "BnEdge State Error e6", proj.getEdgeValue(e6).getState() == Constants.Ed.INITIAL);
296         assertTrue("BnNode State Error ac3",proj.getNodeValue("ac3").getState() == Constants.Nd.INITIAL);
297         
298         eng.startActivity("workOR","ac1");
299         
300         assertTrue("BnNode State Error start ac1 : init",proj.getNodeValue("init").getState() == Constants.Nd.TERMINATED);
301         assertTrue("BnEdge State Error start ac1 : e1",proj.getEdgeValue(e1).getState() == Constants.Ed.ACTIVE);
302         assertTrue("BnNode State Error start ac1 : sp1",proj.getNodeValue("sp1").getState() == Constants.Nd.EXECUTING);
303         assertTrue("BnEdge State Error start ac1 : e2",proj.getEdgeValue(e2).getState() == Constants.Ed.ANTICIPATING);
304         assertTrue("BnNode State Error start ac1 : ac1",proj.getNodeValue("ac1").getState() == Constants.Nd.ANTICIPATING);
305         assertTrue("BnEdge State Error start ac1 : e3",proj.getEdgeValue(e3).getState() == Constants.Ed.ANTICIPATING);
306         assertTrue("BnNode State Error start ac1 : ac2",proj.getNodeValue("ac2").getState() == Constants.Nd.ANTICIPABLE);
307         assertTrue("BnEdge State Error start ac1 : e4",proj.getEdgeValue(e4).getState() == Constants.Ed.ANTICIPATING);
308         assertTrue("BnEdge State Error start ac1 : e5",proj.getEdgeValue(e5).getState() == Constants.Ed.INITIAL);
309         assertTrue("BnNode State Error start ac1 : jn1",proj.getNodeValue("jn1").getState() == Constants.Nd.ANTICIPABLE);
310         assertTrue("BnEdge State Error start ac1 : e6",proj.getEdgeValue(e6).getState() == Constants.Ed.INITIAL);
311         assertTrue("BnNode State Error start ac1 : ac3",proj.getNodeValue("ac3").getState() == Constants.Nd.INITIAL);
312
313         eng.startActivity("workOR","ac2");
314         
315         assertTrue("BnNode State Error start ac1 : init",proj.getNodeValue("init").getState() == Constants.Nd.TERMINATED);
316         assertTrue("BnEdge State Error start ac1 : e1",proj.getEdgeValue(e1).getState() == Constants.Ed.ACTIVE);
317         assertTrue("BnNode State Error start ac1 : sp1",proj.getNodeValue("sp1").getState() == Constants.Nd.EXECUTING);
318         assertTrue("BnEdge State Error start ac1 : e2",proj.getEdgeValue(e2).getState() == Constants.Ed.ANTICIPATING);
319         assertTrue("BnNode State Error start ac1 : ac1",proj.getNodeValue("ac1").getState() == Constants.Nd.ANTICIPATING);
320         assertTrue("BnEdge State Error start ac1 : e3",proj.getEdgeValue(e3).getState() == Constants.Ed.ANTICIPATING);
321         assertTrue("BnNode State Error start ac1 : ac2",proj.getNodeValue("ac2").getState() == Constants.Nd.ANTICIPATING);
322         assertTrue("BnEdge State Error start ac1 : e4",proj.getEdgeValue(e4).getState() == Constants.Ed.ANTICIPATING);
323         assertTrue("BnEdge State Error start ac1 : e5",proj.getEdgeValue(e5).getState() == Constants.Ed.ANTICIPATING);
324         assertTrue("BnNode State Error start ac1 : jn1",proj.getNodeValue("jn1").getState() == Constants.Nd.ANTICIPABLE);
325         assertTrue("BnEdge State Error start ac1 : e6",proj.getEdgeValue(e6).getState() == Constants.Ed.INITIAL);
326         assertTrue("BnNode State Error start ac1 : ac3",proj.getNodeValue("ac3").getState() == Constants.Nd.INITIAL);
327         
328         eng.terminateActivity("workOR","sp1");
329
330         assertTrue("BnNode State Error start ac1 : init",proj.getNodeValue("init").getState() == Constants.Nd.TERMINATED);
331         assertTrue("BnEdge State Error start ac1 : e1",proj.getEdgeValue(e1).getState() == Constants.Ed.ACTIVE);
332         assertTrue("BnNode State Error start ac1 : sp1",proj.getNodeValue("sp1").getState() == Constants.Nd.TERMINATED);
333         assertTrue("BnEdge State Error start ac1 : e2",proj.getEdgeValue(e2).getState() == Constants.Ed.ACTIVE);
334         assertTrue("BnNode State Error start ac1 : ac1",proj.getNodeValue("ac1").getState() == Constants.Nd.EXECUTING);
335         assertTrue("BnEdge State Error start ac1 : e3",proj.getEdgeValue(e3).getState() == Constants.Ed.ACTIVE);
336         assertTrue("BnNode State Error start ac1 : ac2",proj.getNodeValue("ac2").getState() == Constants.Nd.EXECUTING);
337         assertTrue("BnEdge State Error start ac1 : e4",proj.getEdgeValue(e4).getState() == Constants.Ed.ANTICIPATING);
338         assertTrue("BnEdge State Error start ac1 : e5",proj.getEdgeValue(e5).getState() == Constants.Ed.ANTICIPATING);
339         assertTrue("BnNode State Error start ac1 : jn1",proj.getNodeValue("jn1").getState() == Constants.Nd.ANTICIPABLE);
340         assertTrue("BnEdge State Error start ac1 : e6",proj.getEdgeValue(e6).getState() == Constants.Ed.INITIAL);
341         assertTrue("BnNode State Error start ac1 : ac3",proj.getNodeValue("ac3").getState() == Constants.Nd.INITIAL);
342         
343         eng.terminateActivity("workOR","ac1");
344         
345         assertTrue("BnNode State Error start ac1 : init",proj.getNodeValue("init").getState() == Constants.Nd.TERMINATED);
346         assertTrue("BnEdge State Error start ac1 : e1",proj.getEdgeValue(e1).getState() == Constants.Ed.ACTIVE);
347         assertTrue("BnNode State Error start ac1 : sp1",proj.getNodeValue("sp1").getState() == Constants.Nd.TERMINATED);
348         assertTrue("BnEdge State Error start ac1 : e2",proj.getEdgeValue(e2).getState() == Constants.Ed.ACTIVE);
349         assertTrue("BnNode State Error start ac1 : ac1",proj.getNodeValue("ac1").getState() == Constants.Nd.TERMINATED);
350         assertTrue("BnEdge State Error start ac1 : e3",proj.getEdgeValue(e3).getState() == Constants.Ed.ACTIVE);
351         assertTrue("BnNode State Error start ac1 : ac2",proj.getNodeValue("ac2").getState() == Constants.Nd.EXECUTING);
352         assertTrue("BnEdge State Error start ac1 : e4",proj.getEdgeValue(e4).getState() == Constants.Ed.ACTIVE);
353         assertTrue("BnEdge State Error start ac1 : e5",proj.getEdgeValue(e5).getState() == Constants.Ed.ANTICIPATING);
354         assertTrue("BnNode State Error start ac1 : jn1",proj.getNodeValue("jn1").getState() == Constants.Nd.READY);
355         assertTrue("BnEdge State Error start ac1 : e6",proj.getEdgeValue(e6).getState() == Constants.Ed.INITIAL);
356         assertTrue("BnNode State Error start ac1 : ac3",proj.getNodeValue("ac3").getState() == Constants.Nd.INITIAL);
357         
358         eng.terminateActivity("workOR","ac2");
359         
360         assertTrue("BnNode State Error start ac1 : init",proj.getNodeValue("init").getState() == Constants.Nd.TERMINATED);
361         assertTrue("BnEdge State Error start ac1 : e1",proj.getEdgeValue(e1).getState() == Constants.Ed.ACTIVE);
362         assertTrue("BnNode State Error start ac1 : sp1",proj.getNodeValue("sp1").getState() == Constants.Nd.TERMINATED);
363         assertTrue("BnEdge State Error start ac1 : e2",proj.getEdgeValue(e2).getState() == Constants.Ed.ACTIVE);
364         assertTrue("BnNode State Error start ac1 : ac1",proj.getNodeValue("ac1").getState() == Constants.Nd.TERMINATED);
365         assertTrue("BnEdge State Error start ac1 : e3",proj.getEdgeValue(e3).getState() == Constants.Ed.ACTIVE);
366         assertTrue("BnNode State Error start ac1 : ac2",proj.getNodeValue("ac2").getState() == Constants.Nd.TERMINATED);
367         assertTrue("BnEdge State Error start ac1 : e4",proj.getEdgeValue(e4).getState() == Constants.Ed.ACTIVE);
368         assertTrue("BnEdge State Error start ac1 : e5",proj.getEdgeValue(e5).getState() == Constants.Ed.ACTIVE);
369         assertTrue("BnNode State Error start ac1 : jn1",proj.getNodeValue("jn1").getState() == Constants.Nd.READY);
370         assertTrue("BnEdge State Error start ac1 : e6",proj.getEdgeValue(e6).getState() == Constants.Ed.INITIAL);
371         assertTrue("BnNode State Error start ac1 : ac3",proj.getNodeValue("ac3").getState() == Constants.Nd.INITIAL);
372         
373         eng.startActivity("workOR","jn1");
374         eng.startActivity("workOR","ac3");
375         
376         assertTrue("BnNode State Error start ac1 : init",proj.getNodeValue("init").getState() == Constants.Nd.TERMINATED);
377         assertTrue("BnEdge State Error start ac1 : e1",proj.getEdgeValue(e1).getState() == Constants.Ed.ACTIVE);
378         assertTrue("BnNode State Error start ac1 : sp1",proj.getNodeValue("sp1").getState() == Constants.Nd.TERMINATED);
379         assertTrue("BnEdge State Error start ac1 : e2",proj.getEdgeValue(e2).getState() == Constants.Ed.ACTIVE);
380         assertTrue("BnNode State Error start ac1 : ac1",proj.getNodeValue("ac1").getState() == Constants.Nd.TERMINATED);
381         assertTrue("BnEdge State Error start ac1 : e3",proj.getEdgeValue(e3).getState() == Constants.Ed.ACTIVE);
382         assertTrue("BnNode State Error start ac1 : ac2",proj.getNodeValue("ac2").getState() == Constants.Nd.TERMINATED);
383         assertTrue("BnEdge State Error start ac1 : e4",proj.getEdgeValue(e4).getState() == Constants.Ed.ACTIVE);
384         assertTrue("BnEdge State Error start ac1 : e5",proj.getEdgeValue(e5).getState() == Constants.Ed.ACTIVE);
385         assertTrue("BnNode State Error start ac1 : jn1",proj.getNodeValue("jn1").getState() == Constants.Nd.EXECUTING);
386         assertTrue("BnEdge State Error start ac1 : e6",proj.getEdgeValue(e6).getState() == Constants.Ed.ANTICIPATING);
387         assertTrue("BnNode State Error start ac1 : ac3",proj.getNodeValue("ac3").getState() == Constants.Nd.ANTICIPATING);
388         
389         try {
390         eng.terminateActivity("workOR","ac3");
391         assertTrue("should have failed", false);
392         } catch (HeroException h) {
393         // normal behavior
394
}
395         
396         eng.terminateActivity("workOR","jn1");
397         eng.terminateActivity("workOR","ac3");
398         
399         eng.terminate("workOR");
400         assertTrue("Wrong project state", proj.getDetails().getState() == Constants.Pj.TERMINATED);
401     }
402     
403     public void testCancelANDActivity() throws Exception JavaDoc {
404     ProjectSession proj;
405     BnProjectValue pm;
406     BnNodeValue nd;
407     BnEdgeValue ev;
408     
409     // creation du projet
410
proj = psh.create();
411     proj.initProject("workCancel");
412     proj.addNode("init", Constants.Nd.AND_JOIN_NODE);
413     proj.addNode("sp1", Constants.Nd.AND_JOIN_NODE);
414     proj.addNode("ac1", Constants.Nd.AND_JOIN_NODE);
415     proj.addNode("ac2", Constants.Nd.AND_JOIN_NODE);
416
417     String JavaDoc e1 = proj.addEdge("init", "sp1");
418     String JavaDoc e2 = proj.addEdge("sp1", "ac1");
419     String JavaDoc e3 = proj.addEdge("sp1", "ac2");
420     
421     proj.addRole("test", "testeur");
422     proj.setUserRole("admin", "test");
423     
424     eng = eh.create();
425     eng.startActivity("workCancel","init");
426     eng.startActivity("workCancel","sp1");
427     proj = psh.create();
428     proj.initProject("workCancel");
429     eng.terminateActivity("workCancel","init");
430     eng.cancelActivity("workCancel","sp1");
431     
432     assertTrue("BnNode State Error init",proj.getNodeValue("init").getState() == Constants.Nd.TERMINATED);
433     assertTrue("BnEdge State Error e1",proj.getEdgeValue(e1).getState() == Constants.Ed.ACTIVE);
434     assertTrue("BnNode State Error sp1",proj.getNodeValue("sp1").getState() == Constants.Nd.DEAD);
435     assertTrue("BnEdge State Error e2",proj.getEdgeValue(e2).getState() == Constants.Ed.DEAD);
436     assertTrue("BnNode State Error ac1",proj.getNodeValue("ac1").getState() == Constants.Nd.DEAD);
437     assertTrue("BnEdge State Error e3",proj.getEdgeValue(e3).getState() == Constants.Ed.DEAD);
438     assertTrue("BnNode State Error ac2",proj.getNodeValue("ac2").getState() == Constants.Nd.DEAD);
439     
440     eng.terminate("workCancel");
441     assertTrue("Wrong project state", proj.getDetails().getState() == Constants.Pj.TERMINATED);
442     }
443     
444     public void testCancelORActivity() throws Exception JavaDoc {
445     ProjectSession proj;
446     BnProjectValue pm;
447     BnNodeValue nd;
448     BnEdgeValue ev;
449     
450     // creation du projet
451
proj = psh.create();
452     proj.initProject("workCancelOR");
453     proj.addNode("init", Constants.Nd.AND_JOIN_NODE);
454     proj.addNode("sp1", Constants.Nd.AND_JOIN_NODE);
455     proj.addNode("ac1", Constants.Nd.AND_JOIN_NODE);
456     proj.addNode("ac2", Constants.Nd.AND_JOIN_NODE);
457         proj.addNode("ac3", Constants.Nd.OR_JOIN_NODE);
458     
459     String JavaDoc e1 = proj.addEdge("init", "sp1");
460     String JavaDoc e2 = proj.addEdge("sp1", "ac1");
461     String JavaDoc e3 = proj.addEdge("sp1", "ac2");
462     String JavaDoc e4 = proj.addEdge("ac1", "ac3");
463     String JavaDoc e5 = proj.addEdge("ac2", "ac3");
464     
465     proj.addRole("test", "testeur");
466     proj.setUserRole("admin", "test");
467     
468     eng = eh.create();
469     eng.startActivity("workCancelOR","init");
470     eng.startActivity("workCancelOR","sp1");
471     eng.terminateActivity("workCancelOR","init");
472     eng.terminateActivity("workCancelOR","sp1");
473     eng.startActivity("workCancelOR","ac2");
474     eng.cancelActivity("workCancelOR","ac1");
475     
476     assertTrue("BnNode State Error init",proj.getNodeValue("init").getState() == Constants.Nd.TERMINATED);
477     assertTrue("BnEdge State Error e1",proj.getEdgeValue(e1).getState() == Constants.Ed.ACTIVE);
478     assertTrue("BnNode State Error sp1",proj.getNodeValue("sp1").getState() == Constants.Nd.TERMINATED);
479     assertTrue("BnEdge State Error e2",proj.getEdgeValue(e2).getState() == Constants.Ed.ACTIVE);
480     assertTrue("BnNode State Error ac1",proj.getNodeValue("ac1").getState() == Constants.Nd.DEAD);
481     assertTrue("BnEdge State Error e3",proj.getEdgeValue(e3).getState() == Constants.Ed.ACTIVE);
482     assertTrue("BnNode State Error ac2",proj.getNodeValue("ac2").getState() == Constants.Nd.EXECUTING);
483     assertTrue("BnEdge State Error e4",proj.getEdgeValue(e4).getState() == Constants.Ed.DEAD);
484     assertTrue("BnEdge State Error e5",proj.getEdgeValue(e5).getState() == Constants.Ed.ANTICIPATING);
485     assertTrue("BnNode State Error ac3",proj.getNodeValue("ac3").getState() == Constants.Nd.ANTICIPABLE);
486     }
487     
488     public void testAutomaticNode() throws Exception JavaDoc {
489     ProjectSession proj = psh.create();
490     proj.initProject("testoto");
491     proj.addNode("nonode", Constants.Nd.AND_JOIN_NODE);
492     proj.addNode("supernonode", Constants.Nd.AND_JOIN_AUTOMATIC_NODE);
493     proj.addEdge("nonode", "supernonode");
494     Engine eng = eh.create();
495     eng.startActivity("testoto","nonode");
496     assertTrue("Supernonode will be terminated", proj.getNodeValue("supernonode").getState()== Constants.Nd.ANTICIPATING);
497     eng.terminateActivity("testoto","nonode");
498     assertTrue("Supernonode will be terminated", proj.getNodeValue("supernonode").getState()== Constants.Nd.TERMINATED);
499     }
500     
501     public void testAutomaticNodeOR() throws Exception JavaDoc {
502     ProjectSession proj = psh.create();
503     proj.initProject("testoto2");
504     proj.addNode("nonode", Constants.Nd.AND_JOIN_NODE);
505     proj.addNode("nonode2", Constants.Nd.AND_JOIN_NODE);
506     proj.addNode("supernonode", Constants.Nd.OR_JOIN_AUTOMATIC_NODE);
507     proj.addEdge("nonode", "supernonode");
508     proj.addEdge("nonode2", "supernonode");
509     Engine eng = eh.create();
510     eng.startActivity("testoto2","nonode");
511     assertTrue("Supernonode will be anticipating ", proj.getNodeValue("supernonode").getState()== Constants.Nd.ANTICIPATING);
512     eng.startActivity("testoto2","nonode2");
513     eng.terminateActivity("testoto2","nonode");
514     assertTrue("Supernonode will be anticipating", proj.getNodeValue("supernonode").getState() == Constants.Nd.TERMINATED);
515     }
516     
517     public void testTraditionalActivityNode() throws Exception JavaDoc {
518     ProjectSession proj = psh.create();
519     proj.initProject("testtradacti");
520     proj.addNode("nonode", Constants.Nd.AND_JOIN_NODE);
521     proj.addNode("supernonode", Constants.Nd.AND_JOIN_NODE);
522     proj.setNodeTraditional("supernonode");
523     proj.addEdge("nonode", "supernonode");
524     Engine eng = eh.create();
525     eng.startActivity("testtradacti","nonode");
526     assertTrue("Supernonode will be initial", proj.getNodeValue("supernonode").getState()== Constants.Nd.INITIAL);
527     eng.terminateActivity("testtradacti","nonode");
528     assertTrue("Supernonode will be ready",proj.getNodeValue("supernonode").getState() == Constants.Nd.READY);
529     }
530     
531     public void testTraditionalAutomaticNode() throws Exception JavaDoc {
532     ProjectSession proj = psh.create();
533     proj.initProject("testtrad");
534     proj.addNode("nonode", Constants.Nd.AND_JOIN_NODE);
535     proj.addNode("supernonode", Constants.Nd.AND_JOIN_AUTOMATIC_NODE);
536     proj.setNodeTraditional("supernonode");
537     proj.addEdge("nonode", "supernonode");
538     Engine eng = eh.create();
539     eng.startActivity("testtrad","nonode");
540     assertTrue("Supernonode will be initial",proj.getNodeValue("supernonode").getState()== Constants.Nd.INITIAL);
541     eng.terminateActivity("testtrad","nonode");
542     assertTrue("Supernonode will be terminated",proj.getNodeValue("supernonode").getState()== Constants.Nd.TERMINATED);
543     }
544     
545     public void testEdgeConditionPropagation() throws Exception JavaDoc {
546     ProjectSession proj = psh.create();
547     proj.initProject("edgeCondP");
548     proj.addNode("nonode", Constants.Nd.AND_JOIN_NODE);
549     proj.addNode("supernonode", Constants.Nd.AND_JOIN_NODE);
550     String JavaDoc e1 = proj.addEdge("nonode", "supernonode");
551     proj.setEdgeCondition(e1,"(node.getName()).equals(\"nonode\")");
552     Engine eng = eh.create();
553     eng.startActivity("edgeCondP","nonode");
554     assertTrue("BnNode State Error nonode",proj.getNodeValue("nonode").getState() == Constants.Nd.EXECUTING);
555     assertTrue("BnNode State Error supernonode",proj.getNodeValue("supernonode").getState() == Constants.Nd.ANTICIPABLE);
556     assertTrue("BnEdge State Error e1",proj.getEdgeValue(e1).getState() == Constants.Ed.ANTICIPATING);
557     eng.terminateActivity("edgeCondP","nonode");
558     assertTrue("BnNode State Error nonode",proj.getNodeValue("nonode").getState() == Constants.Nd.TERMINATED);
559     assertTrue("BnNode State Error supernonode",proj.getNodeValue("supernonode").getState() == Constants.Nd.READY);
560     assertTrue("BnEdge State Error e1",proj.getEdgeValue(e1).getState() == Constants.Ed.ACTIVE);
561     }
562
563     public void testEdgeConditionPropagationProperty() throws Exception JavaDoc {
564     ProjectSession proj = psh.create();
565     proj.initProject("edgeCondPP");
566     proj.addNode("nonode", Constants.Nd.AND_JOIN_NODE);
567     proj.addNode("supernonode", Constants.Nd.AND_JOIN_NODE);
568     proj.setNodeProperty("nonode","prop1","value1",true);
569     String JavaDoc e1 = proj.addEdge("nonode", "supernonode");
570     proj.setEdgeCondition(e1,"prop1.equals(\"value1\")");
571     Engine eng = eh.create();
572     eng.startActivity("edgeCondPP","nonode");
573     assertTrue("BnNode State Error nonode",proj.getNodeValue("nonode").getState() == Constants.Nd.EXECUTING);
574     assertTrue("BnNode State Error supernonode",proj.getNodeValue("supernonode").getState() == Constants.Nd.ANTICIPABLE);
575     assertTrue("BnEdge State Error e1",proj.getEdgeValue(e1).getState() == Constants.Ed.ANTICIPATING);
576     eng.terminateActivity("edgeCondPP","nonode");
577     assertTrue("BnNode State Error nonode",proj.getNodeValue("nonode").getState() == Constants.Nd.TERMINATED);
578     assertTrue("BnNode State Error supernonode",proj.getNodeValue("supernonode").getState() == Constants.Nd.READY);
579     assertTrue("BnEdge State Error e1",proj.getEdgeValue(e1).getState() == Constants.Ed.ACTIVE);
580     }
581
582     public void testEdgeConditionNotPropagation() throws Exception JavaDoc {
583     ProjectSession proj = psh.create();
584     proj.initProject("edgeCondNP");
585     proj.addNode("nonode", Constants.Nd.AND_JOIN_NODE);
586     proj.addNode("supernonode", Constants.Nd.AND_JOIN_NODE);
587     String JavaDoc e1 = proj.addEdge("nonode", "supernonode");
588     proj.setEdgeCondition(e1,"(node.getName()).equals(\"supernonode\")");
589     Engine eng = eh.create();
590     eng.startActivity("edgeCondNP","nonode");
591     assertTrue("BnNode State Error nonode",proj.getNodeValue("nonode").getState() == Constants.Nd.EXECUTING);
592     assertTrue("BnNode State Error supernonode",proj.getNodeValue("supernonode").getState() == Constants.Nd.ANTICIPABLE);
593     assertTrue("BnEdge State Error e1",proj.getEdgeValue(e1).getState() == Constants.Ed.ANTICIPATING);
594     eng.terminateActivity("edgeCondNP","nonode");
595     assertTrue("BnNode State Error nonode",proj.getNodeValue("nonode").getState() == Constants.Nd.TERMINATED);
596     assertTrue("BnNode State Error supernonode",proj.getNodeValue("supernonode").getState() == Constants.Nd.DEAD);
597     assertTrue("BnEdge State Error e1",proj.getEdgeValue(e1).getState() == Constants.Ed.DEAD);
598     }
599
600     public void testEdgeConditionANDSplitPropagation() throws Exception JavaDoc {
601     ProjectSession proj = psh.create();
602     proj.initProject("edgeCondSP");
603     proj.addNode("nonode", Constants.Nd.AND_JOIN_NODE);
604     proj.addNode("nonode1", Constants.Nd.AND_JOIN_NODE);
605     proj.addNode("nonode2", Constants.Nd.AND_JOIN_NODE);
606     proj.addNode("supernonode", Constants.Nd.AND_JOIN_NODE);
607     String JavaDoc e1 = proj.addEdge("nonode", "nonode1");
608     String JavaDoc e2 = proj.addEdge("nonode1", "nonode2");
609     String JavaDoc e3 = proj.addEdge("nonode1", "supernonode");
610     proj.setEdgeCondition(e1,"(node.getName()).equals(\"nonode\")");
611     proj.setEdgeCondition(e2,"(node.getName()).equals(\"nonode1\")");
612     proj.setEdgeCondition(e3,"(node.getName()).equals(\"nonode1\")");
613     Engine eng = eh.create();
614     eng.startActivity("edgeCondSP","nonode");
615     eng.startActivity("edgeCondSP","nonode1");
616
617     assertTrue("BnNode State Error nonode",proj.getNodeValue("nonode").getState() == Constants.Nd.EXECUTING);
618     assertTrue("BnNode State Error nonode1",proj.getNodeValue("nonode1").getState() == Constants.Nd.ANTICIPATING);
619     assertTrue("BnNode State Error nonode2",proj.getNodeValue("nonode2").getState() == Constants.Nd.ANTICIPABLE);
620     assertTrue("BnNode State Error supernonode",proj.getNodeValue("supernonode").getState() == Constants.Nd.ANTICIPABLE);
621     assertTrue("BnEdge State Error e1",proj.getEdgeValue(e1).getState() == Constants.Ed.ANTICIPATING);
622     assertTrue("BnEdge State Error e2",proj.getEdgeValue(e2).getState() == Constants.Ed.ANTICIPATING);
623     assertTrue("BnEdge State Error e3",proj.getEdgeValue(e3).getState() == Constants.Ed.ANTICIPATING);
624
625     eng.terminateActivity("edgeCondSP","nonode");
626     eng.terminateActivity("edgeCondSP","nonode1");
627
628     assertTrue("BnNode State Error nonode",proj.getNodeValue("nonode").getState() == Constants.Nd.TERMINATED);
629     assertTrue("BnNode State Error nonode1",proj.getNodeValue("nonode1").getState() == Constants.Nd.TERMINATED);
630     assertTrue("BnNode State Error nonode2",proj.getNodeValue("nonode2").getState() == Constants.Nd.READY);
631     assertTrue("BnNode State Error supernonode",proj.getNodeValue("supernonode").getState() == Constants.Nd.READY);
632     assertTrue("BnEdge State Error e1",proj.getEdgeValue(e1).getState() == Constants.Ed.ACTIVE);
633     assertTrue("BnEdge State Error e2",proj.getEdgeValue(e2).getState() == Constants.Ed.ACTIVE);
634     assertTrue("BnEdge State Error e3",proj.getEdgeValue(e3).getState() == Constants.Ed.ACTIVE);
635     }
636
637     public void testEdgeConditionORSplitPropagation() throws Exception JavaDoc {
638     ProjectSession proj = psh.create();
639     proj.initProject("edgeCondOP");
640     proj.addNode("nonode", Constants.Nd.AND_JOIN_NODE);
641     proj.addNode("nonode1", Constants.Nd.AND_JOIN_NODE);
642     proj.addNode("nonode2", Constants.Nd.AND_JOIN_NODE);
643     proj.addNode("supernonode", Constants.Nd.AND_JOIN_NODE);
644     String JavaDoc e1 = proj.addEdge("nonode", "nonode1");
645     String JavaDoc e2 = proj.addEdge("nonode", "nonode2");
646     String JavaDoc e3 = proj.addEdge("nonode", "supernonode");
647     proj.setEdgeCondition(e1,"(node.getName()).equals(\"nonode1\")");
648     proj.setEdgeCondition(e2,"(node.getName()).equals(\"nonode\")");
649     proj.setEdgeCondition(e3,"(node.getName()).equals(\"nonode1\")");
650     Engine eng = eh.create();
651     eng.startActivity("edgeCondOP","nonode");
652     eng.terminateActivity("edgeCondOP","nonode");
653
654     assertTrue("BnNode State Error nonode",proj.getNodeValue("nonode").getState() == Constants.Nd.TERMINATED);
655     assertTrue("BnNode State Error nonode1",proj.getNodeValue("nonode1").getState() == Constants.Nd.DEAD);
656     assertTrue("BnNode State Error nonode2",proj.getNodeValue("nonode2").getState() == Constants.Nd.READY);
657     assertTrue("BnNode State Error supernonode",proj.getNodeValue("supernonode").getState() == Constants.Nd.DEAD);
658     assertTrue("BnEdge State Error e1",proj.getEdgeValue(e1).getState() == Constants.Ed.DEAD);
659     assertTrue("BnEdge State Error e2",proj.getEdgeValue(e2).getState() == Constants.Ed.ACTIVE);
660     assertTrue("BnEdge State Error e3",proj.getEdgeValue(e3).getState() == Constants.Ed.DEAD);
661     }
662
663 /* public void testExternalAgentWithANDJoinNode() throws Exception {
664     ProjectSession proj = psh.create();
665     proj.initProject("externalAgent");
666     proj.addNode("nonode", Constants.Nd.AND_JOIN_NODE);
667     proj.addNode("nonode1", Constants.Nd.AND_JOIN_NODE);
668     proj.addNode("nonode2", Constants.Nd.AND_JOIN_NODE);
669     proj.addAgent("superagent");
670     String e1 = proj.addEdge("nonode", "nonode1");
671     String e2 = proj.addEdge("nonode1", "nonode2");
672     String e3 = proj.addAgentEdge("superagent", "nonode1");
673     Engine eng = eh.create();
674     eng.startActivity("externalAgent","nonode");
675     eng.activeAgent("externalAgent","superagent");
676
677     assertTrue("BnNode State Error nonode",proj.getNodeValue("nonode").getState() == Constants.Nd.EXECUTING);
678     assertTrue("BnNode State Error nonode1",proj.getNodeValue("nonode1").getState() == Constants.Nd.ANTICIPABLE);
679     assertTrue("BnNode State Error nonode2",proj.getNodeValue("nonode2").getState() == Constants.Nd.INITIAL);
680     assertTrue("BnNode State Error superagent",proj.getAgentValue("superagent").getState() == Constants.Ag.ACTIVE);
681     assertTrue("BnEdge State Error e1",proj.getEdgeValue(e1).getState() == Constants.Ed.ANTICIPATING);
682     assertTrue("BnEdge State Error e2",proj.getEdgeValue(e2).getState() == Constants.Ed.INITIAL);
683     assertTrue("BnEdge State Error e3",proj.getAgentEdgeValue(e3).getState() == Constants.Ed.ANTICIPATING);
684     }
685
686     public void testExternalAgentWithORJoinNode() throws Exception {
687     ProjectSession proj = psh.create();
688     proj.initProject("externalAgentOr");
689     proj.addNode("nonode", Constants.Nd.AND_JOIN_NODE);
690     proj.addNode("nonode1", Constants.Nd.OR_JOIN_NODE);
691     proj.addNode("nonode2", Constants.Nd.AND_JOIN_NODE);
692     proj.addAgent("superagent");
693     String e1 = proj.addEdge("nonode", "nonode1");
694     String e2 = proj.addEdge("nonode1", "nonode2");
695     String e3 = proj.addAgentEdge("superagent", "nonode1");
696     Engine eng = eh.create();
697     eng.activeAgent("externalAgentOr","superagent");
698
699     assertTrue("BnNode State Error nonode",proj.getNodeValue("nonode").getState() == Constants.Nd.READY);
700     assertTrue("BnNode State Error nonode1",proj.getNodeValue("nonode1").getState() == Constants.Nd.ANTICIPABLE);
701     assertTrue("BnNode State Error nonode2",proj.getNodeValue("nonode2").getState() == Constants.Nd.INITIAL);
702     assertTrue("BnNode State Error superagent",proj.getAgentValue("superagent").getState() == Constants.Ag.ACTIVE);
703     assertTrue("BnEdge State Error e1",proj.getEdgeValue(e1).getState() == Constants.Ed.INITIAL);
704     assertTrue("BnEdge State Error e2",proj.getEdgeValue(e2).getState() == Constants.Ed.INITIAL);
705     assertTrue("BnEdge State Error e3",proj.getAgentEdgeValue(e3).getState() == Constants.Ed.ANTICIPATING);
706     }*/

707     
708 }
709
710
Popular Tags