Author: objectiser
Date: 2008-07-30 10:29:46 -0400 (Wed, 30 Jul 2008)
New Revision: 206
Added:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/TestESBLanguageModel.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/TestESBService.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/change/
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/change/IfModelChangeRuleTest.java
Removed:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/TestESBLanguageModel.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/TestESBService.java
Modified:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/DefaultESBLanguageModel.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/ESBLanguageModel.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/ConversationInteractionModelChangeRule.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/ConversationModelChangeRule.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/IfModelChangeRule.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/DefaultESBLanguageModelTest.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/CreateSessionActionTest.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/IfActionTest.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/MessageRouterActionTest.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/PerformActionTest.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/RetrieveSessionActionTest.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/SendMessageActionTest.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/SetMessageActionTest.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/SetStateActionTest.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/SwitchActionTest.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/WhenActionTest.java
Log:
Some refactoring to support unit tests, and initial unit test for If model change rule.
Modified:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/DefaultESBLanguageModel.java
===================================================================
---
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/DefaultESBLanguageModel.java 2008-07-30
11:09:22 UTC (rev 205)
+++
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/DefaultESBLanguageModel.java 2008-07-30
14:29:46 UTC (rev 206)
@@ -378,6 +378,17 @@
}
/**
+ * This method creates a new ESB service.
+ *
+ * @param category The category
+ * @param name The name
+ * @return The new ESB service
+ */
+ public ESBService createService(String category, String name) {
+ return(new DefaultESBService(this, category, name));
+ }
+
+ /**
* This method adds a new service to the model.
*
* @param service The service
Modified:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/ESBLanguageModel.java
===================================================================
---
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/ESBLanguageModel.java 2008-07-30
11:09:22 UTC (rev 205)
+++
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/ESBLanguageModel.java 2008-07-30
14:29:46 UTC (rev 206)
@@ -76,6 +76,15 @@
public ESBService getGatewayService();
/**
+ * This method creates a new ESB service.
+ *
+ * @param category The category
+ * @param name The name
+ * @return The new ESB service
+ */
+ public ESBService createService(String category, String name);
+
+ /**
* This method adds a new service to the model.
*
* @param service The service
Modified:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/ConversationInteractionModelChangeRule.java
===================================================================
---
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/ConversationInteractionModelChangeRule.java 2008-07-30
11:09:22 UTC (rev 205)
+++
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/ConversationInteractionModelChangeRule.java 2008-07-30
14:29:46 UTC (rev 206)
@@ -124,10 +124,8 @@
action.setClientEPR("client");
// Create new ESB service
-
- // TODO: Create unique service name
- DefaultESBService respService=new DefaultESBService(
- esbModel, service.getCategory(),
+ ESBService respService=esbModel.createService(
+ service.getCategory(),
esbModel.getUniqueServiceName(service.getCategory(),
service.getName()));
@@ -154,8 +152,8 @@
service.isSessionBased()) {
// Already has activities, so need to separate
// into another service descriptor
- DefaultESBService recvService=new DefaultESBService(
- esbModel, service.getCategory(),
+ ESBService recvService=esbModel.createService(
+ service.getCategory(),
esbModel.getUniqueServiceName(service.getCategory(),
service.getName()));
Modified:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/ConversationModelChangeRule.java
===================================================================
---
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/ConversationModelChangeRule.java 2008-07-30
11:09:22 UTC (rev 205)
+++
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/ConversationModelChangeRule.java 2008-07-30
14:29:46 UTC (rev 206)
@@ -114,8 +114,7 @@
}
// Create new ESB service
- DefaultESBService service=new DefaultESBService(
- esbModel, category, name);
+ ESBService service=esbModel.createService(category, name);
esbModel.addService(service);
Modified:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/IfModelChangeRule.java
===================================================================
---
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/IfModelChangeRule.java 2008-07-30
11:09:22 UTC (rev 205)
+++
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/change/IfModelChangeRule.java 2008-07-30
14:29:46 UTC (rev 206)
@@ -87,8 +87,8 @@
for (int i=0; i < ifElem.getConditionalBlocks().size(); i++) {
ConditionalBlock cb=ifElem.getConditionalBlocks().get(i);
- DefaultESBService subService=new DefaultESBService(
- esbModel, service.getCategory(),
+ ESBService subService=
+ esbModel.createService(service.getCategory(),
esbModel.getUniqueServiceName(service.getCategory(),
service.getName()));
@@ -109,8 +109,8 @@
if (ifElem.getElseBlock() != null) {
- DefaultESBService subService=new DefaultESBService(
- esbModel, service.getCategory(),
+ ESBService subService=
+ esbModel.createService(service.getCategory(),
esbModel.getUniqueServiceName(service.getCategory(),
service.getName()));
@@ -139,8 +139,8 @@
for (int i=0; i < ifElem.getConditionalBlocks().size(); i++) {
ConditionalBlock cb=ifElem.getConditionalBlocks().get(i);
- DefaultESBService subService=new DefaultESBService(
- esbModel, service.getCategory(),
+ ESBService subService=
+ esbModel.createService(service.getCategory(),
esbModel.getUniqueServiceName(service.getCategory(),
service.getName()));
@@ -158,6 +158,29 @@
switchAction.addCase(subService.getCategory(),
subService.getName(), messageTypes, i);
}
+
+ if (ifElem.getElseBlock() != null) {
+
+ ESBService subService=
+ esbModel.createService(service.getCategory(),
+ esbModel.getUniqueServiceName(service.getCategory(),
+ service.getName()));
+
+ esbModel.addService(subService);
+
+ context.setParent(subService);
+
+ for (int j=0; j < ifElem.getElseBlock().getContents().size(); j++) {
+ context.insert(model,
+ ifElem.getElseBlock().getContents().get(j), j);
+ }
+
+ java.util.List<String> messageTypes=new java.util.Vector<String>();
+ messageTypes.add("testType");
+
+ switchAction.addCase(subService.getCategory(),
+ subService.getName(), messageTypes, -1);
+ }
}
return(true);
Modified:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/DefaultESBLanguageModelTest.java
===================================================================
---
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/DefaultESBLanguageModelTest.java 2008-07-30
11:09:22 UTC (rev 205)
+++
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/DefaultESBLanguageModelTest.java 2008-07-30
14:29:46 UTC (rev 206)
@@ -19,7 +19,6 @@
import junit.framework.TestCase;
-import org.jboss.tools.overlord.jbossesb.model.actions.TestESBService;
import org.scribble.model.*;
public class DefaultESBLanguageModelTest extends TestCase {
Copied:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/TestESBLanguageModel.java
(from rev 205,
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/TestESBLanguageModel.java)
===================================================================
---
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/TestESBLanguageModel.java
(rev 0)
+++
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/TestESBLanguageModel.java 2008-07-30
14:29:46 UTC (rev 206)
@@ -0,0 +1,108 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
+package org.jboss.tools.overlord.jbossesb.model;
+
+import java.util.Collection;
+
+import org.scribble.model.ModelListener;
+import org.scribble.model.ModelReference;
+import org.w3c.dom.Element;
+
+public class TestESBLanguageModel extends org.scribble.lang.model.LanguageModel
+ implements org.jboss.tools.overlord.jbossesb.model.ESBLanguageModel {
+
+ public TestESBLanguageModel() {
+ org.w3c.dom.Document doc=null;
+
+ // Create an empty document
+ try {
+ doc = javax.xml.parsers.DocumentBuilderFactory.
+ newInstance().newDocumentBuilder().newDocument();
+
+ m_esbConfig = doc.createElement(DefaultESBLanguageModel.TOP_LEVEL_ELEMENT);
+
+ } catch(Exception e) {
+ e.printStackTrace();
+ }
+ }
+ public String getOriginalContents() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public ModelReference getModelReference() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public ESBService createService(String category, String name) {
+ TestESBService ret=new TestESBService(category, name);
+
+ org.w3c.dom.Element service=m_esbConfig.getOwnerDocument().
+ createElement(DefaultESBService.SERVICE_ELEMENT);
+ m_esbConfig.appendChild(service);
+
+ ret.setService(service);
+
+ return(ret);
+ }
+
+ public void addService(ESBService service) {
+ m_services.put(service.getCategory()+":"+service.getName(), service);
+ }
+
+ public void removeService(ESBService service) {
+ m_services.remove(service.getCategory()+":"+service.getName());
+ }
+
+ public ESBService getService(String category, String name) {
+ return(m_services.get(category+":"+name));
+ }
+
+ public Collection<ESBService> getServices() {
+ return(m_services.values());
+ }
+
+ public ESBService getGatewayService() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public void validate(ModelListener l) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public String getUniqueServiceName(String category, String name) {
+ return("serviceName__"+m_count++);
+ }
+
+ public Element getESBConfiguration() {
+ return(m_esbConfig);
+ }
+
+ @Override
+ public String getNotation() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ private java.util.Map<String,ESBService> m_services=new
java.util.Hashtable<String,ESBService>();
+ private org.w3c.dom.Element m_esbConfig=null;
+ private int m_count=0;
+}
Property changes on:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/TestESBLanguageModel.java
___________________________________________________________________
Name: svn:mergeinfo
+
Copied:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/TestESBService.java
(from rev 205,
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/TestESBService.java)
===================================================================
---
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/TestESBService.java
(rev 0)
+++
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/TestESBService.java 2008-07-30
14:29:46 UTC (rev 206)
@@ -0,0 +1,202 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
+package org.jboss.tools.overlord.jbossesb.model;
+
+import java.util.List;
+
+import org.scribble.conversation.model.*;
+import org.scribble.model.*;
+import org.w3c.dom.Element;
+
+public class TestESBService extends ModelObject
+ implements org.jboss.tools.overlord.jbossesb.model.ESBService {
+
+ public TestESBService() {
+ }
+
+ public TestESBService(String category, String name) {
+ m_category = category;
+ m_name = name;
+ }
+
+ public void convert(List<Activity> activities, ConversionContext context) {
+ activities.addAll(m_contents);
+ }
+
+ public Conversation convert(ConversionContext context) {
+ return(null);
+ }
+
+ public List<Activity> getContents() {
+ return(m_contents);
+ }
+
+ public List<ESBAction> getActions() {
+ return(m_actions);
+ }
+
+ public void setCategory(String cat) {
+ m_category = cat;
+ }
+
+ public String getCategory() {
+ return(m_category);
+ }
+
+ public void setConversationType(String type) {
+ m_conversationType = type;
+ }
+
+ public String getConversationType() {
+ return(m_conversationType);
+ }
+
+ public void setName(String name) {
+ m_name = name;
+ }
+
+ public String getName() {
+ return(m_name);
+ }
+
+ public void setModel(ESBLanguageModel model) {
+ m_model = model;
+ }
+
+ public ESBLanguageModel getModel() {
+ return(m_model);
+ }
+
+ public Element getService() {
+ return(m_service);
+ }
+
+ public void setService(Element service) {
+ m_service = service;
+ }
+
+ public ClassLoader getServiceClassLoader() throws Exception {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public String getServiceName() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public int getServicePosition() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ public void setSessionClass(Class<?> cls) {
+ m_sessionClass = cls;
+ }
+
+ public Class<?> getSessionClass() {
+ return(m_sessionClass);
+ }
+
+ public String getSessionName() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public void initializeLinks() {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void setLoop(boolean bool) {
+ m_loop = bool;
+ }
+
+ public boolean isLoop() {
+ return(m_loop);
+ }
+
+ public void setRoot(boolean bool) {
+ m_root = bool;
+ }
+
+ public boolean isRoot() {
+ return(m_root);
+ }
+
+ public void setCreateSession(boolean bool) {
+ m_createSession = bool;
+ }
+
+ public boolean isCreateSession() {
+ return(m_createSession);
+ }
+
+ public void setSessionBased(boolean bool) {
+ m_sessionBased = bool;
+ }
+
+ public boolean isSessionBased() {
+ return(m_sessionBased);
+ }
+
+ public boolean isGateway() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ public ESBAction getGatewayAction() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public void validate(ModelListener l) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public String getJMSBusIdRef() {
+ return(m_jmsBusIdRef);
+ }
+
+ public void setJMSBusIdRef(String busId) {
+ m_jmsBusIdRef = busId;
+ }
+
+ public void addAction(ESBAction action, int pos) {
+ m_actions.add(action);
+ }
+
+ public boolean removeAction(ESBAction action) {
+ return(m_actions.remove(action));
+ }
+
+ private String m_category=null;
+ private String m_name=null;
+ private ESBLanguageModel m_model=null;
+ private Element m_service;
+ private List<ESBAction> m_actions=new java.util.Vector<ESBAction>();
+ private boolean m_root=false;
+ private boolean m_loop=false;
+ private boolean m_sessionBased=false;
+ private boolean m_createSession=false;
+ private Class<?> m_sessionClass=null;
+ private String m_conversationType=null;
+ private List<Activity> m_contents=new java.util.Vector<Activity>();
+ private String m_jmsBusIdRef=null;
+}
Property changes on:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/TestESBService.java
___________________________________________________________________
Name: svn:mergeinfo
+
Modified:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/CreateSessionActionTest.java
===================================================================
---
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/CreateSessionActionTest.java 2008-07-30
11:09:22 UTC (rev 205)
+++
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/CreateSessionActionTest.java 2008-07-30
14:29:46 UTC (rev 206)
@@ -17,6 +17,8 @@
*/
package org.jboss.tools.overlord.jbossesb.model.actions;
+import org.jboss.tools.overlord.jbossesb.model.TestESBLanguageModel;
+import org.jboss.tools.overlord.jbossesb.model.TestESBService;
import org.jboss.tools.overlord.jbossesb.model.TestModelListener;
import junit.framework.TestCase;
Modified:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/IfActionTest.java
===================================================================
---
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/IfActionTest.java 2008-07-30
11:09:22 UTC (rev 205)
+++
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/IfActionTest.java 2008-07-30
14:29:46 UTC (rev 206)
@@ -19,6 +19,8 @@
import junit.framework.TestCase;
+import org.jboss.tools.overlord.jbossesb.model.TestESBLanguageModel;
+import org.jboss.tools.overlord.jbossesb.model.TestESBService;
import org.jboss.tools.overlord.jbossesb.model.TestModelListener;
import org.scribble.model.*;
import org.scribble.conversation.model.*;
Modified:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/MessageRouterActionTest.java
===================================================================
---
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/MessageRouterActionTest.java 2008-07-30
11:09:22 UTC (rev 205)
+++
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/MessageRouterActionTest.java 2008-07-30
14:29:46 UTC (rev 206)
@@ -17,6 +17,8 @@
*/
package org.jboss.tools.overlord.jbossesb.model.actions;
+import org.jboss.tools.overlord.jbossesb.model.TestESBLanguageModel;
+import org.jboss.tools.overlord.jbossesb.model.TestESBService;
import org.jboss.tools.overlord.jbossesb.model.TestModelListener;
import junit.framework.TestCase;
Modified:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/PerformActionTest.java
===================================================================
---
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/PerformActionTest.java 2008-07-30
11:09:22 UTC (rev 205)
+++
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/PerformActionTest.java 2008-07-30
14:29:46 UTC (rev 206)
@@ -17,6 +17,8 @@
*/
package org.jboss.tools.overlord.jbossesb.model.actions;
+import org.jboss.tools.overlord.jbossesb.model.TestESBLanguageModel;
+import org.jboss.tools.overlord.jbossesb.model.TestESBService;
import org.jboss.tools.overlord.jbossesb.model.TestModelListener;
import org.scribble.conversation.model.*;
import org.scribble.model.Activity;
Modified:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/RetrieveSessionActionTest.java
===================================================================
---
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/RetrieveSessionActionTest.java 2008-07-30
11:09:22 UTC (rev 205)
+++
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/RetrieveSessionActionTest.java 2008-07-30
14:29:46 UTC (rev 206)
@@ -17,6 +17,7 @@
*/
package org.jboss.tools.overlord.jbossesb.model.actions;
+import org.jboss.tools.overlord.jbossesb.model.TestESBService;
import org.jboss.tools.overlord.jbossesb.model.TestModelListener;
import junit.framework.TestCase;
Modified:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/SendMessageActionTest.java
===================================================================
---
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/SendMessageActionTest.java 2008-07-30
11:09:22 UTC (rev 205)
+++
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/SendMessageActionTest.java 2008-07-30
14:29:46 UTC (rev 206)
@@ -18,6 +18,8 @@
package org.jboss.tools.overlord.jbossesb.model.actions;
import org.jboss.tools.overlord.jbossesb.model.DefaultConversionContext;
+import org.jboss.tools.overlord.jbossesb.model.TestESBLanguageModel;
+import org.jboss.tools.overlord.jbossesb.model.TestESBService;
import org.jboss.tools.overlord.jbossesb.model.TestModelListener;
import org.scribble.model.Activity;
import org.scribble.model.Interaction;
Modified:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/SetMessageActionTest.java
===================================================================
---
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/SetMessageActionTest.java 2008-07-30
11:09:22 UTC (rev 205)
+++
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/SetMessageActionTest.java 2008-07-30
14:29:46 UTC (rev 206)
@@ -17,6 +17,7 @@
*/
package org.jboss.tools.overlord.jbossesb.model.actions;
+import org.jboss.tools.overlord.jbossesb.model.TestESBService;
import org.jboss.tools.overlord.jbossesb.model.TestModelListener;
import junit.framework.TestCase;
Modified:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/SetStateActionTest.java
===================================================================
---
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/SetStateActionTest.java 2008-07-30
11:09:22 UTC (rev 205)
+++
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/SetStateActionTest.java 2008-07-30
14:29:46 UTC (rev 206)
@@ -17,6 +17,7 @@
*/
package org.jboss.tools.overlord.jbossesb.model.actions;
+import org.jboss.tools.overlord.jbossesb.model.TestESBService;
import org.jboss.tools.overlord.jbossesb.model.TestModelListener;
import junit.framework.TestCase;
Modified:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/SwitchActionTest.java
===================================================================
---
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/SwitchActionTest.java 2008-07-30
11:09:22 UTC (rev 205)
+++
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/SwitchActionTest.java 2008-07-30
14:29:46 UTC (rev 206)
@@ -17,6 +17,8 @@
*/
package org.jboss.tools.overlord.jbossesb.model.actions;
+import org.jboss.tools.overlord.jbossesb.model.TestESBLanguageModel;
+import org.jboss.tools.overlord.jbossesb.model.TestESBService;
import org.jboss.tools.overlord.jbossesb.model.TestModelListener;
import org.scribble.conversation.model.If;
import org.scribble.model.Activity;
Deleted:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/TestESBLanguageModel.java
===================================================================
---
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/TestESBLanguageModel.java 2008-07-30
11:09:22 UTC (rev 205)
+++
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/TestESBLanguageModel.java 2008-07-30
14:29:46 UTC (rev 206)
@@ -1,90 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- */
-package org.jboss.tools.overlord.jbossesb.model.actions;
-
-import java.util.Collection;
-
-import org.jboss.tools.overlord.jbossesb.model.*;
-import org.scribble.model.ModelListener;
-import org.scribble.model.ModelReference;
-import org.w3c.dom.Element;
-
-public class TestESBLanguageModel implements
org.jboss.tools.overlord.jbossesb.model.ESBLanguageModel {
-
- public TestESBLanguageModel() {
- org.w3c.dom.Document doc=null;
-
- // Create an empty document
- try {
- doc = javax.xml.parsers.DocumentBuilderFactory.
- newInstance().newDocumentBuilder().newDocument();
-
- m_esbConfig = doc.createElement(DefaultESBLanguageModel.TOP_LEVEL_ELEMENT);
-
- } catch(Exception e) {
- e.printStackTrace();
- }
- }
- public String getOriginalContents() {
- // TODO Auto-generated method stub
- return null;
- }
-
- public ModelReference getModelReference() {
- // TODO Auto-generated method stub
- return null;
- }
-
- public void addService(ESBService service) {
- m_services.put(service.getCategory()+":"+service.getName(), service);
- }
-
- public void removeService(ESBService service) {
- m_services.remove(service.getCategory()+":"+service.getName());
- }
-
- public ESBService getService(String category, String name) {
- return(m_services.get(category+":"+name));
- }
-
- public Collection<ESBService> getServices() {
- return(m_services.values());
- }
-
- public ESBService getGatewayService() {
- // TODO Auto-generated method stub
- return null;
- }
-
- public void validate(ModelListener l) {
- // TODO Auto-generated method stub
-
- }
-
- public String getUniqueServiceName(String category, String name) {
- // TODO Auto-generated method stub
- return null;
- }
-
- public Element getESBConfiguration() {
- return(m_esbConfig);
- }
-
- private java.util.Map<String,ESBService> m_services=new
java.util.Hashtable<String,ESBService>();
- private org.w3c.dom.Element m_esbConfig=null;
-}
Deleted:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/TestESBService.java
===================================================================
---
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/TestESBService.java 2008-07-30
11:09:22 UTC (rev 205)
+++
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/TestESBService.java 2008-07-30
14:29:46 UTC (rev 206)
@@ -1,195 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- */
-package org.jboss.tools.overlord.jbossesb.model.actions;
-
-import java.util.List;
-
-import org.jboss.tools.overlord.jbossesb.model.ConversionContext;
-import org.jboss.tools.overlord.jbossesb.model.ESBAction;
-import org.jboss.tools.overlord.jbossesb.model.ESBLanguageModel;
-import org.scribble.conversation.model.Conversation;
-import org.scribble.model.Activity;
-import org.scribble.model.ModelListener;
-import org.w3c.dom.Element;
-
-public class TestESBService implements org.jboss.tools.overlord.jbossesb.model.ESBService
{
-
- public void convert(List<Activity> activities, ConversionContext context) {
- activities.addAll(m_contents);
- }
-
- public Conversation convert(ConversionContext context) {
- return(null);
- }
-
- public List<Activity> getContents() {
- return(m_contents);
- }
-
- public List<ESBAction> getActions() {
- return(m_actions);
- }
-
- public void setCategory(String cat) {
- m_category = cat;
- }
-
- public String getCategory() {
- return(m_category);
- }
-
- public void setConversationType(String type) {
- m_conversationType = type;
- }
-
- public String getConversationType() {
- return(m_conversationType);
- }
-
- public void setName(String name) {
- m_name = name;
- }
-
- public String getName() {
- return(m_name);
- }
-
- public void setModel(ESBLanguageModel model) {
- m_model = model;
- }
-
- public ESBLanguageModel getModel() {
- return(m_model);
- }
-
- public Element getService() {
- // TODO Auto-generated method stub
- return null;
- }
-
- public ClassLoader getServiceClassLoader() throws Exception {
- // TODO Auto-generated method stub
- return null;
- }
-
- public String getServiceName() {
- // TODO Auto-generated method stub
- return null;
- }
-
- public int getServicePosition() {
- // TODO Auto-generated method stub
- return 0;
- }
-
- public void setSessionClass(Class<?> cls) {
- m_sessionClass = cls;
- }
-
- public Class<?> getSessionClass() {
- return(m_sessionClass);
- }
-
- public String getSessionName() {
- // TODO Auto-generated method stub
- return null;
- }
-
- public void initializeLinks() {
- // TODO Auto-generated method stub
-
- }
-
- public void setLoop(boolean bool) {
- m_loop = bool;
- }
-
- public boolean isLoop() {
- return(m_loop);
- }
-
- public void setRoot(boolean bool) {
- m_root = bool;
- }
-
- public boolean isRoot() {
- return(m_root);
- }
-
- public void setCreateSession(boolean bool) {
- m_createSession = bool;
- }
-
- public boolean isCreateSession() {
- return(m_createSession);
- }
-
- public void setSessionBased(boolean bool) {
- m_sessionBased = bool;
- }
-
- public boolean isSessionBased() {
- return(m_sessionBased);
- }
-
- public boolean isGateway() {
- // TODO Auto-generated method stub
- return false;
- }
-
- public ESBAction getGatewayAction() {
- // TODO Auto-generated method stub
- return null;
- }
-
- public void validate(ModelListener l) {
- // TODO Auto-generated method stub
-
- }
-
- public String getJMSBusIdRef() {
- return(m_jmsBusIdRef);
- }
-
- public void setJMSBusIdRef(String busId) {
- m_jmsBusIdRef = busId;
- }
-
- public void addAction(ESBAction action, int pos) {
- // TODO Auto-generated method stub
-
- }
-
- public boolean removeAction(ESBAction action) {
- // TODO Auto-generated method stub
- return false;
- }
-
- private String m_category=null;
- private String m_name=null;
- private ESBLanguageModel m_model=null;
- private List<ESBAction> m_actions=new java.util.Vector<ESBAction>();
- private boolean m_root=false;
- private boolean m_loop=false;
- private boolean m_sessionBased=false;
- private boolean m_createSession=false;
- private Class<?> m_sessionClass=null;
- private String m_conversationType=null;
- private List<Activity> m_contents=new java.util.Vector<Activity>();
- private String m_jmsBusIdRef=null;
-}
Modified:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/WhenActionTest.java
===================================================================
---
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/WhenActionTest.java 2008-07-30
11:09:22 UTC (rev 205)
+++
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/WhenActionTest.java 2008-07-30
14:29:46 UTC (rev 206)
@@ -17,6 +17,8 @@
*/
package org.jboss.tools.overlord.jbossesb.model.actions;
+import org.jboss.tools.overlord.jbossesb.model.TestESBLanguageModel;
+import org.jboss.tools.overlord.jbossesb.model.TestESBService;
import org.jboss.tools.overlord.jbossesb.model.TestModelListener;
import org.scribble.conversation.model.*;
import org.scribble.model.*;
Added:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/change/IfModelChangeRuleTest.java
===================================================================
---
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/change/IfModelChangeRuleTest.java
(rev 0)
+++
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/change/IfModelChangeRuleTest.java 2008-07-30
14:29:46 UTC (rev 206)
@@ -0,0 +1,538 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
+package org.jboss.tools.overlord.jbossesb.model.change;
+
+import junit.framework.TestCase;
+
+import org.jboss.tools.overlord.jbossesb.model.*;
+import org.jboss.tools.overlord.jbossesb.model.actions.*;
+import org.scribble.model.*;
+import org.scribble.model.change.*;
+import org.scribble.conversation.model.*;
+
+public class IfModelChangeRuleTest extends TestCase {
+
+ public void testInsertIfAction() {
+ IfModelChangeRule rule=new IfModelChangeRule();
+
+ TestESBLanguageModel model=new TestESBLanguageModel();
+
+ TestESBService service=(TestESBService)
+ model.createService("testcategory", "testname");
+
+ model.addService(service);
+
+ TestModelChangeContext context=new TestModelChangeContext();
+ context.setParent(service);
+
+ Role role=new Role();
+ role.setName("role1");
+
+ context.setRole(role);
+
+ If mobj=new If();
+
+ ConditionalBlock cb1=new ConditionalBlock();
+ mobj.getConditionalBlocks().add(cb1);
+
+ mobj.getRoles().add(role);
+
+ if (rule.insert(context, model, mobj, -1) == false) {
+ fail("Failed to insert");
+ }
+
+ // Check actions
+ if (service.getActions().size() != 1) {
+ fail("Expecting 1 action: "+service.getActions().size());
+ }
+
+ if ((service.getActions().get(0) instanceof IfAction) == false) {
+ fail("Action was not IfAction: "+service.getActions().get(0));
+ }
+
+ if (model.getServices().size() != 2) {
+ fail("Two services expected: "+model.getServices().size());
+ }
+
+ ESBService ifService=null;
+ java.util.Iterator<ESBService> iter=model.getServices().iterator();
+
+ while (ifService == null && iter.hasNext()) {
+ ifService = iter.next();
+ if (ifService == service) {
+ ifService = null;
+ }
+ }
+
+ IfAction action=(IfAction)service.getActions().get(0);
+
+ org.w3c.dom.NodeList paths=action.getPropertyChildNodes("paths");
+
+ if (paths.getLength() != 1) {
+ fail("Only one path child expected: "+paths.getLength());
+ }
+
+ org.w3c.dom.Element elem=(org.w3c.dom.Element)paths.item(0);
+
+ if (elem.getNodeName().equals("if") == false) {
+ fail("If expected but got: "+elem.getNodeName());
+ }
+
+ if (elem.getAttribute("service-category").equals(ifService.getCategory()) ==
false) {
+ fail("Service category
'"+elem.getAttribute("service-category")+
+ "' not expected: "+ifService.getCategory());
+ }
+
+ if (elem.getAttribute("service-name").equals(ifService.getName()) == false)
{
+ fail("Service name '"+elem.getAttribute("service-name")+
+ "' not expected: "+ifService.getName());
+ }
+ }
+
+ public void testInsertIfElseIfAction() {
+ IfModelChangeRule rule=new IfModelChangeRule();
+
+ TestESBLanguageModel model=new TestESBLanguageModel();
+
+ TestESBService service=(TestESBService)
+ model.createService("testcategory", "testname");
+
+ model.addService(service);
+
+ TestModelChangeContext context=new TestModelChangeContext();
+ context.setParent(service);
+
+ Role role=new Role();
+ role.setName("role1");
+
+ context.setRole(role);
+
+ If mobj=new If();
+
+ ConditionalBlock cb1=new ConditionalBlock();
+ mobj.getConditionalBlocks().add(cb1);
+
+ ConditionalBlock cb2=new ConditionalBlock();
+ mobj.getConditionalBlocks().add(cb2);
+
+ ConditionalBlock cb3=new ConditionalBlock();
+ mobj.getConditionalBlocks().add(cb3);
+
+ mobj.getRoles().add(role);
+
+ if (rule.insert(context, model, mobj, -1) == false) {
+ fail("Failed to insert");
+ }
+
+ // Check actions
+ if (service.getActions().size() != 1) {
+ fail("Expecting 1 action: "+service.getActions().size());
+ }
+
+ if ((service.getActions().get(0) instanceof IfAction) == false) {
+ fail("Action was not IfAction: "+service.getActions().get(0));
+ }
+
+ if (model.getServices().size() != 4) {
+ fail("Four services expected: "+model.getServices().size());
+ }
+
+ ESBService ifService=null;
+ ESBService elseIfService1=null;
+ ESBService elseIfService2=null;
+ java.util.Iterator<ESBService> iter=model.getServices().iterator();
+
+ while ((ifService == null || elseIfService1 == null ||
+ elseIfService2 == null) && iter.hasNext()) {
+ ESBService serv = iter.next();
+ if (serv.getName().endsWith("__0")) {
+ ifService = serv;
+ }
+ if (serv.getName().endsWith("__1")) {
+ elseIfService1 = serv;
+ }
+ if (serv.getName().endsWith("__2")) {
+ elseIfService2 = serv;
+ }
+ }
+
+ IfAction action=(IfAction)service.getActions().get(0);
+
+ org.w3c.dom.NodeList paths=action.getPropertyChildNodes("paths");
+
+ if (paths.getLength() != 3) {
+ fail("Three path children expected: "+paths.getLength());
+ }
+
+ org.w3c.dom.Element elem=(org.w3c.dom.Element)paths.item(0);
+
+ if (elem.getNodeName().equals("if") == false) {
+ fail("If expected but got: "+elem.getNodeName());
+ }
+
+ if (elem.getAttribute("service-category").equals(ifService.getCategory()) ==
false) {
+ fail("Service category
'"+elem.getAttribute("service-category")+
+ "' not expected: "+ifService.getCategory());
+ }
+
+ if (elem.getAttribute("service-name").equals(ifService.getName()) == false)
{
+ fail("Service name '"+elem.getAttribute("service-name")+
+ "' not expected: "+ifService.getName());
+ }
+
+ elem=(org.w3c.dom.Element)paths.item(1);
+
+ if (elem.getNodeName().equals("elseif") == false) {
+ fail("ElseIf expected but got: "+elem.getNodeName());
+ }
+
+ if
(elem.getAttribute("service-category").equals(elseIfService1.getCategory()) ==
false) {
+ fail("Service category
'"+elem.getAttribute("service-category")+
+ "' not expected: "+elseIfService1.getCategory());
+ }
+
+ if (elem.getAttribute("service-name").equals(elseIfService1.getName()) ==
false) {
+ fail("Service name '"+elem.getAttribute("service-name")+
+ "' not expected: "+elseIfService1.getName());
+ }
+
+ elem=(org.w3c.dom.Element)paths.item(2);
+
+ if (elem.getNodeName().equals("elseif") == false) {
+ fail("ElseIf(2) expected but got: "+elem.getNodeName());
+ }
+
+ if
(elem.getAttribute("service-category").equals(elseIfService2.getCategory()) ==
false) {
+ fail("Service category
'"+elem.getAttribute("service-category")+
+ "' not expected: "+elseIfService2.getCategory());
+ }
+
+ if (elem.getAttribute("service-name").equals(elseIfService2.getName()) ==
false) {
+ fail("Service name '"+elem.getAttribute("service-name")+
+ "' not expected: "+elseIfService2.getName());
+ }
+ }
+
+ public void testInsertIfElseAction() {
+ IfModelChangeRule rule=new IfModelChangeRule();
+
+ TestESBLanguageModel model=new TestESBLanguageModel();
+
+ TestESBService service=(TestESBService)
+ model.createService("testcategory", "testname");
+
+ model.addService(service);
+
+ TestModelChangeContext context=new TestModelChangeContext();
+ context.setParent(service);
+
+ Role role=new Role();
+ role.setName("role1");
+
+ context.setRole(role);
+
+ If mobj=new If();
+
+ ConditionalBlock cb1=new ConditionalBlock();
+ mobj.getConditionalBlocks().add(cb1);
+
+ Block b1=new Block();
+ mobj.setElseBlock(b1);
+
+ mobj.getRoles().add(role);
+
+ if (rule.insert(context, model, mobj, -1) == false) {
+ fail("Failed to insert");
+ }
+
+ // Check actions
+ if (service.getActions().size() != 1) {
+ fail("Expecting 1 action: "+service.getActions().size());
+ }
+
+ if ((service.getActions().get(0) instanceof IfAction) == false) {
+ fail("Action was not IfAction: "+service.getActions().get(0));
+ }
+
+ if (model.getServices().size() != 3) {
+ fail("Three services expected: "+model.getServices().size());
+ }
+
+ ESBService ifService=null;
+ ESBService elseService=null;
+ java.util.Iterator<ESBService> iter=model.getServices().iterator();
+
+ while ((ifService == null || elseService == null) &&
+ iter.hasNext()) {
+ ESBService serv = iter.next();
+ if (serv.getName().endsWith("__0")) {
+ ifService = serv;
+ }
+ if (serv.getName().endsWith("__1")) {
+ elseService = serv;
+ }
+ }
+
+ IfAction action=(IfAction)service.getActions().get(0);
+
+ org.w3c.dom.NodeList paths=action.getPropertyChildNodes("paths");
+
+ if (paths.getLength() != 2) {
+ fail("Three path children expected: "+paths.getLength());
+ }
+
+ org.w3c.dom.Element elem=(org.w3c.dom.Element)paths.item(0);
+
+ if (elem.getNodeName().equals("if") == false) {
+ fail("If expected but got: "+elem.getNodeName());
+ }
+
+ if (elem.getAttribute("service-category").equals(ifService.getCategory()) ==
false) {
+ fail("Service category
'"+elem.getAttribute("service-category")+
+ "' not expected: "+ifService.getCategory());
+ }
+
+ if (elem.getAttribute("service-name").equals(ifService.getName()) == false)
{
+ fail("Service name '"+elem.getAttribute("service-name")+
+ "' not expected: "+ifService.getName());
+ }
+
+ elem=(org.w3c.dom.Element)paths.item(1);
+
+ if (elem.getNodeName().equals("else") == false) {
+ fail("Else expected but got: "+elem.getNodeName());
+ }
+
+ if (elem.getAttribute("service-category").equals(elseService.getCategory())
== false) {
+ fail("Service category
'"+elem.getAttribute("service-category")+
+ "' not expected: "+elseService.getCategory());
+ }
+
+ if (elem.getAttribute("service-name").equals(elseService.getName()) == false)
{
+ fail("Service name '"+elem.getAttribute("service-name")+
+ "' not expected: "+elseService.getName());
+ }
+ }
+
+ public void testInsertSwitchAction() {
+ IfModelChangeRule rule=new IfModelChangeRule();
+
+ TestESBLanguageModel model=new TestESBLanguageModel();
+
+ TestESBService service=(TestESBService)
+ model.createService("testcategory", "testname");
+
+ model.addService(service);
+
+ TestModelChangeContext context=new TestModelChangeContext();
+ context.setParent(service);
+
+ Role role1=new Role();
+ role1.setName("role1");
+
+ Role role2=new Role();
+ role2.setName("role2");
+
+ context.setRole(role1);
+
+ If mobj=new If();
+
+ mobj.getRoles().add(role2);
+
+ ConditionalBlock cb1=new ConditionalBlock();
+ mobj.getConditionalBlocks().add(cb1);
+
+ if (rule.insert(context, model, mobj, -1) == false) {
+ fail("Failed to insert");
+ }
+
+ // Check actions
+ if (service.getActions().size() != 1) {
+ fail("Expecting 1 action: "+service.getActions().size());
+ }
+
+ if ((service.getActions().get(0) instanceof SwitchAction) == false) {
+ fail("Action was not SwitchAction: "+service.getActions().get(0));
+ }
+
+ if (model.getServices().size() != 2) {
+ fail("Two services expected: "+model.getServices().size());
+ }
+
+ ESBService switchService=null;
+ java.util.Iterator<ESBService> iter=model.getServices().iterator();
+
+ while (switchService == null && iter.hasNext()) {
+ switchService = iter.next();
+ if (switchService == service) {
+ switchService = null;
+ }
+ }
+
+ SwitchAction action=(SwitchAction)service.getActions().get(0);
+
+ org.w3c.dom.NodeList paths=action.getPropertyChildNodes("paths");
+
+ if (paths.getLength() != 1) {
+ fail("Only one path child expected: "+paths.getLength());
+ }
+
+ org.w3c.dom.Element elem=(org.w3c.dom.Element)paths.item(0);
+
+ if (elem.getNodeName().equals("case") == false) {
+ fail("Switch expected but got: "+elem.getNodeName());
+ }
+
+ if (elem.getAttribute("service-category").equals(switchService.getCategory())
== false) {
+ fail("Service category
'"+elem.getAttribute("service-category")+
+ "' not expected: "+switchService.getCategory());
+ }
+
+ if (elem.getAttribute("service-name").equals(switchService.getName()) ==
false) {
+ fail("Service name '"+elem.getAttribute("service-name")+
+ "' not expected: "+switchService.getName());
+ }
+ }
+
+ public void testInsertSwitchMultipleCaseAction() {
+ IfModelChangeRule rule=new IfModelChangeRule();
+
+ TestESBLanguageModel model=new TestESBLanguageModel();
+
+ TestESBService service=(TestESBService)
+ model.createService("testcategory", "testname");
+
+ model.addService(service);
+
+ TestModelChangeContext context=new TestModelChangeContext();
+ context.setParent(service);
+
+ Role role1=new Role();
+ role1.setName("role1");
+
+ Role role2=new Role();
+ role2.setName("role2");
+
+ context.setRole(role1);
+
+ If mobj=new If();
+
+ mobj.getRoles().add(role2);
+
+ ConditionalBlock cb1=new ConditionalBlock();
+ mobj.getConditionalBlocks().add(cb1);
+
+ ConditionalBlock cb2=new ConditionalBlock();
+ mobj.getConditionalBlocks().add(cb2);
+
+ Block b1=new Block();
+ mobj.setElseBlock(b1);
+
+ if (rule.insert(context, model, mobj, -1) == false) {
+ fail("Failed to insert");
+ }
+
+ // Check actions
+ if (service.getActions().size() != 1) {
+ fail("Expecting 1 action: "+service.getActions().size());
+ }
+
+ if ((service.getActions().get(0) instanceof SwitchAction) == false) {
+ fail("Action was not SwitchAction: "+service.getActions().get(0));
+ }
+
+ if (model.getServices().size() != 4) {
+ fail("Four services expected: "+model.getServices().size());
+ }
+
+ ESBService caseService1=null;
+ ESBService caseService2=null;
+ ESBService caseService3=null;
+ java.util.Iterator<ESBService> iter=model.getServices().iterator();
+
+ while ((caseService1 == null || caseService2 == null ||
+ caseService3 == null) && iter.hasNext()) {
+ ESBService serv = iter.next();
+ if (serv.getName().endsWith("__0")) {
+ caseService1 = serv;
+ }
+ if (serv.getName().endsWith("__1")) {
+ caseService2 = serv;
+ }
+ if (serv.getName().endsWith("__2")) {
+ caseService3 = serv;
+ }
+ }
+
+ SwitchAction action=(SwitchAction)service.getActions().get(0);
+
+ org.w3c.dom.NodeList paths=action.getPropertyChildNodes("paths");
+
+ if (paths.getLength() != 3) {
+ fail("Three path children expected: "+paths.getLength());
+ }
+
+ org.w3c.dom.Element elem=(org.w3c.dom.Element)paths.item(0);
+
+ if (elem.getNodeName().equals("case") == false) {
+ fail("If expected but got: "+elem.getNodeName());
+ }
+
+ if (elem.getAttribute("service-category").equals(caseService1.getCategory())
== false) {
+ fail("Service category
'"+elem.getAttribute("service-category")+
+ "' not expected: "+caseService1.getCategory());
+ }
+
+ if (elem.getAttribute("service-name").equals(caseService1.getName()) ==
false) {
+ fail("Service name '"+elem.getAttribute("service-name")+
+ "' not expected: "+caseService1.getName());
+ }
+
+ elem=(org.w3c.dom.Element)paths.item(1);
+
+ if (elem.getNodeName().equals("case") == false) {
+ fail("Else expected but got: "+elem.getNodeName());
+ }
+
+ if (elem.getAttribute("service-category").equals(caseService2.getCategory())
== false) {
+ fail("Service category
'"+elem.getAttribute("service-category")+
+ "' not expected: "+caseService2.getCategory());
+ }
+
+ if (elem.getAttribute("service-name").equals(caseService2.getName()) ==
false) {
+ fail("Service name '"+elem.getAttribute("service-name")+
+ "' not expected: "+caseService2.getName());
+ }
+
+ elem=(org.w3c.dom.Element)paths.item(2);
+
+ if (elem.getNodeName().equals("case") == false) {
+ fail("Else expected but got: "+elem.getNodeName());
+ }
+
+ if (elem.getAttribute("service-category").equals(caseService3.getCategory())
== false) {
+ fail("Service category
'"+elem.getAttribute("service-category")+
+ "' not expected: "+caseService3.getCategory());
+ }
+
+ if (elem.getAttribute("service-name").equals(caseService3.getName()) ==
false) {
+ fail("Service name '"+elem.getAttribute("service-name")+
+ "' not expected: "+caseService3.getName());
+ }
+ }
+}