1 package hero.client.test; 2 3 24 25 import hero.interfaces.BnEdgeValue; 26 import hero.interfaces.BnRoleMapperValue; 27 import hero.interfaces.BnNodePropertyValue; 28 import hero.interfaces.BnNodeValue; 29 import hero.interfaces.BnProjectHome; 30 import hero.interfaces.BnProjectPropertyValue; 31 import hero.interfaces.BnProjectValue; 32 import hero.interfaces.BnUser; 33 import hero.interfaces.BnUserHome; 34 import hero.interfaces.BnUserLightValue; 35 import hero.interfaces.BnUserUtil; 36 import hero.interfaces.BnUserValue; 37 import hero.interfaces.Constants; 38 import hero.interfaces.ProjectSession; 39 import hero.interfaces.ProjectSessionHome; 40 import hero.interfaces.ProjectSessionUtil; 41 import hero.interfaces.UserSession; 42 import hero.interfaces.UserSessionHome; 43 import hero.interfaces.UserSessionUtil; 44 import hero.util.DuplicatedEdgeException; 45 import hero.util.HeroException; 46 47 import java.util.ArrayList ; 48 import java.util.Collection ; 49 import java.util.Iterator ; 50 51 import junit.framework.TestCase; 52 import junit.framework.TestSuite; 53 54 public class ProjectSessionTests extends TestCase { 55 private BnProjectHome projecth; 56 private ProjectSessionHome projectSessionh; 57 58 public ProjectSessionTests(String testname) { 59 super(testname); 60 } 61 62 public static TestSuite suite() { 63 return new TestSuite(ProjectSessionTests.class); 64 } 65 66 public void setUp() throws Exception { 67 } 68 69 public void testCreateProjectSession() throws Exception { 70 ProjectSessionHome lHome=ProjectSessionUtil.getHome(); 71 ProjectSession lProject = lHome.create(); 72 lProject.initProject("projectsession"); 73 BnProjectValue pv=lProject.getDetails(); 74 BnUserLightValue[] uv=pv.getBnUsers(); 75 int i=0; 76 while (i<uv.length) { 77 if (uv[i].getName().equals("admin")) 78 break; 79 i++; 80 } 81 assertTrue("Admin is in the projet",i<uv.length); 82 } 83 84 public void testCloneProjectSession() throws Exception { 85 ProjectSessionHome lHome=ProjectSessionUtil.getHome(); 86 ProjectSession lProject = lHome.create(); 87 lProject.initProject("projectsource"); 88 lProject.addNode("nclone",Constants.Nd.AND_JOIN_NODE); 89 lProject.addNode("c1",Constants.Nd.AND_JOIN_NODE); 90 lProject.addNode("c2",Constants.Nd.AND_JOIN_NODE); 91 lProject.setNodeRole("nclone","admin"); 92 lProject.setNodeRole("c1","admin"); 93 lProject.setNodeRole("c2","admin"); 94 String edge1=lProject.addEdge("c1","c2"); 95 lProject = lHome.create(); 96 lProject.initProject("projectsource","tralara"); 97 BnProjectValue pv=lProject.getDetails(); 98 assertTrue("Clone failure1",pv.getBnNodes().length==3); 99 assertTrue("Clone failure2",pv.getName().equalsIgnoreCase("tralara")); 100 } 101 102 public void testImportProject() throws Exception { 103 ProjectSessionHome lHome=ProjectSessionUtil.getHome(); 104 ProjectSession lProject = lHome.create(); 105 lProject.initProject("projectS"); 106 lProject.addNode("nclone",Constants.Nd.AND_JOIN_NODE); 107 lProject.addNode("c1",Constants.Nd.AND_JOIN_NODE); 108 lProject.addNode("c2",Constants.Nd.AND_JOIN_NODE); 109 lProject.setNodeRole("nclone","admin"); 110 lProject.setNodeRole("c1","admin"); 111 lProject.setNodeRole("c2","admin"); 112 String edge1=lProject.addEdge("c1","c2"); 113 114 lProject = lHome.create(); 115 lProject.initProject("pDest"); 116 117 lProject.addNode("nclone2",Constants.Nd.AND_JOIN_NODE); 118 lProject.setNodeRole("nclone2","admin"); 119 lProject.importProject("projectS","pDest"); 120 BnProjectValue pv=lProject.getDetails(); 121 assertTrue("Clone failure1",pv.getBnNodes().length==4); 122 assertTrue("Clone failure2",pv.getName().equalsIgnoreCase("pDest")); 123 } 124 125 public void testAddUserToProject() throws Exception { 126 ProjectSessionHome lHome=ProjectSessionUtil.getHome(); 127 ProjectSession lProject = lHome.create(); 128 lProject.initProject("projectadduser"); 129 BnUserHome uHome = BnUserUtil.getHome(); 130 BnUserValue pdata=new BnUserValue(); 131 pdata.setName("bidochon"); 132 pdata.setPassword("bidochon"); 133 pdata.setEmail("bidochon@loria.fr"); 134 BnUser lUser = uHome.create(pdata); 135 lProject.addUser("bidochon"); 136 pdata.setName("marcel"); 137 pdata.setPassword("marcel"); 138 pdata.setEmail("marcel@loria.fr"); 139 lUser = uHome.create(pdata); 140 lProject.addUser("marcel"); 141 pdata.setName("germaine"); 142 pdata.setPassword("germaine"); 143 pdata.setEmail("germaine@loria.fr"); 144 lUser = uHome.create(pdata); 145 lProject.addUser("germaine"); 146 assertTrue(lProject.containsUser("bidochon")); 147 } 148 149 public void testAddNodeToProject() throws Exception { 150 ProjectSessionHome lHome=ProjectSessionUtil.getHome(); 151 ProjectSession lProject = lHome.create(); 152 lProject.initProject("projectaddnode"); 153 lProject.addNode("thenode",1); 154 BnNodeValue nv=lProject.getNodeValue("thenode"); 155 assertTrue("Creator not correctly set",nv.getCreator().equals("admin")); 156 } 157 158 public void testAddEdgeToProject() throws Exception { 159 ProjectSessionHome lHome=ProjectSessionUtil.getHome(); 160 ProjectSession lProject = lHome.create(); 161 lProject.initProject("projectaddedge"); 162 lProject.addNode("thenode",Constants.Nd.AND_JOIN_NODE); 163 lProject.addNode("thenode2",Constants.Nd.AND_JOIN_NODE); 164 String ename=lProject.addEdge("thenode","thenode2"); 165 BnEdgeValue ev=lProject.getEdgeValue(ename); 166 BnNodeValue nv=lProject.getNodeValue("thenode2"); 167 assertTrue("addEdge failed a1",ev.getState()==Constants.Ed.INITIAL); 168 assertTrue("bad node state test3",nv.getState()==Constants.Nd.INITIAL); } 169 170 public void testProjectSessionAddUser() throws Exception { 171 ProjectSessionHome projectSessionh=ProjectSessionUtil.getHome(); 172 ProjectSession pss = projectSessionh.create(); 173 pss.initProject("pst"); 174 175 try { 176 pss.addUser("badUser"); 177 assertTrue("Should have throw EJBException",false); 178 } catch (Exception e) { 179 } 181 } 182 183 public void testProjectSessionAddNode() throws Exception { 184 ProjectSessionHome projectSessionh=ProjectSessionUtil.getHome(); 185 ProjectSession pss = projectSessionh.create(); 186 pss.initProject("pst2"); 187 pss.addNode("test",Constants.Nd.AND_JOIN_NODE); 188 BnNodeValue pv=pss.getNodeValue("test"); 189 190 assertTrue("Creator not correctly set",pv.getCreator().equals("admin")); 191 } 192 193 public void testProjectSessionAddEdgesState() throws Exception { 194 ProjectSessionHome projectSessionh=ProjectSessionUtil.getHome(); 195 ProjectSession pss = projectSessionh.create(); 196 pss.initProject("w"); 197 198 pss.addNode("node1",Constants.Nd.AND_JOIN_NODE); 199 pss.addNode("node2",Constants.Nd.AND_JOIN_NODE); 200 pss.addNode("node3",Constants.Nd.AND_JOIN_NODE); 201 String edname=pss.addEdge("node1","node2"); 202 BnEdgeValue ev=pss.getEdgeValue(edname); 203 BnNodeValue nv=pss.getNodeValue("node2"); 204 assertTrue("addEdge failed a1",ev.getState()==Constants.Ed.INITIAL); 205 assertTrue("addEdge failed a1/n2",nv.getState()==Constants.Nd.INITIAL); 206 edname=pss.addEdge("node2","node3"); 207 ev=pss.getEdgeValue(edname); 208 BnNodeValue nv2=pss.getNodeValue("node2"); 209 BnNodeValue nv3=pss.getNodeValue("node3"); 210 assertTrue("addEdge failed a2",ev.getState()==Constants.Ed.INITIAL); 211 assertTrue("addEdge failed a2/nv2",nv2.getState()==Constants.Nd.INITIAL); 212 assertTrue("addEdge failed a2/nv3",nv3.getState()==Constants.Nd.INITIAL); 213 } 214 215 public void testcheckDuplicateEdge() throws Exception { 216 217 try { 218 ProjectSessionHome projectSessionh=ProjectSessionUtil.getHome(); 219 ProjectSession pss = projectSessionh.create(); 220 pss.initProject("wde"); 221 222 pss.addNode("node1",Constants.Nd.AND_JOIN_NODE); 223 pss.addNode("node2",Constants.Nd.AND_JOIN_NODE); 224 pss.addEdge("node1","node2"); 225 226 pss.addNode("node3",Constants.Nd.AND_JOIN_NODE); 227 pss.addEdge("node2","node3"); 228 229 pss.addNode("node4",Constants.Nd.AND_JOIN_NODE); 230 pss.addEdge("node1","node4"); 231 232 pss.addEdge("node1","node2"); 233 assertTrue("Should have thrown a DuplicatedEdgeException",false); 234 }catch(DuplicatedEdgeException e){} 235 } 236 237 public void testDynamicProject() throws Exception { 238 UserSessionHome usersh=UserSessionUtil.getHome(); 239 ProjectSessionHome projectSessionh=ProjectSessionUtil.getHome(); 240 ProjectSession pss = projectSessionh.create(); 241 pss.initProject("dynamic"); 242 243 pss.addNode("n1",Constants.Nd.AND_JOIN_NODE); 244 pss.addNode("n2",Constants.Nd.AND_JOIN_NODE); 245 pss.addEdge("n1","n2"); 246 pss.setNodeRole("n1","admin"); 247 pss.setNodeRole("n1","admin"); 248 249 UserSession usr=usersh.create(); 250 251 usr.startActivity("dynamic","n1"); 252 253 pss.addNode("n3",Constants.Nd.AND_JOIN_NODE); 254 String edge2=pss.addEdge("n2","n3"); 255 256 assertTrue("dynamic change failed - n1",pss.getNodeValue("n1").getState()==Constants.Nd.EXECUTING); 257 assertTrue("dynamic change failed - n2",pss.getNodeValue("n2").getState()==Constants.Nd.ANTICIPABLE); 258 assertTrue("dynamic change failed - n3",pss.getNodeValue("n3").getState()==Constants.Nd.INITIAL); 259 260 usr.startActivity("dynamic","n2"); 261 262 assertTrue("dynamic change failed - n1.1",pss.getNodeValue("n1").getState()==Constants.Nd.EXECUTING); 263 assertTrue("dynamic change failed - n2.1",pss.getNodeValue("n2").getState()==Constants.Nd.ANTICIPATING); 264 assertTrue("dynamic change failed - n3.1",pss.getNodeValue("n3").getState()==Constants.Nd.ANTICIPABLE); 265 266 pss.deleteEdge(edge2); 267 268 assertTrue("dynamic change failed - n1.2",pss.getNodeValue("n1").getState()==Constants.Nd.EXECUTING); 269 assertTrue("dynamic change failed - n2.2",pss.getNodeValue("n2").getState()==Constants.Nd.ANTICIPATING); 270 assertTrue("dynamic change failed - n3.2",pss.getNodeValue("n3").getState()==Constants.Nd.READY); 271 272 pss.addEdge("n2","n3"); 273 274 assertTrue("dynamic change failed - n1.3",pss.getNodeValue("n1").getState()==Constants.Nd.EXECUTING); 275 assertTrue("dynamic change failed - n2.3",pss.getNodeValue("n2").getState()==Constants.Nd.ANTICIPATING); 276 assertTrue("dynamic change failed - n3.3",pss.getNodeValue("n3").getState()==Constants.Nd.ANTICIPABLE); 277 278 } 279 280 public void TestDynamicProject2() throws Exception { 281 UserSessionHome usersh=UserSessionUtil.getHome(); 282 ProjectSessionHome projectSessionh=ProjectSessionUtil.getHome(); 283 284 ProjectSession pss = projectSessionh.create(); 285 pss.initProject("dynamic2"); 286 287 pss.addNode("n1",Constants.Nd.AND_JOIN_NODE); 288 pss.addNode("n2",Constants.Nd.AND_JOIN_NODE); 289 String edge1=pss.addEdge("n1","n2"); 290 pss.setNodeRole("n1","admin"); 291 pss.setNodeRole("n2","admin"); 292 293 UserSession usr=usersh.create(); 294 295 usr.startActivity("dynamic2","n1"); 296 297 pss.addNode("n3",Constants.Nd.AND_JOIN_NODE); 298 pss.addEdge("n2","n3"); 299 300 assertTrue("dynamic change failed - n1",pss.getEdgeValue("n1").getState()==Constants.Nd.EXECUTING); 301 assertTrue("dynamic change failed - n2",pss.getEdgeValue("n2").getState()==Constants.Nd.ANTICIPABLE); 302 assertTrue("dynamic change failed - n3",pss.getEdgeValue("n3").getState()==Constants.Nd.INITIAL); 303 304 pss.addNode("n4",Constants.Nd.AND_JOIN_NODE); 305 pss.addEdge("n1","n4"); 306 pss.deleteEdge(edge1); 307 308 assertTrue("dynamic change failed - n1.1",pss.getEdgeValue("n1").getState()==Constants.Nd.EXECUTING); 309 assertTrue("dynamic change failed - n2.1",pss.getEdgeValue("n2").getState()==Constants.Nd.READY); 310 assertTrue("dynamic change failed - n3.1",pss.getEdgeValue("n3").getState()==Constants.Nd.INITIAL); 311 assertTrue("dynamic change failed - n4.1",pss.getEdgeValue("n4").getState()==Constants.Nd.ANTICIPABLE); 312 } 313 314 public void testDeleteNode() throws Exception { 315 UserSessionHome usersh=UserSessionUtil.getHome(); 316 ProjectSessionHome projectSessionh=ProjectSessionUtil.getHome(); 317 318 ProjectSession pss = projectSessionh.create(); 319 pss.initProject("deleteNode"); 320 321 pss.addNode("n1",Constants.Nd.AND_JOIN_NODE); 322 pss.addNode("n2",Constants.Nd.AND_JOIN_NODE); 323 String edge1=pss.addEdge("n1","n2"); 324 pss.setNodeRole("n1","admin"); 325 pss.setNodeRole("n2","admin"); 326 327 try { 328 pss.deleteNode("n2"); 329 } catch (HeroException he) { 330 assertTrue("Deletion Failed",false); 331 } 332 333 UserSession usr=usersh.create(); 334 335 usr.startActivity("deleteNode","n1"); 336 try { 337 pss.deleteNode("n1"); 338 assertTrue("Deletion Should have Failed",false); 339 } catch (HeroException he) { } 341 } 342 343 344 public void testPropertyNode() throws Exception { 345 ProjectSessionHome projectSessionh=ProjectSessionUtil.getHome(); 346 347 ProjectSession pss = projectSessionh.create(); 348 pss.initProject("propertyNode"); 349 350 pss.addNode("n1",Constants.Nd.AND_JOIN_NODE); 351 pss.addNode("n2",Constants.Nd.AND_JOIN_NODE); 352 String edge1=pss.addEdge("n1","n2"); 353 pss.setNodeRole("n1","admin"); 354 pss.setNodeRole("n2","admin"); 355 pss.setNodeProperty("n1","kpn1","vpn1"); 356 pss.setNodeProperty("n2","kpn2","vpn2"); 357 pss.setNodeProperty("n2","kpn2","vpn22"); 358 359 pss.deleteNode("n2"); 360 361 } 362 363 public void testDeletePropertyNode() throws Exception { 364 ProjectSessionHome projectSessionh=ProjectSessionUtil.getHome(); 365 ProjectSession pss = projectSessionh.create(); 366 pss.initProject("propertyNode"); 367 368 pss.deleteNodeProperty("n1","kpn1"); 369 370 } 371 372 public void testPropertyProject() throws Exception { 373 ProjectSessionHome projectSessionh=ProjectSessionUtil.getHome(); 374 ProjectSession pss = projectSessionh.create(); 375 pss.initProject("propertyNode"); 376 377 pss.setProperty("maintenant","ara"); 378 pss.setProperty("deja","ahora"); 379 pss.setProperty("deja","ja"); 380 381 } 382 public void testDeletePropertyProject() throws Exception { 383 ProjectSessionHome projectSessionh=ProjectSessionUtil.getHome(); 384 ProjectSession pss = projectSessionh.create(); 385 pss.initProject("propertyNode"); 386 387 pss.deleteProperty("maintenant"); 388 } 389 390 391 public void testNodePropertyPropagate() throws Exception { 392 UserSessionHome usersh=UserSessionUtil.getHome(); 393 ProjectSessionHome projectSessionh=ProjectSessionUtil.getHome(); 394 ProjectSession pss = projectSessionh.create(); 395 pss.initProject("propertyNode"); 396 397 pss.addNode("n5",Constants.Nd.AND_JOIN_NODE); 398 pss.addNode("n6",Constants.Nd.AND_JOIN_NODE); 399 String edge1=pss.addEdge("n5","n6"); 400 pss.setNodeRole("n5","admin"); 401 pss.setNodeRole("n6","admin"); 402 pss.setNodeProperty("n5","value","15"); 403 pss.setNodeProperty("n5","value2","10"); 404 pss.setNodeProperty("n6","value","25"); 405 406 UserSession usr=usersh.create(); 407 usr.startActivity("propertyNode","n5"); 408 usr.terminateActivity("propertyNode","n5"); 409 } 410 411 public void testGetPropertiesNode() throws Exception { 412 413 ProjectSessionHome projectSessionh=ProjectSessionUtil.getHome(); 414 ProjectSession pss = projectSessionh.create(); 415 pss.initProject("propertyNode"); 416 417 pss.addNode("p1",Constants.Nd.AND_JOIN_NODE); 418 419 pss.setNodeProperty("p1","k1","10"); 420 421 Collection c=pss.getNodeProperties("p1"); 422 423 for(Iterator i=c.iterator();i.hasNext();){ 424 BnNodePropertyValue p=(BnNodePropertyValue)i.next(); 425 String key=p.getTheKey(); 426 String value=p.getTheValue(); 427 assertTrue("Get BnNode Properties",key.equalsIgnoreCase("k1")); 428 429 } 430 } 431 public void testGetProperties() throws Exception { 432 433 ProjectSessionHome projectSessionh=ProjectSessionUtil.getHome(); 434 ProjectSession pss = projectSessionh.create(); 435 pss.initProject("propertyNode"); 436 437 pss.setProperty("pk1","xxx"); 438 439 Collection c=pss.getProperties(); 440 441 for(Iterator i=c.iterator();i.hasNext();){ 442 BnProjectPropertyValue p=(BnProjectPropertyValue)i.next(); 443 String key=p.getTheKey(); 444 String value=p.getTheValue(); 445 if (value.equals("xxx")) 446 assertTrue("Get Properties",key.equals("pk1")); 447 } 448 } 449 450 public void testNodeDeadline() throws Exception { 451 452 ProjectSessionHome projectSessionh=ProjectSessionUtil.getHome(); 453 ProjectSession pss = projectSessionh.create(); 454 pss.initProject("deadlineNode"); 455 456 pss.addNode("d1",Constants.Nd.AND_JOIN_NODE); 457 pss.setNodeRole("d1","admin"); 458 pss.setNodeDeadline("d1",System.currentTimeMillis()+(long)10000); 459 } 460 461 462 public void testJavaHook() throws Exception { 463 ProjectSessionHome projectSessionh=ProjectSessionUtil.getHome(); 464 UserSessionHome usersh=UserSessionUtil.getHome(); 465 UserSession usr=usersh.create(); 466 ProjectSession pss=projectSessionh.create(); 467 pss.initProject("hookProject"); 468 pss.addHook("hero.hook.TestHook",hero.interfaces.Constants.Nd.AFTERSTART,Constants.Hook.JAVA); 469 pss.addNode("h2",Constants.Nd.AND_JOIN_NODE); 470 pss.setNodeRole("h2","admin"); 471 pss.addNode("h1",Constants.Nd.AND_JOIN_NODE); 472 pss.addNodeHook("h1","hero.hook.TestHook",hero.interfaces.Constants.Nd.AFTERSTART,Constants.Hook.JAVA); 473 pss.setNodeRole("h1","admin"); 474 475 usr.startActivity("hookProject","h1"); 476 usr.terminateActivity("hookProject","h1"); 477 usr.startActivity("hookProject","h2"); 478 usr.terminateActivity("hookProject","h2"); 479 pss.deleteNodeHook("h1","hero.hook.TestHook"); 480 481 } 482 483 public void testJavaHookInstance() throws Exception { 484 ProjectSessionHome projectSessionh=ProjectSessionUtil.getHome(); 485 UserSessionHome usersh=UserSessionUtil.getHome(); 486 UserSession usr=usersh.create(); 487 ProjectSession pss=projectSessionh.create(); 488 pss.initModel("hookProjectInst"); 489 pss.addHook("hero.hook.TestHook",hero.interfaces.Constants.Nd.AFTERSTART,Constants.Hook.JAVA); 490 pss.addNode("h2",Constants.Nd.AND_JOIN_NODE); 491 pss.setNodeRole("h2","admin"); 492 pss.addNode("h1",Constants.Nd.AND_JOIN_NODE); 493 pss.addNodeHook("h1","hero.hook.TestHook",hero.interfaces.Constants.Nd.AFTERSTART,Constants.Hook.JAVA); 494 pss.setNodeRole("h1","admin"); 495 496 String instName = pss.instantiateProject("hookProjectInst"); 497 498 usr.startActivity(instName,"h1"); 499 usr.terminateActivity(instName,"h1"); 500 usr.startActivity(instName,"h2"); 501 usr.terminateActivity(instName,"h2"); 502 } 503 504 public void testNodeInterHook() throws Exception { 505 ProjectSessionHome projectSessionh=ProjectSessionUtil.getHome(); 506 UserSessionHome usersh=UserSessionUtil.getHome(); 507 UserSession usr=usersh.create(); 508 ProjectSession pss = projectSessionh.create(); 509 pss.initProject("hookInterNode"); 510 pss.addNode("h2",Constants.Nd.AND_JOIN_NODE); 511 pss.setNodeRole("h2","admin"); 512 pss.addNode("h1",Constants.Nd.AND_JOIN_NODE); 513 pss.setNodeRole("h1","admin"); 514 String edge1=pss.addEdge("h1","h2"); 515 String script = 516 "import hero.interfaces.BnProjectLocal;\n" 517 + "import hero.interfaces.BnNodeLocal;\n" 518 + "afterStart (Object b,Object n) {\n\n\n" 519 + "System.out.println(\"InteractiveBnNodee Hook test, node: \"+n.getName());" 520 + "}"; 521 pss.addNodeInterHook("h1","interTest",hero.interfaces.Constants.Nd.AFTERSTART,Constants.Hook.BSINTERACTIVE,script); 522 usr.startActivity("hookInterNode","h1"); 523 usr.terminateActivity("hookInterNode","h1"); 524 } 525 526 public void testNodeInterHookProperty() throws Exception { 527 ProjectSessionHome projectSessionh=ProjectSessionUtil.getHome(); 528 UserSessionHome usersh=UserSessionUtil.getHome(); 529 UserSession usr=usersh.create(); 530 ProjectSession pss = projectSessionh.create(); 531 pss.initProject("hookInterNodeP"); 532 pss.addNode("h2",Constants.Nd.AND_JOIN_NODE); 533 pss.setNodeRole("h2","admin"); 534 pss.addNode("h1",Constants.Nd.AND_JOIN_NODE); 535 pss.setNodeProperty("h1","testp1","testv1",true); 536 pss.setNodeProperty("h1","testp2","testv2",true); 537 pss.setNodeRole("h1","admin"); 538 String edge1=pss.addEdge("h1","h2"); 539 String script = 540 "import hero.interfaces.BnProjectLocal;\n" 541 + "import hero.interfaces.BnNodeLocal;\n" 542 + "afterStart (Object b,Object n) {\n\n\n" 543 + "System.out.println(\"InteractiveBnNodee Hook properties tests, node: \"+n.getName());\n" 544 + "System.out.println(\"property \"+testp2);\n" 545 + "}"; 546 pss.addNodeInterHook("h1","interTest",hero.interfaces.Constants.Nd.AFTERSTART,Constants.Hook.BSINTERACTIVE,script); 547 usr.startActivity("hookInterNodeP","h1"); 548 usr.terminateActivity("hookInterNodeP","h1"); 549 } 550 551 public void testProjectInterHook() throws Exception { 552 ProjectSessionHome projectSessionh=ProjectSessionUtil.getHome(); 553 UserSessionHome usersh=UserSessionUtil.getHome(); 554 UserSession usr=usersh.create(); 555 ProjectSession pss = projectSessionh.create(); 556 pss.initProject("hookInterProject"); 557 pss.addNode("h2",Constants.Nd.AND_JOIN_NODE); 558 pss.setNodeRole("h2","admin"); 559 pss.addNode("h1",Constants.Nd.AND_JOIN_NODE); 560 pss.setNodeRole("h1","admin"); 561 String edge1=pss.addEdge("h1","h2"); 562 String script = 563 "import hero.interfaces.BnProjectLocal;\n" 564 + "import hero.interfaces.BnNodeLocal;\n" 565 + "afterStart (Object b,Object n) {\n\n\n" 566 + "System.out.println(\"InteractiveBnProjectt Hook test, node: \"+n.getName());" 567 + "}"; 568 pss.addInterHook("projectInterTest",hero.interfaces.Constants.Nd.AFTERSTART,Constants.Hook.BSINTERACTIVE,script); 569 usr.startActivity("hookInterProject","h1"); 570 usr.terminateActivity("hookInterProject","h1"); 571 } 572 573 public void testDuplicatedInterHook() throws Exception { 574 ProjectSessionHome projectSessionh=ProjectSessionUtil.getHome(); 575 UserSessionHome usersh=UserSessionUtil.getHome(); 576 UserSession usr=usersh.create(); 577 ProjectSession pss = projectSessionh.create(); 578 pss.initProject("dupliHookInter"); 579 pss.addNode("h2",Constants.Nd.AND_JOIN_NODE); 580 pss.setNodeRole("h2","admin"); 581 pss.addNode("h1",Constants.Nd.AND_JOIN_NODE); 582 pss.setNodeRole("h1","admin"); 583 String edge1=pss.addEdge("h1","h2"); 584 String script = 585 "import hero.interfaces.BnProjectLocal;\n" 586 + "import hero.interfaces.BnNodeLocal;\n" 587 + "afterStart (Object b,Object n) {\n\n\n" 588 + "System.out.println(\"InteractiveBnProjectt Hook test, node: \"+n.getName()+\" project: \"+(n.getBnProject()).getName());" 589 + "}"; 590 pss.addInterHook("projectInterTest",hero.interfaces.Constants.Nd.AFTERSTART,Constants.Hook.BSINTERACTIVE,script); 591 try { 592 pss.addInterHook("projectInterTest",hero.interfaces.Constants.Nd.AFTERSTART,Constants.Hook.BSINTERACTIVE,script); 593 assertTrue("should have failed", false); 594 } catch (HeroException h) { 595 } 597 usr.startActivity("dupliHookInter","h1"); 598 usr.terminateActivity("dupliHookInter","h1"); 599 } 600 601 public void testSubProcess() throws Exception { 602 603 ProjectSessionHome projectSessionh=ProjectSessionUtil.getHome(); 604 ProjectSession pss = projectSessionh.create(); 605 pss.initProject("SubProject"); 606 pss.addNode("subNode1",Constants.Nd.AND_JOIN_NODE); 607 pss.addNode("subNode2",Constants.Nd.AND_JOIN_NODE); 608 pss.addEdge("subNode1","subNode2"); 609 610 ProjectSession pss1 = projectSessionh.create(); 611 pss1 = projectSessionh.create(); 612 pss1.initProject("ParentProject"); 613 pss1.addNode("node1",Constants.Nd.AND_JOIN_NODE); 614 pss1.addNode("node2",Constants.Nd.AND_JOIN_NODE); 615 pss1.addNode("SubProject",Constants.Nd.SUB_PROCESS_NODE); 616 pss1.addEdge("node1","SubProject"); 617 pss1.addEdge("SubProject","node2"); 618 UserSessionHome usersh=UserSessionUtil.getHome(); 619 UserSession usr=usersh.create(); 620 usr.startActivity("ParentProject","node1"); 621 usr.terminateActivity("ParentProject","node1"); 622 623 assertTrue("SubProcess Error", pss1.getNodeState("SubProject")==Constants.Nd.EXECUTING); 624 625 627 usr.startActivity("SubProject","subNode1"); 628 usr.startActivity("SubProject","subNode2"); 629 usr.terminateActivity("SubProject","subNode1"); 630 usr.terminateActivity("SubProject","subNode2"); 631 assertTrue("SubProcess Error", pss1.getNodeState("SubProject")==Constants.Nd.TERMINATED); 632 } 633 634 public void testSimpleInstantiation() throws Exception { 635 636 ProjectSessionHome projectSessionh=ProjectSessionUtil.getHome(); 637 ProjectSession pss = projectSessionh.create(); 638 pss.initModel("Instantiation"); 639 pss.addNode("node1",Constants.Nd.AND_JOIN_NODE); 640 pss.addNode("node2",Constants.Nd.AND_JOIN_NODE); 641 pss.addNode("node3",Constants.Nd.AND_JOIN_NODE); 642 pss.addNode("node4",Constants.Nd.AND_JOIN_AUTOMATIC_NODE); 643 pss.addEdge("node1","node2"); 644 pss.addEdge("node2","node3"); 645 pss.addEdge("node2","node4"); 646 String script = 647 "import hero.interfaces.BnProjectLocal;\n" 648 + "import hero.interfaces.BnNodeLocal;\n" 649 + "afterStart (Object b,Object n) {\n\n\n" 650 + "System.out.println(\"Instantiation test, node: \"+n.getName()+\" project: \"+(n.getBnProject()).getName());" 651 + "}"; 652 pss.addNodeInterHook("node2","node2",hero.interfaces.Constants.Nd.AFTERSTART,Constants.Hook.BSINTERACTIVE,script); 653 pss.addUser("admin2"); 654 pss.setUserRole("admin2","InitialRole"); 655 pss.setNodeRole("node1","admin"); 656 657 ProjectSession pss1 = projectSessionh.create(); 658 String instName=pss1.instantiateProject("Instantiation"); 659 assertTrue("Instantiation Error, instance name error", pss1.getName().equals(instName)); 660 assertTrue("Instantiation Error, role error in node1", pss1.getNodeRoleName("node1").equals("admin")); 661 Collection users = pss1.getUsers(); 662 assertTrue("Instantiation Error, user admin2 does not exist", users.contains("admin2")); 663 assertTrue("Instantiation Error, type error in node1", pss1.getNodeType("node1")== Constants.Nd.AND_JOIN_NODE); 664 } 665 666 public void testSubProcessInstantiation() throws Exception { 667 668 ProjectSessionHome projectSessionh=ProjectSessionUtil.getHome(); 669 670 ProjectSession psSub = projectSessionh.create(); 671 psSub.initProject("node5"); 672 psSub.addNode("subNode1",Constants.Nd.AND_JOIN_NODE); 673 psSub.addNode("subNode2",Constants.Nd.AND_JOIN_NODE); 674 psSub.addEdge("subNode1","subNode2"); 675 676 String script = 677 "import hero.interfaces.BnProjectLocal;\n" 678 + "import hero.interfaces.BnNodeLocal;\n" 679 + "afterStart (Object b,Object n) {\n\n\n" 680 + "System.out.println(\"SPInstantiation test, SubProcess: \"+n.getName()+\" project: \"+(n.getBnProject()).getName());" 681 + "}"; 682 psSub.addNodeInterHook("subNode2","subNode2",hero.interfaces.Constants.Nd.AFTERSTART,Constants.Hook.BSINTERACTIVE,script); 683 psSub.addUser("admin2"); 684 psSub.setNodeRole("subNode1","admin"); 685 686 ProjectSession pss = projectSessionh.create(); 687 pss.initModel("SPInstantiation"); 688 pss.addNode("node1",Constants.Nd.AND_JOIN_NODE); 689 pss.addNode("node2",Constants.Nd.AND_JOIN_NODE); 690 pss.addNode("node3",Constants.Nd.AND_JOIN_NODE); 691 pss.addNode("node4",Constants.Nd.AND_JOIN_AUTOMATIC_NODE); 692 pss.addNodeSubProcess("node5","SPInstantiation"); 693 pss.addEdge("node1","node2"); 694 pss.addEdge("node2","node3"); 695 pss.addEdge("node2","node4"); 696 pss.addEdge("node3","node5"); 697 script = 698 "import hero.interfaces.BnProjectLocal;\n" 699 + "import hero.interfaces.BnNodeLocal;\n" 700 + "afterStart (Object b,Object n) {\n\n\n" 701 + "System.out.println(\"SPInstantiation test, node: \"+n.getName()+\" project: \"+(n.getBnProject()).getName());" 702 + "}"; 703 pss.addNodeInterHook("node2","node2",hero.interfaces.Constants.Nd.AFTERSTART,Constants.Hook.BSINTERACTIVE,script); 704 pss.addUser("admin2"); 705 pss.setUserRole("admin2","InitialRole"); 706 pss.setNodeRole("node1","admin"); 707 ProjectSession pss1 = projectSessionh.create(); 708 String instName=pss1.instantiateProject("SPInstantiation"); 709 assertTrue("Instantiation Error, instance name error", pss1.getName().equals(instName)); 710 assertTrue("Instantiation Error, role error in node1", pss1.getNodeRoleName("node1").equals("admin")); 711 Collection users = pss1.getUsers(); 712 assertTrue("Instantiation Error, user admin2 does not exist", users.contains("admin2")); 713 assertTrue("Instantiation Error, type error in node1", pss1.getNodeType("node1")== Constants.Nd.AND_JOIN_NODE); 714 } 715 716 public void testGetProjectNameOfInstance() throws Exception { 717 ProjectSessionHome projectSessionh=ProjectSessionUtil.getHome(); 718 ProjectSession ps = projectSessionh.create(); 719 ps.initModel("ofInstance"); 720 ProjectSession pss1 = projectSessionh.create(); 721 String instanceName = pss1.instantiateProject("ofInstance"); 722 String projectName = pss1.getProjectNameOfInstance(instanceName); 723 assertTrue("Error in getProjectNameOfInstance",projectName.equals("ofInstance")); 724 try { 725 projectName = pss1.getProjectNameOfInstance("ofInstance"); 726 } catch (Exception io) { 727 assertTrue("getProjectNameOfInstance error when is not a valid instance",true); 728 } 729 } 730 731 public void testGetParent() throws Exception { 732 ProjectSessionHome projectSessionh=ProjectSessionUtil.getHome(); 734 ProjectSession ps = projectSessionh.create(); 735 ps.initModel("getParent"); 736 ProjectSession ps2 = projectSessionh.create(); 737 ps2.initModel("getParent2"); 738 ps.addNodeSubProcess("node","getParent2"); 739 740 ps2.initProject("node"); 741 String p= ps2.getParent(); 742 assertTrue("Error in getParent when add subProcess",p.equals("getParent")); 743 744 String instance=ps.instantiateProject("getParent"); 746 String pInstance=ps.getParent(); 747 assertTrue("Error in getParent when instantiate",pInstance.equals(instance)); 748 749 } 750 751 public void testUnsetUserRole() throws Exception { 752 ProjectSessionHome projectSessionh=ProjectSessionUtil.getHome(); 753 ProjectSession ps = projectSessionh.create(); 754 ps.initProject("unset"); 755 ProjectSession ps2 = projectSessionh.create(); 756 ps2.initProject("unset2"); 757 758 ps.addUser("admin2"); 759 ps.setUserRole("admin2","InitialRole"); 760 ps2.addUser("admin2"); 761 ps2.setUserRole("admin2","InitialRole"); 762 763 ps.unsetUserRole("admin2","InitialRole"); 764 Collection names = ps.getUserRolesInProjectNames("admin2"); 765 766 assertTrue("Error in unset user roles: InitialRole",!names.contains("InitialRole")); 767 assertTrue("Error in unset user roles: admin",names.contains("admin2")); 768 } 769 770 public void testIteration() throws Exception { 771 ProjectSessionHome projectSessionh=ProjectSessionUtil.getHome(); 772 ProjectSession ps = projectSessionh.create(); 773 ps.initModel("Iteration"); 774 775 ps.addNode("node0",Constants.Nd.AND_JOIN_NODE); 777 ps.addNode("node1",Constants.Nd.AND_JOIN_NODE); 778 ps.addNode("node2",Constants.Nd.AND_JOIN_NODE); 779 ps.addNode("node3",Constants.Nd.AND_JOIN_NODE); 780 ps.addNode("node4",Constants.Nd.AND_JOIN_NODE); 781 ps.addNode("node5",Constants.Nd.AND_JOIN_NODE); 782 ps.addNode("node6",Constants.Nd.AND_JOIN_NODE); 783 ps.addNode("node7",Constants.Nd.AND_JOIN_NODE); 784 ps.addNode("node8",Constants.Nd.AND_JOIN_AUTOMATIC_NODE); 785 ps.setNodeTraditional("node8"); 786 ps.addNode("node9",Constants.Nd.AND_JOIN_AUTOMATIC_NODE); 787 ps.setNodeTraditional("node9"); 788 789 791 ps.addEdge("node0","node1"); 792 ps.addEdge("node1","node3"); 793 ps.addEdge("node1","node4"); 794 ps.addEdge("node1","node5"); 795 ps.addEdge("node3","node6"); 796 ps.addEdge("node4","node6"); 797 ps.addEdge("node4","node2"); 798 ps.addEdge("node5","node6"); 799 ps.addEdge("node6","node7"); 800 ps.addEdge("node3","node8"); 801 ps.addEdge("node8","node9"); 802 ps.addEdge("node5","node4"); 803 804 ps.addIteration("node6","node1","iterate.equals(\"true\")"); 806 807 ps.setUserRole("admin","InitialRole"); 809 String project = ps.instantiateProject("Iteration"); 811 ps.setProperty("iterate","true"); 812 813 UserSessionHome usersh=UserSessionUtil.getHome(); 814 UserSession usr=usersh.create(); 815 usr.startActivity(project,"node0"); 816 817 assertTrue("Error in Iterate, startActivity node0: node0 failed",ps.getNodeValue("node0").getState() == Constants.Nd.EXECUTING); 818 assertTrue("Error in Iterate, startActivity node0: node1 failed",ps.getNodeValue("node1").getState() == Constants.Nd.ANTICIPABLE); 819 820 usr.terminateActivity(project,"node0"); 821 822 assertTrue("Error in Iterate, terminateActivity node0: node0 failed",ps.getNodeValue("node0").getState() == Constants.Nd.TERMINATED); 823 assertTrue("Error in Iterate, terminateActivity node0: node1 failed",ps.getNodeValue("node1").getState() == Constants.Nd.READY); 824 int index = 0; 825 while (index<2) 826 { 827 usr.startActivity(project,"node1"); 828 assertTrue("Error in Iterate, startActivity node1: node1 failed",ps.getNodeValue("node1").getState() == Constants.Nd.EXECUTING); 829 assertTrue("Error in Iterate, startActivity node1: node3 failed",ps.getNodeValue("node3").getState() == Constants.Nd.ANTICIPABLE); 830 assertTrue("Error in Iterate, startActivity node1: node4 failed",ps.getNodeValue("node4").getState() == Constants.Nd.INITIAL); 831 assertTrue("Error in Iterate, startActivity node1: node5 failed",ps.getNodeValue("node5").getState() == Constants.Nd.ANTICIPABLE); 832 833 usr.terminateActivity(project,"node1"); 834 assertTrue("Error in Iterate, terminateActivity node1: node1 failed",ps.getNodeValue("node1").getState() == Constants.Nd.TERMINATED); 835 assertTrue("Error in Iterate, terminateActivity node1: node3 failed",ps.getNodeValue("node3").getState() == Constants.Nd.READY); 836 assertTrue("Error in Iterate, terminateActivity node1: node4 failed",ps.getNodeValue("node4").getState() == Constants.Nd.INITIAL); 837 assertTrue("Error in Iterate, terminateActivity node1: node5 failed",ps.getNodeValue("node5").getState() == Constants.Nd.READY); 838 839 usr.startActivity(project,"node3"); 840 usr.startActivity(project,"node5"); 841 usr.startActivity(project,"node4"); 842 try{ 843 usr.startActivity(project,"node2"); 844 assertTrue("Error in Iterate, startActivity node2: node2 should be failed",false); 845 }catch(Exception e){} 846 847 usr.terminateActivity(project,"node3"); 848 usr.terminateActivity(project,"node5"); 849 usr.terminateActivity(project,"node4"); 850 851 assertTrue("Error in Iterate, terminateActivity node3: node8 failed",ps.getNodeValue("node8").getState() == Constants.Nd.INITIAL); 852 usr.startActivity(project,"node6"); 853 usr.terminateActivity(project,"node6"); 854 assertTrue("Error in Iterate, terminateActivity node6: node6 failed",ps.getNodeValue("node6").getState() == Constants.Nd.INITIAL); 855 index++; 856 } 857 858 usr.startActivity(project,"node1"); 859 assertTrue("Error in Iterate, startActivity node1: node1 failed",ps.getNodeValue("node1").getState() == Constants.Nd.EXECUTING); 860 assertTrue("Error in Iterate, startActivity node1: node2 failed",ps.getNodeValue("node2").getState() == Constants.Nd.INITIAL); 861 assertTrue("Error in Iterate, startActivity node1: node3 failed",ps.getNodeValue("node3").getState() == Constants.Nd.ANTICIPABLE); 862 assertTrue("Error in Iterate, startActivity node1: node4 failed",ps.getNodeValue("node4").getState() == Constants.Nd.INITIAL); 863 assertTrue("Error in Iterate, startActivity node1: node5 failed",ps.getNodeValue("node5").getState() == Constants.Nd.ANTICIPABLE); 864 865 usr.terminateActivity(project,"node1"); 866 assertTrue("Error in Iterate, terminateActivity node1: node1 failed",ps.getNodeValue("node1").getState() == Constants.Nd.TERMINATED); 867 assertTrue("Error in Iterate, terminateActivity node1: node2 failed",ps.getNodeValue("node2").getState() == Constants.Nd.INITIAL); 868 assertTrue("Error in Iterate, terminateActivity node1: node3 failed",ps.getNodeValue("node3").getState() == Constants.Nd.READY); 869 assertTrue("Error in Iterate, terminateActivity node1: node4 failed",ps.getNodeValue("node4").getState() == Constants.Nd.INITIAL); 870 assertTrue("Error in Iterate, terminateActivity node1: node5 failed",ps.getNodeValue("node5").getState() == Constants.Nd.READY); 871 872 try{ 873 usr.startActivity(project,"node2"); 874 assertTrue("Error in Iterate, startActivity node2: node2 should be failed",false); 875 }catch(Exception e){} 876 usr.startActivity(project,"node3"); 877 usr.startActivity(project,"node5"); 878 usr.startActivity(project,"node4"); 879 880 usr.terminateActivity(project,"node3"); 881 usr.terminateActivity(project,"node5"); 882 usr.terminateActivity(project,"node4"); 883 884 assertTrue("Error in Iterate, terminateActivity node3: node8 failed",ps.getNodeValue("node8").getState() == Constants.Nd.INITIAL); 885 usr.startActivity(project,"node6"); 886 887 ps.setProperty("iterate","false"); 888 889 usr.terminateActivity(project,"node6"); 890 assertTrue("Error in Iterate, terminateActivity node6: node6 failed",ps.getNodeValue("node6").getState() == Constants.Nd.TERMINATED); 891 892 assertTrue("Error in Iterate, terminateActivity node6, after iterate: node7 failed",ps.getNodeValue("node7").getState() == Constants.Nd.READY); 893 assertTrue("Error in Iterate, terminateActivity node6, after iterate: node2 failed",ps.getNodeValue("node2").getState() == Constants.Nd.READY); 894 assertTrue("Error in Iterate, terminateActivity node6, after iterate: node8 failed",ps.getNodeValue("node8").getState() == Constants.Nd.TERMINATED); 895 assertTrue("Error in Iterate, terminateActivity node6, after iterate: node9 failed",ps.getNodeValue("node9").getState() == Constants.Nd.TERMINATED); 896 897 } 898 899 public void testMapper() throws Exception { 900 901 ProjectSessionHome projectSessionh=ProjectSessionUtil.getHome(); 902 ProjectSession pss = projectSessionh.create(); 903 String projectName = "TestMapperProperties5"; 904 pss.initModel(projectName); 905 906 String role1="Admintata"; 907 pss.addRole(role1, "role pour activity 1"); 908 pss.addNode("node1",Constants.Nd.AND_JOIN_NODE); 909 pss.setNodeRole("node1",role1); 910 911 pss.addRoleMapper(role1,"mapper1",Constants.Mapper.PROPERTIES); 913 914 java.util.Collection co = null; 915 co = pss.getRoleMappers(); 916 java.util.Iterator it =co.iterator(); 917 String mapperName =""; 918 int mapperType = 100; 919 while (it.hasNext()){ 920 BnRoleMapperValue mv = (BnRoleMapperValue)it.next(); 921 mapperName = mv.getName(); 922 mapperType = mv.getType(); 923 } 924 System.out.println("mapperName = " + mapperName); 925 assertTrue("Error retreiving the created mapper name","mapper1".equals(mapperName)); 926 assertTrue("Error retreiving the created mapper id", Constants.Mapper.PROPERTIES == mapperType); 927 928 pss.instantiateProject(projectName); 930 931 String creator = pss.getCreator(); 932 co = pss.getUserRolesInProjectNames(creator); 933 assertTrue("Role Admintata has not been set to the creator", co.contains(creator)); 934 } 935 936 public void testLazyInstantiation() throws Exception { 937 ProjectSessionHome projectSessionh=ProjectSessionUtil.getHome(); 938 ProjectSession ps = projectSessionh.create(); 939 ps.initModel("LazyProject"); 940 941 ps.addNode("node0",Constants.Nd.AND_JOIN_NODE); 943 ps.addNode("node1",Constants.Nd.AND_JOIN_NODE); 944 ps.addNode("node3",Constants.Nd.AND_JOIN_NODE); 945 ps.addNode("node4",Constants.Nd.OR_JOIN_NODE); 946 ps.setNodeTraditional("node4"); 947 ps.addNode("node5",Constants.Nd.AND_JOIN_NODE); 948 949 ps.addEdge("node0","node1"); 951 ps.addEdge("node1","node3"); 952 ps.addEdge("node1","node4"); 953 ps.addEdge("node1","node5"); 954 955 ps.addRoleMapper("InitialRole","roleMapperTest",Constants.Mapper.PROPERTIES); 956 957 String instName = ps.instantiateProject("LazyProject"); 958 assertTrue("Error in number of nodes after instantiation, number of nodes:"+ps.getNodesNames().size(),ps.getNodesNames().size()==1); 959 960 UserSessionHome userSessionh = UserSessionUtil.getHome(); 961 UserSession us = userSessionh.create(); 962 assertTrue("Error in roleMapper",us.getToDoList(instName).contains("node0")); 963 } 964 965 public void testLazyInstantiationexecution() throws Exception { 966 ProjectSessionHome projectSessionh=ProjectSessionUtil.getHome(); 967 ProjectSession ps = projectSessionh.create(); 968 ps.initModel("LazyProjectExec"); 969 970 ps.addNode("node0",Constants.Nd.AND_JOIN_NODE); 972 ps.addNode("node1",Constants.Nd.AND_JOIN_NODE); 973 ps.addNode("node2",Constants.Nd.AND_JOIN_NODE); 974 ps.addNode("node3",Constants.Nd.AND_JOIN_NODE); 975 ps.addNode("node4",Constants.Nd.OR_JOIN_NODE); 976 ps.setNodeTraditional("node4"); 977 ps.addNode("node5",Constants.Nd.AND_JOIN_NODE); 978 ps.addNode("node6",Constants.Nd.AND_JOIN_NODE); 979 ps.addNode("node7",Constants.Nd.AND_JOIN_NODE); 980 ps.addNode("node8",Constants.Nd.AND_JOIN_AUTOMATIC_NODE); 981 ps.setNodeTraditional("node8"); 982 ps.addNode("node9",Constants.Nd.AND_JOIN_AUTOMATIC_NODE); 983 ps.setNodeTraditional("node9"); 984 985 ps.addEdge("node0","node1"); 987 ps.addEdge("node1","node3"); 988 ps.addEdge("node1","node4"); 989 ps.addEdge("node1","node5"); 990 ps.addEdge("node3","node6"); 991 ps.addEdge("node4","node6"); 992 ps.addEdge("node4","node2"); 993 ps.addEdge("node5","node6"); 994 ps.addEdge("node6","node7"); 995 ps.addEdge("node3","node8"); 996 ps.addEdge("node8","node9"); 997 ps.addEdge("node5","node4"); 998 999 String instName = ps.instantiateProject("LazyProjectExec"); 1000 UserSessionHome userSessionh = UserSessionUtil.getHome(); 1001 UserSession us = userSessionh.create(); 1002 us.startActivity(instName,"node0"); 1003 assertTrue("Error in number of nodes after start node0, number of nodes:"+ps.getNodesNames().size(),ps.getNodesNames().size()==5); 1004 assertTrue("Error in state of node0 after start node0",ps.getNodeValue("node0").getState() == Constants.Nd.EXECUTING); 1005 assertTrue("Error in state of node1 after start node0",ps.getNodeValue("node1").getState() == Constants.Nd.ANTICIPABLE); 1006 assertTrue("Error in state of node3 after start node0",ps.getNodeValue("node3").getState() == Constants.Nd.INITIAL); 1007 assertTrue("Error in state of node4 after start node0",ps.getNodeValue("node4").getState() == Constants.Nd.INITIAL); 1008 assertTrue("Error in state of node5 after start node0",ps.getNodeValue("node5").getState() == Constants.Nd.INITIAL); 1009 us.terminateActivity(instName,"node0"); 1010 assertTrue("Error in number of nodes after terminate node0, number of nodes:"+ps.getNodesNames().size(),ps.getNodesNames().size()==5); 1011 assertTrue("Error in state of node0 after terminate node0",ps.getNodeValue("node0").getState() == Constants.Nd.TERMINATED); 1012 assertTrue("Error in state of node1 after terminate node0",ps.getNodeValue("node1").getState() == Constants.Nd.READY); 1013 assertTrue("Error in state of node3 after terminate node0",ps.getNodeValue("node3").getState() == Constants.Nd.INITIAL); 1014 assertTrue("Error in state of node4 after terminate node0",ps.getNodeValue("node4").getState() == Constants.Nd.INITIAL); 1015 assertTrue("Error in state of node5 after terminate node0",ps.getNodeValue("node5").getState() == Constants.Nd.INITIAL); 1016 us.startActivity(instName,"node1"); 1017 assertTrue("Error in number of nodes after start node1, number of nodes:"+ps.getNodesNames().size(),ps.getNodesNames().size()==7); 1018 assertTrue("Error in state of node1 after start node1",ps.getNodeValue("node1").getState() == Constants.Nd.EXECUTING); 1019 assertTrue("Error in state of node3 after start node1",ps.getNodeValue("node3").getState() == Constants.Nd.ANTICIPABLE); 1020 assertTrue("Error in state of node4 after start node1",ps.getNodeValue("node4").getState() == Constants.Nd.INITIAL); 1021 assertTrue("Error in state of node5 after start node1",ps.getNodeValue("node5").getState() == Constants.Nd.ANTICIPABLE); 1022 assertTrue("Error in state of node6 after start node1",ps.getNodeValue("node6").getState() == Constants.Nd.INITIAL); 1023 assertTrue("Error in state of node8 after start node1",ps.getNodeValue("node8").getState() == Constants.Nd.INITIAL); 1024 us.startActivity(instName,"node3"); 1025 us.startActivity(instName,"node5"); 1026 assertTrue("Error in number of nodes after start node3 and node5, number of nodes:"+ps.getNodesNames().size(),ps.getNodesNames().size()==7); 1027 assertTrue("Error in state of node1 after start node3 and node5",ps.getNodeValue("node1").getState() == Constants.Nd.EXECUTING); 1028 assertTrue("Error in state of node3 after start node3 and node5",ps.getNodeValue("node3").getState() == Constants.Nd.ANTICIPATING); 1029 assertTrue("Error in state of node4 after start node3 and node5",ps.getNodeValue("node4").getState() == Constants.Nd.INITIAL); 1030 assertTrue("Error in state of node5 after start node3 and node5",ps.getNodeValue("node5").getState() == Constants.Nd.ANTICIPATING); 1031 assertTrue("Error in state of node6 after start node3 and node5",ps.getNodeValue("node6").getState() == Constants.Nd.INITIAL); 1032 assertTrue("Error in state of node8 after start node3 and node5",ps.getNodeValue("node8").getState() == Constants.Nd.INITIAL); 1033 us.terminateActivity(instName,"node1"); 1034 us.terminateActivity(instName,"node3"); 1035 us.terminateActivity(instName,"node5"); 1036 assertTrue("Error in number of nodes after start node3 and node5, number of nodes:"+ps.getNodesNames().size(),ps.getNodesNames().size()==9); 1037 assertTrue("Error in state of node1 after terminate node1,node3 and node5",ps.getNodeValue("node1").getState() == Constants.Nd.TERMINATED); 1038 assertTrue("Error in state of node2 after terminate node1,node3 and node5",ps.getNodeValue("node2").getState() == Constants.Nd.INITIAL); 1039 assertTrue("Error in state of node3 after terminate node1,node3 and node5",ps.getNodeValue("node3").getState() == Constants.Nd.TERMINATED); 1040 assertTrue("Error in state of node4 after terminate node1,node3 and node5",ps.getNodeValue("node4").getState() == Constants.Nd.READY); 1041 assertTrue("Error in state of node5 after terminate node1,node3 and node5",ps.getNodeValue("node5").getState() == Constants.Nd.TERMINATED); 1042 assertTrue("Error in state of node6 after terminate node1,node3 and node5",ps.getNodeValue("node6").getState() == Constants.Nd.INITIAL); 1043 assertTrue("Error in state of node8 after terminate node1,node3 and node5",ps.getNodeValue("node8").getState() == Constants.Nd.TERMINATED); 1044 assertTrue("Error in state of node9 after terminate node1,node3 and node5",ps.getNodeValue("node9").getState() == Constants.Nd.TERMINATED); 1045 us.startActivity(instName,"node4"); 1046 us.terminateActivity(instName,"node4"); 1047 1048 us.startActivity(instName,"node6"); 1049 us.terminateActivity(instName,"node6"); 1050 1051 us.startActivity(instName,"node7"); 1052 us.terminateActivity(instName,"node7"); 1053 1054 try{ 1055 us.terminate(instName); 1056 assertTrue("Error in terminate project, terminate project should be failed",false); 1057 }catch(Exception e){} 1058 1059 us.startActivity(instName,"node2"); 1060 us.terminateActivity(instName,"node2"); 1061 1062 us.terminate(instName); 1063 } 1064 1065 public void testSubProcessesIteration() throws Exception { 1066 ProjectSessionHome projectSessionh=ProjectSessionUtil.getHome(); 1067 1068 ProjectSession ps1 = projectSessionh.create(); 1069 ps1.initModel("oneSubProject"); 1070 ps1.addNode("test1",Constants.Nd.AND_JOIN_NODE); 1071 ps1.addNode("test2",Constants.Nd.AND_JOIN_NODE); 1072 ps1.addEdge("test1","test2"); 1073 1074 ProjectSession ps = projectSessionh.create(); 1075 ps.initModel("oneTestProject"); 1076 ps.addNode("node1",Constants.Nd.AND_JOIN_NODE); 1077 ps.addNode("node3",Constants.Nd.AND_JOIN_NODE); 1078 ps.addNodeSubProcess("node2","oneSubProject"); 1079 1080 ps.addEdge("node1","node2"); 1081 ps.addEdge("node2","node3"); 1082 1083 ps.setNodeProperty("node1","prop","ok",true); 1084 ps.addRoleMapper("InitialRole","roleMapperTest",Constants.Mapper.PROPERTIES); 1085 1086 ps.addIteration("node3","node1","prop.equals(\"ok\")"); 1087 String instName = ps.instantiateProject("oneTestProject"); 1088 UserSessionHome userSessionh = UserSessionUtil.getHome(); 1089 UserSession us = userSessionh.create(); 1090 assertTrue("Error in roleMapper",us.getToDoList(instName).contains("node1")); 1091 int index = 0; 1092 String actName=null; 1093 while (index<3) 1094 { 1095 us.startActivity(instName,"node1"); 1096 us.terminateActivity(instName,"node1"); 1097 Collection inst = us.getProjectInstancesNames("node2"); 1098 Iterator instances = inst.iterator(); 1099 actName = (String )instances.next(); 1100 assertTrue("Error in Iteration, subProcess is not reinitialized",us.getNode(actName,"test1").getState()==Constants.Nd.READY); 1101 1102 us.startActivity(actName,"test1"); 1103 us.terminateActivity(actName,"test1"); 1104 us.startActivity(actName,"test2"); 1105 us.terminateActivity(actName,"test2"); 1106 1107 us.startActivity(instName,"node3"); 1108 us.terminateActivity(instName,"node3"); 1109 assertTrue("Error in Iteration",us.getToDoList(instName).contains("node1")); 1110 assertTrue("Error in Iteration, subProcess is not reinitialized",us.getToDoList(actName).isEmpty()); 1111 assertTrue("Error in Iteration, subProcess is not reinitialized",us.getNode(actName,"test1").getState()==Constants.Nd.INITIAL); 1112 index++; 1113 } 1114 1115 us.startActivity(instName,"node1"); 1116 us.terminateActivity(instName,"node1"); 1117 Collection inst = us.getProjectInstancesNames("node2"); 1118 Iterator instances = inst.iterator(); 1119 actName = (String )instances.next(); 1120 1121 us.startActivity(actName,"test1"); 1122 us.terminateActivity(actName,"test1"); 1123 us.startActivity(actName,"test2"); 1124 us.terminateActivity(actName,"test2"); 1125 1126 us.startActivity(instName,"node3"); 1127 1128 ps.setNodeProperty("node3","prop","nok",true); 1129 1130 us.terminateActivity(instName,"node3"); 1131 assertTrue("Error in Iteration",us.getToDoList(instName).isEmpty()); 1132 assertTrue("Error in Iteration",us.getToDoList(actName).isEmpty()); 1133 assertTrue("Error in Iteration, subProcess is not reinitialized",us.getNode(actName,"test1").getState()==Constants.Nd.TERMINATED); 1134 } 1135 1136 public void testSubProcessesIterationOnlySubProcesses() throws Exception { 1137 ProjectSessionHome projectSessionh=ProjectSessionUtil.getHome(); 1138 1139 ProjectSession ps1 = projectSessionh.create(); 1140 ps1.initModel("SubProject1"); 1141 ps1.addNode("test1",Constants.Nd.AND_JOIN_NODE); 1142 ps1.addNode("test2",Constants.Nd.AND_JOIN_NODE); 1143 ps1.addEdge("test1","test2"); 1144 1145 ProjectSession ps2 = projectSessionh.create(); 1146 ps2.initModel("SubProject2"); 1147 ps2.addNode("test1",Constants.Nd.AND_JOIN_NODE); 1148 ps2.addNode("test2",Constants.Nd.AND_JOIN_NODE); 1149 ps2.addEdge("test1","test2"); 1150 1151 ProjectSession ps = projectSessionh.create(); 1152 ps.initModel("MyProjectIte"); 1153 ps.addNodeSubProcess("node1","SubProject1"); 1154 ps.addNodeSubProcess("node2bis","SubProject2"); 1155 1156 ps.addEdge("node1","node2bis"); 1157 1158 ps.setNodeProperty("node1","prop","ok",true); 1159 ps.addRoleMapper("InitialRole","roleMapperTest",Constants.Mapper.PROPERTIES); 1160 1161 ps.addIteration("node2bis","node1","prop.equals(\"ok\")"); 1162 1163 String instName = ps.instantiateProject("MyProjectIte"); 1164 UserSessionHome userSessionh = UserSessionUtil.getHome(); 1165 UserSession us = userSessionh.create(); 1166 1167 Collection inst = us.getProjectInstancesNames("node1"); 1168 Iterator instances = inst.iterator(); 1169 String actName = (String )instances.next(); 1170 1171 int index = 0; 1172 while (index<3) 1173 { 1174 us.startActivity(actName,"test1"); 1175 us.terminateActivity(actName,"test1"); 1176 us.startActivity(actName,"test2"); 1177 us.terminateActivity(actName,"test2"); 1178 1179 inst = us.getProjectInstancesNames("node2bis"); 1180 instances = inst.iterator(); 1181 actName = (String )instances.next(); 1182 1183 us.startActivity(actName,"test1"); 1184 us.terminateActivity(actName,"test1"); 1185 us.startActivity(actName,"test2"); 1186 us.terminateActivity(actName,"test2"); 1187 1188 inst = us.getProjectInstancesNames("node1"); 1189 instances = inst.iterator(); 1190 actName = (String )instances.next(); 1191 1192 index++; 1193 } 1194 1195 us.startActivity(actName,"test1"); 1196 us.terminateActivity(actName,"test1"); 1197 us.startActivity(actName,"test2"); 1198 us.terminateActivity(actName,"test2"); 1199 1200 inst = us.getProjectInstancesNames("node2bis"); 1201 instances = inst.iterator(); 1202 String actName2 = (String )instances.next(); 1203 1204 us.startActivity(actName2,"test1"); 1205 us.terminateActivity(actName2,"test1"); 1206 us.startActivity(actName2,"test2"); 1207 1208 ps.initProject(actName2); ps.setProperty("prop","nok"); 1210 us.terminateActivity(actName2,"test2"); 1211 1212 assertTrue("Error in Iteration, subProcess is not reinitialized",us.getNode(actName2,"test1").getState()==Constants.Nd.TERMINATED); 1213 1214 assertTrue("Error in Iteration, subProcess is not reinitialized",us.getNode(actName,"test1").getState()==Constants.Nd.TERMINATED); 1215 1216 } 1217 1218 public void testUnsetUser() throws Exception { 1219 ProjectSessionHome projectSessionh=ProjectSessionUtil.getHome(); 1220 ProjectSession ps = projectSessionh.create(); 1221 ps.initProject("unsetUser"); 1222 ProjectSession ps2 = projectSessionh.create(); 1223 ps2.initProject("unsetUser2"); 1224 1225 ps.addUser("admin2"); 1226 assertTrue("Error in add user: ",ps.getUsers().contains("admin2")); 1227 1228 ps2.addUser("admin2"); 1229 assertTrue("Error in add user (2): ",ps2.getUsers().contains("admin2")); 1230 1231 ps.unsetUser("admin2"); 1232 assertTrue("Error in unset user: ",!ps.getUsers().contains("admin2")); 1233 assertTrue("Error in add user (3): ",ps2.getUsers().contains("admin2")); 1234 1235 ps2.unsetUser("admin2"); 1236 assertTrue("Error in unset user (2): ",!ps2.getUsers().contains("admin2")); 1237 } 1238 1239 public void testGetUsersRole() throws Exception { 1240 ProjectSessionHome projectSessionh=ProjectSessionUtil.getHome(); 1241 ProjectSession ps = projectSessionh.create(); 1242 ps.initProject("getUsersRole"); 1243 ps.addUser("admin2"); 1244 1245 ps.addRole("roleTest",""); 1246 ps.setUserRole("admin2","roleTest"); 1247 1248 assertTrue("Error in getUsersRole (1): ",ps.getUsersRole("roleTest").contains("admin2")); 1249 assertTrue("Error in getUsersRole (1): ",!ps.getUsersRole("roleTest").contains("admin")); 1250 } 1251 1252 public void testPropertyPossibleValues() throws Exception { 1253 ProjectSessionHome projectSessionh=ProjectSessionUtil.getHome(); 1254 ProjectSession ps = projectSessionh.create(); 1255 ps.initProject("ProjectPossibleValues"); 1256 ArrayList values = new ArrayList (); 1257 values.add("value1"); 1258 values.add("value2"); 1259 1260 ps.setPropertyPossibleValues("key1",values); 1261 try{ 1262 ps.setProperty("key1","value3"); 1263 assertTrue("Error setProperty should be failed",false); 1264 }catch(Exception e){} 1265 ps.setProperty("key1","value2"); 1266 } 1267 1268 public void testNodePropertyPossibleValues() throws Exception { 1269 UserSessionHome usersh=UserSessionUtil.getHome(); 1270 UserSession user = usersh.create(); 1271 1272 ProjectSessionHome projectSessionh=ProjectSessionUtil.getHome(); 1273 ProjectSession ps = projectSessionh.create(); 1274 ps.initModel("ProjectNodesPossibleValues"); 1275 ps.addNode("node1",1); 1276 ps.addNode("node2",1); 1277 ps.addNode("node3",1); 1278 ps.addEdge("node1","node2"); 1279 ps.addEdge("node2","node3"); 1280 ps.setNodeRole("node1",Constants.ADMIN); 1281 ps.setNodeRole("node2",Constants.ADMIN); 1282 ps.setNodeRole("node3",Constants.ADMIN); 1283 ArrayList values = new ArrayList (); 1284 values.add("value1"); 1285 values.add("value2"); 1286 1287 ps.setNodePropertyPossibleValues("node1","key1",values); 1288 try{ 1289 ps.setNodeProperty("node1","key1","value3"); 1290 assertTrue("Error setNodeProperty should be failed",false); 1291 }catch(Exception e){} 1292 ps.setNodeProperty("node1","key1","value2",true); 1293 String instName=ps.instantiateProject("ProjectNodesPossibleValues"); 1294 1295 user.startActivity(instName,"node1"); 1296 user.terminateActivity(instName,"node1"); 1297 1298 BnNodePropertyValue pv = ps.getNodeProperty("node2","key1"); 1299 1300 assertTrue("Error testNodeProperty after instantiation", pv.getPossibleValues().size()==2); 1301 1302 user.startActivity(instName,"node2"); 1303 user.terminateActivity(instName,"node2"); 1304 1305 pv = ps.getNodeProperty("node3","key1"); 1306 1307 assertTrue("Error testNodeProperty after instantiation 2", pv.getPossibleValues().size()==2); 1308 } 1309} 1310 | Popular Tags |