1 29 30 package hero.client.test.stress; 31 32 import javax.security.auth.login.LoginContext ; 33 import hero.client.test.SimpleCallbackHandler; 34 35 import hero.interfaces.ProjectSession; 36 import hero.interfaces.ProjectSessionHome; 37 import hero.interfaces.ProjectSessionUtil; 38 import hero.interfaces.UserSession; 39 import hero.interfaces.UserSessionHome; 40 import hero.interfaces.UserSessionUtil; 41 import hero.interfaces.UserRegistration; 42 import hero.interfaces.UserRegistrationHome; 43 import hero.interfaces.UserRegistrationUtil; 44 import junit.framework.TestCase; 45 import junit.framework.TestSuite; 46 import hero.interfaces.Constants; 47 import java.util.Collection ; 48 import java.util.Iterator ; 49 50 public class InstancesTests extends TestCase { 51 52 public InstancesTests(String testname) { 53 super(testname); 54 } 55 56 public static TestSuite suite() { 57 return new TestSuite(InstancesTests.class); 58 } 59 60 public void setUp() throws Exception { 61 } 62 63 public void testInstances() throws Exception { 64 ProjectSessionHome pHome = ProjectSessionUtil.getHome(); 65 ProjectSession psSub = pHome.create(); 66 try{ 67 68 psSub.initModel("node5Sub"); 69 psSub.addNode("subNode1", Constants.Nd.AND_JOIN_NODE); 70 psSub.addNode("subNode2", Constants.Nd.AND_JOIN_NODE); 71 psSub.setNodeRole("subNode1", "admin"); 72 psSub.setNodeRole("subNode2", "admin"); 73 psSub.addEdge("subNode1", "subNode2"); 74 String script = 75 "import hero.interfaces.BnInstanceLocal;\n" 76 + "import hero.interfaces.BnNodeLocal;\n" 77 + "afterStart (Object b,Object n) {\n\n\n" 78 + "System.out.println(\"SPInstantiation test, SubProcess: \"+n.getName()+\" project: \"+(n.getBnProject()).getName());" 79 + "}"; 80 psSub.addNodeInterHook("subNode2","subNode2",hero.interfaces.Constants.Nd.AFTERSTART,Constants.Hook.BSINTERACTIVE,script); 81 psSub.addUser("admin2"); 82 psSub.setNodeRole("subNode1", "admin"); 83 psSub.setNodeRole("subNode2", "admin"); 84 85 ProjectSession pss = pHome.create(); 86 pss.initModel("Stress"); 87 pss.addNode("node1", Constants.Nd.AND_JOIN_NODE); 88 pss.addNode("node2", Constants.Nd.AND_JOIN_NODE); 89 pss.addNode("node3", Constants.Nd.AND_JOIN_NODE); 90 pss.addNode("node4", Constants.Nd.AND_JOIN_AUTOMATIC_NODE); 91 pss.addNodeSubProcess("node5Sub","Stress"); 92 pss.addEdge("node1", "node2"); 94 pss.addEdge("node2", "node3"); 95 pss.addEdge("node2", "node4"); 96 pss.addEdge("node3", "node5Sub"); 97 script = 98 "import hero.interfaces.BnInstanceLocal;\n" 99 + "import hero.interfaces.BnNodeLocal;\n" 100 + "afterStart (Object b,Object n) {\n\n\n" 101 + "System.out.println(\"Stress test, node: \"+n.getName()+\" project: \"+(n.getBnProject()).getName());" 102 + "}"; 103 pss.addNodeInterHook("node2","node2",hero.interfaces.Constants.Nd.AFTERSTART,Constants.Hook.BSINTERACTIVE,script); 104 pss.addUser("admin2"); 105 pss.setUserRole("admin2", "InitialRole"); 106 pss.setNodeRole("node1", "admin"); 107 pss.setNodeRole("node2", "admin"); 108 pss.setNodeRole("node3", "admin"); 109 pss.setNodeRole("node4", "admin"); 110 pss.setNodeRole("node5Sub", "admin"); 111 ProjectSession pss1 = pHome.create(); 112 pss1.instantiateProject("Stress"); 113 assertTrue("Instantiation Error, role error in node1",pss1.getNodeRoleName("node1").equals("admin")); 114 Collection users = pss1.getUsers(); 115 assertTrue("Instantiation Error, user admin2 does not exist",users.contains("admin2")); 116 assertTrue("Instantiation Error, type error in node1",pss1.getNodeType("node1") == Constants.Nd.AND_JOIN_NODE); 117 assertTrue("Instantiation Error, type error in node4",pss1.getNodeType("node4") == Constants.Nd.AND_JOIN_AUTOMATIC_NODE); 118 }catch(Exception e){} 119 int global = 0; 120 for (global=0;global<100;global++) 121 { 122 UserRegistrationHome urHome = UserRegistrationUtil.getHome(); 123 UserRegistration userReg=urHome.create(); 124 userReg.userCreate("user"+global,"user"+global,"miguel.valdes-faura@ext.bull.net"); 125 userReg.remove(); 126 String uName= "user"+global; 127 char[] password=uName.toCharArray(); 128 SimpleCallbackHandler handler = new SimpleCallbackHandler(uName,password); 129 LoginContext lc = new LoginContext ("TestClient", handler); 130 lc.login(); 131 132 int i=0; 133 for (i=0;i<10;i++){ 134 ProjectSession ps = pHome.create(); 135 ps.instantiateProject("Stress"); 136 ps.remove(); 138 } 139 140 UserSessionHome uHome = UserSessionUtil.getHome(); 141 UserSession us = uHome.create(); 142 Collection instances = us.getInstancesListNames(); 143 assertTrue("getInstancesList error",instances.size()>=1); 144 Iterator index = instances.iterator(); 145 UserSession usUser = uHome.create(); 146 while (index.hasNext()) 147 { 148 String name = (String )index.next(); 149 Collection task = usUser.getToDoList(name); 150 Iterator it = task.iterator(); 151 while (it.hasNext()) 152 { 153 String activity = (String )it.next(); 154 usUser.startActivity(name,activity); 155 if (activity.matches(".*_instance.*")) 156 this.executeSubProcess(activity); 157 158 usUser.terminateActivity(name,activity); 159 task = usUser.getToDoList(name); 160 it = task.iterator(); 161 } 162 } 163 } 164 } 165 166 public void executeSubProcess(String subProcess) throws Exception { 167 UserSessionHome uHome = UserSessionUtil.getHome(); 168 UserSession us = uHome.create(); 169 us.startActivity(subProcess,"subNode1"); 170 us.terminateActivity(subProcess,"subNode1"); 171 us.startActivity(subProcess,"subNode2"); 172 us.terminateActivity(subProcess,"subNode2"); 173 } 174 175 200 210 } 211 | Popular Tags |