[overlord-commits] Overlord SVN: r122 - in cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src: java/org/jboss/tools/overlord/jbossesb/model/actions and 1 other directories.
overlord-commits at lists.jboss.org
overlord-commits at lists.jboss.org
Fri Jul 4 10:48:55 EDT 2008
Author: objectiser
Date: 2008-07-04 10:48:55 -0400 (Fri, 04 Jul 2008)
New Revision: 122
Modified:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/ConversionContext.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/DefaultConversionContext.java
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/actions/ReceiveMessageAction.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/SendMessageAction.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/ParallelActionTest.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/ReceiveMessageActionTest.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/ScheduleStateActionTest.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/TestESBService.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/WhileActionTest.java
Log:
Added the remaining unit tests for the conversion of the non-grouping constructs.
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/ConversionContext.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/ConversionContext.java 2008-07-04 13:40:31 UTC (rev 121)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/ConversionContext.java 2008-07-04 14:48:55 UTC (rev 122)
@@ -22,6 +22,14 @@
public interface ConversionContext {
/**
+ * This method returns the role associated with the
+ * endpoint being converted.
+ *
+ *@return The role
+ */
+ public String getRole();
+
+ /**
* This method is invoked when an ESB service is being processed.
*
* @param service The service
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/DefaultConversionContext.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/DefaultConversionContext.java 2008-07-04 13:40:31 UTC (rev 121)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/DefaultConversionContext.java 2008-07-04 14:48:55 UTC (rev 122)
@@ -24,6 +24,26 @@
public class DefaultConversionContext implements ConversionContext {
/**
+ * This constructor initializes the role associated with
+ * the conversion.
+ *
+ * @param role The role
+ */
+ public DefaultConversionContext(String role) {
+ m_role = role;
+ }
+
+ /**
+ * This method returns the role associated with the
+ * endpoint being converted.
+ *
+ *@return The role
+ */
+ public String getRole() {
+ return(m_role);
+ }
+
+ /**
* This method is invoked when an ESB service is being processed.
*
* @param service The service
@@ -105,4 +125,5 @@
private java.util.List<ESBService> m_serviceStack=new java.util.Vector<ESBService>();
private java.util.List<ESBService> m_joins=new java.util.Vector<ESBService>();
+ private String m_role=null;
}
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-04 13:40:31 UTC (rev 121)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/DefaultESBLanguageModel.java 2008-07-04 14:48:55 UTC (rev 122)
@@ -115,6 +115,8 @@
conv.setModelName(modelName);
String convType=service.getConversationType();
+ String role=null;
+
if (convType != null) {
int index=convType.indexOf('@');
@@ -128,8 +130,10 @@
//ConformanceReference iref=
// new ConformanceReference(ConversationModel.CONVERSATION);
- iref.setLocatedRole(convType.substring(index+1));
+ role = convType.substring(index+1);
+ iref.setLocatedRole(role);
+
// Need to locate the model name
modelName.setLocatedRole(new Role(iref.getLocatedRole()));
@@ -171,7 +175,7 @@
conv.setBlock(new Block());
service.convert(conv.getBlock().getContents(),
- new DefaultConversionContext());
+ new DefaultConversionContext(role));
getConversations().add(conv);
}
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/ReceiveMessageAction.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/ReceiveMessageAction.java 2008-07-04 13:40:31 UTC (rev 121)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/ReceiveMessageAction.java 2008-07-04 14:48:55 UTC (rev 122)
@@ -99,6 +99,9 @@
ms.getTypes().add(ref);
}
- // TODO: Initialize the 'to' role to be this participant
+ // Initialize the 'to' role to be this participant
+ if (context.getRole() != null) {
+ recv.setToRole(new Role(context.getRole()));
+ }
}
}
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/SendMessageAction.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/SendMessageAction.java 2008-07-04 13:40:31 UTC (rev 121)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/SendMessageAction.java 2008-07-04 14:48:55 UTC (rev 122)
@@ -165,6 +165,12 @@
ms.getTypes().add(ref);
}
+ // Initialize the 'from' role to be this participant
+ // (for now until 'to' role can be set)
+ if (context.getRole() != null) {
+ send.setFromRole(new Role(context.getRole()));
+ }
+
// TODO: Initialize the 'to' role (possibly to a
// namespace=service category and localpart=service
// name. This would need to be mapped when doing
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/ParallelActionTest.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/ParallelActionTest.java 2008-07-04 13:40:31 UTC (rev 121)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/ParallelActionTest.java 2008-07-04 14:48:55 UTC (rev 122)
@@ -343,7 +343,7 @@
java.util.List<Activity> activities=new java.util.Vector<Activity>();
- action.convert(activities, new DefaultConversionContext());
+ action.convert(activities, new DefaultConversionContext(null));
if (activities.size() != 2) {
fail("Expecting two activities, but got: "+activities.size());
@@ -376,9 +376,6 @@
}
}
- /* Miss out test for now, until conformance checking fixed
- * so that it ignores 'invisible' activities
- *
public void testConvertNotExcludingEmptyPaths() {
TestESBService service=new TestESBService();
@@ -423,7 +420,7 @@
java.util.List<Activity> activities=new java.util.Vector<Activity>();
- action.convert(activities, new DefaultConversionContext());
+ action.convert(activities, new DefaultConversionContext(null));
if (activities.size() != 2) {
fail("Expecting two activities, but got: "+activities.size());
@@ -454,5 +451,4 @@
fail("Activity after parallel should be act3");
}
}
- */
}
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-04 13:40:31 UTC (rev 121)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/PerformActionTest.java 2008-07-04 14:48:55 UTC (rev 122)
@@ -17,6 +17,9 @@
*/
package org.jboss.tools.overlord.jbossesb.model.actions;
+import org.scribble.conversation.model.*;
+import org.scribble.model.Activity;
+
import junit.framework.TestCase;
public class PerformActionTest extends TestCase {
@@ -202,4 +205,137 @@
fail(l.invalidMessage());
}
}
+
+ public void testConvert() {
+ TestESBService service=new TestESBService();
+
+ java.util.Map<String,String> props=new java.util.Hashtable<String,String>();
+ props.put("serviceCategory", "cat1");
+ props.put("serviceName", "name1");
+ props.put("joinServiceCategory", "cat2");
+ props.put("joinServiceName", "name2");
+
+ org.w3c.dom.Element elem=ESBActionTestUtil.getAction(null, props, null);
+
+ TestESBService other1=new TestESBService();
+ other1.setCategory("cat1");
+ other1.setName("name1");
+
+ TestActivity act1=new TestActivity();
+ other1.getContents().add(act1);
+
+ TestESBService other2=new TestESBService();
+ other2.setCategory("cat2");
+ other2.setName("name2");
+
+ TestActivity act2=new TestActivity();
+ other2.getContents().add(act2);
+
+ TestESBLanguageModel model=new TestESBLanguageModel();
+ model.addService(other1);
+ model.addService(other2);
+ model.addService(service);
+
+ service.setModel(model);
+
+ PerformAction action=new PerformAction(service, elem);
+ action.initializeLinks();
+
+ service.getActions().add(action);
+
+ java.util.List<Activity> activities=new java.util.Vector<Activity>();
+
+ action.convert(activities, null);
+
+ if (activities.size() != 2) {
+ fail("Expecting two activities, but got: "+activities.size());
+ }
+
+ Activity act=activities.get(0);
+
+ if ((act instanceof Run) == false) {
+ fail("Expecting an 'Run' activity");
+ }
+
+ Run runAction=(Run)act;
+
+ if (runAction.getDefinition() == null) {
+ fail("Run definition was null");
+ }
+
+ if (runAction.getDefinition().getBlock().getContents().size() != 1) {
+ fail("Expecting one ran block activity: "+runAction.getDefinition().getBlock().getContents().size());
+ }
+
+ if (runAction.getDefinition().getBlock().getContents().get(0) != act1) {
+ fail("Run model block should have 1 activity = act1");
+ }
+
+ if (activities.get(1) != act2) {
+ fail("Subsequent activity after run was not act2");
+ }
+ }
+
+ public void testConvertNotExcludingEmptyPath() {
+ TestESBService service=new TestESBService();
+
+ java.util.Map<String,String> props=new java.util.Hashtable<String,String>();
+ props.put("serviceCategory", "cat1");
+ props.put("serviceName", "name1");
+ props.put("joinServiceCategory", "cat2");
+ props.put("joinServiceName", "name2");
+
+ org.w3c.dom.Element elem=ESBActionTestUtil.getAction(null, props, null);
+
+ TestESBService other1=new TestESBService();
+ other1.setCategory("cat1");
+ other1.setName("name1");
+
+ TestESBService other2=new TestESBService();
+ other2.setCategory("cat2");
+ other2.setName("name2");
+
+ TestActivity act2=new TestActivity();
+ other2.getContents().add(act2);
+
+ TestESBLanguageModel model=new TestESBLanguageModel();
+ model.addService(other1);
+ model.addService(other2);
+ model.addService(service);
+
+ service.setModel(model);
+
+ PerformAction action=new PerformAction(service, elem);
+ action.initializeLinks();
+
+ service.getActions().add(action);
+
+ java.util.List<Activity> activities=new java.util.Vector<Activity>();
+
+ action.convert(activities, null);
+
+ if (activities.size() != 2) {
+ fail("Expecting two activities, but got: "+activities.size());
+ }
+
+ Activity act=activities.get(0);
+
+ if ((act instanceof Run) == false) {
+ fail("Expecting an 'Run' activity");
+ }
+
+ Run runAction=(Run)act;
+
+ if (runAction.getDefinition() == null) {
+ fail("Run definition was null");
+ }
+
+ if (runAction.getDefinition().getBlock().getContents().size() != 0) {
+ fail("Expecting zero ran block activities: "+runAction.getDefinition().getBlock().getContents().size());
+ }
+
+ if (activities.get(1) != act2) {
+ fail("Subsequent activity after run was not act2");
+ }
+ }
}
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/ReceiveMessageActionTest.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/ReceiveMessageActionTest.java 2008-07-04 13:40:31 UTC (rev 121)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/ReceiveMessageActionTest.java 2008-07-04 14:48:55 UTC (rev 122)
@@ -17,6 +17,9 @@
*/
package org.jboss.tools.overlord.jbossesb.model.actions;
+import org.scribble.model.*;
+import org.jboss.tools.overlord.jbossesb.model.*;
+
import junit.framework.TestCase;
public class ReceiveMessageActionTest extends TestCase {
@@ -76,4 +79,188 @@
fail(l.invalidMessage());
}
}
+
+ public void testConvertRoles() {
+ TestESBService service=new TestESBService();
+
+ String ns="MessageTypeNS";
+ String lp="MessageType";
+ String role="Buyer";
+
+ java.util.Map<String,String> props=new java.util.Hashtable<String,String>();
+ props.put("messageType", "{"+ns+"}"+lp);
+
+ org.w3c.dom.Element elem=ESBActionTestUtil.getAction(null, props, null);
+
+ TestESBLanguageModel model=new TestESBLanguageModel();
+ model.addService(service);
+
+ service.setModel(model);
+
+ ReceiveMessageAction action=new ReceiveMessageAction(service, elem);
+ action.initializeLinks();
+
+ service.getActions().add(action);
+
+ java.util.List<Activity> activities=new java.util.Vector<Activity>();
+
+ action.convert(activities, new DefaultConversionContext(role));
+
+ if (activities.size() != 1) {
+ fail("Expecting one activity, but got: "+activities.size());
+ }
+
+ Activity act=activities.get(0);
+
+ if ((act instanceof Interaction) == false) {
+ fail("Expecting an 'Interaction' activity");
+ }
+
+ Interaction interaction=(Interaction)act;
+
+ if (interaction.getToRole() == null) {
+ fail("'To' role is null");
+ }
+
+ if (interaction.getToRole().getName().equals(role) == false) {
+ fail("'To' role should be '"+role+"', but found: "+interaction.getToRole().getName());
+ }
+
+ if (interaction.getFromRole() != null) {
+ fail("'From' role should be null");
+ }
+ }
+
+ public void testConvertMessageBased() {
+ TestESBService service=new TestESBService();
+
+ String ns="MessageTypeNS";
+ String lp="MessageType";
+ String role="Buyer";
+
+ java.util.Map<String,String> props=new java.util.Hashtable<String,String>();
+ props.put("messageType", "{"+ns+"}"+lp);
+
+ org.w3c.dom.Element elem=ESBActionTestUtil.getAction(null, props, null);
+
+ TestESBLanguageModel model=new TestESBLanguageModel();
+ model.addService(service);
+
+ service.setModel(model);
+
+ ReceiveMessageAction action=new ReceiveMessageAction(service, elem);
+ action.initializeLinks();
+
+ service.getActions().add(action);
+
+ java.util.List<Activity> activities=new java.util.Vector<Activity>();
+
+ action.convert(activities, new DefaultConversionContext(role));
+
+ if (activities.size() != 1) {
+ fail("Expecting one activity, but got: "+activities.size());
+ }
+
+ Activity act=activities.get(0);
+
+ if ((act instanceof Interaction) == false) {
+ fail("Expecting an 'Interaction' activity");
+ }
+
+ Interaction interaction=(Interaction)act;
+
+ if (interaction.getMessageSignature() == null) {
+ fail("Message signature is null");
+ }
+
+ if (interaction.getMessageSignature().getOperation() != null) {
+ fail("Operation should be null");
+ }
+
+ if (interaction.getMessageSignature().getTypes().size() != 1) {
+ fail("Only one type expected, but got: "+interaction.getMessageSignature().getTypes().size());
+ }
+
+ TypeReference ref=interaction.getMessageSignature().getTypes().get(0);
+
+ if (ref.getNamespace() == null ||
+ ref.getNamespace().equals(ns) == false) {
+ fail("Namespace should be '"+ns+"', but found: "+ref.getNamespace());
+ }
+
+ if (ref.getLocalpart() == null ||
+ ref.getLocalpart().equals(lp) == false) {
+ fail("Local type should be '"+lp+"', but found: "+ref.getLocalpart());
+ }
+ }
+
+ public void testConvertRPCBased() {
+ TestESBService service=new TestESBService();
+
+ String ns="MessageTypeNS";
+ String lp="MessageType";
+ String opname="op";
+ String role="Buyer";
+
+ java.util.Map<String,String> props=new java.util.Hashtable<String,String>();
+ props.put("operation", opname);
+ props.put("messageType", "{"+ns+"}"+lp);
+
+ org.w3c.dom.Element elem=ESBActionTestUtil.getAction(null, props, null);
+
+ TestESBLanguageModel model=new TestESBLanguageModel();
+ model.addService(service);
+
+ service.setModel(model);
+
+ ReceiveMessageAction action=new ReceiveMessageAction(service, elem);
+ action.initializeLinks();
+
+ service.getActions().add(action);
+
+ java.util.List<Activity> activities=new java.util.Vector<Activity>();
+
+ action.convert(activities, new DefaultConversionContext(role));
+
+ if (activities.size() != 1) {
+ fail("Expecting one activity, but got: "+activities.size());
+ }
+
+ Activity act=activities.get(0);
+
+ if ((act instanceof Interaction) == false) {
+ fail("Expecting an 'Interaction' activity");
+ }
+
+ Interaction interaction=(Interaction)act;
+
+ if (interaction.getMessageSignature() == null) {
+ fail("Message signature is null");
+ }
+
+ if (interaction.getMessageSignature().getOperation() == null) {
+ fail("Operation should not be null");
+ }
+
+ if (interaction.getMessageSignature().getOperation().equals(opname) == false) {
+ fail("Operation expected '"+opname+"', but got: "+
+ interaction.getMessageSignature().getOperation());
+ }
+
+ if (interaction.getMessageSignature().getTypes().size() != 1) {
+ fail("Only one type expected, but got: "+interaction.getMessageSignature().getTypes().size());
+ }
+
+ TypeReference ref=interaction.getMessageSignature().getTypes().get(0);
+
+ if (ref.getNamespace() == null ||
+ ref.getNamespace().equals(ns) == false) {
+ fail("Namespace should be '"+ns+"', but found: "+ref.getNamespace());
+ }
+
+ if (ref.getLocalpart() == null ||
+ ref.getLocalpart().equals(lp) == false) {
+ fail("Local type should be '"+lp+"', but found: "+ref.getLocalpart());
+ }
+ }
}
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/ScheduleStateActionTest.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/ScheduleStateActionTest.java 2008-07-04 13:40:31 UTC (rev 121)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/ScheduleStateActionTest.java 2008-07-04 14:48:55 UTC (rev 122)
@@ -17,6 +17,9 @@
*/
package org.jboss.tools.overlord.jbossesb.model.actions;
+import org.scribble.model.Activity;
+import org.jboss.tools.overlord.jbossesb.model.*;
+
import junit.framework.TestCase;
public class ScheduleStateActionTest extends TestCase {
@@ -111,4 +114,123 @@
fail(l.invalidMessage());
}
}
+
+ public void testConvert() {
+ TestESBService service=new TestESBService();
+
+ java.util.Map<String,String> props=new java.util.Hashtable<String,String>();
+ props.put("serviceCategory", "cat1");
+ props.put("serviceName", "name1");
+
+ org.w3c.dom.Element elem=ESBActionTestUtil.getAction(null, props, null);
+
+ TestESBService other1=new TestESBService();
+ other1.setCategory("cat1");
+ other1.setName("name1");
+
+ TestActivity act1=new TestActivity();
+ other1.getContents().add(act1);
+
+ TestESBLanguageModel model=new TestESBLanguageModel();
+ model.addService(other1);
+ model.addService(service);
+
+ service.setModel(model);
+
+ ScheduleStateAction action=new ScheduleStateAction(service, elem);
+ action.initializeLinks();
+
+ service.getActions().add(action);
+
+ java.util.List<Activity> activities=new java.util.Vector<Activity>();
+
+ action.convert(activities, new DefaultConversionContext(null));
+
+ if (activities.size() != 1) {
+ fail("Expecting one activity, but got: "+activities.size());
+ }
+
+ if (activities.get(0) != act1) {
+ fail("Activity was not act1");
+ }
+ }
+
+ public void testConvertBackToWhileLoop() {
+ TestESBService service=new TestESBService();
+
+ java.util.Map<String,String> props=new java.util.Hashtable<String,String>();
+ props.put("serviceCategory", "cat1");
+ props.put("serviceName", "name1");
+
+ org.w3c.dom.Element elem=ESBActionTestUtil.getAction(null, props, null);
+
+ TestESBService other1=new TestESBService();
+ other1.setCategory("cat1");
+ other1.setName("name1");
+ other1.setLoop(true);
+
+ TestActivity act1=new TestActivity();
+ other1.getContents().add(act1);
+
+ TestESBLanguageModel model=new TestESBLanguageModel();
+ model.addService(other1);
+ model.addService(service);
+
+ service.setModel(model);
+
+ ScheduleStateAction action=new ScheduleStateAction(service, elem);
+ action.initializeLinks();
+
+ service.getActions().add(action);
+
+ java.util.List<Activity> activities=new java.util.Vector<Activity>();
+
+ DefaultConversionContext context=new DefaultConversionContext(null);
+ context.push(other1);
+
+ action.convert(activities, context);
+
+ if (activities.size() != 0) {
+ fail("Should be no activities, but found: "+activities.size());
+ }
+ }
+
+ public void testConvertBackToJoinState() {
+ TestESBService service=new TestESBService();
+
+ java.util.Map<String,String> props=new java.util.Hashtable<String,String>();
+ props.put("serviceCategory", "cat1");
+ props.put("serviceName", "name1");
+
+ org.w3c.dom.Element elem=ESBActionTestUtil.getAction(null, props, null);
+
+ TestESBService other1=new TestESBService();
+ other1.setCategory("cat1");
+ other1.setName("name1");
+
+ TestActivity act1=new TestActivity();
+ other1.getContents().add(act1);
+
+ TestESBLanguageModel model=new TestESBLanguageModel();
+ model.addService(other1);
+ model.addService(service);
+
+ service.setModel(model);
+
+ ScheduleStateAction action=new ScheduleStateAction(service, elem);
+ action.initializeLinks();
+
+ service.getActions().add(action);
+
+ java.util.List<Activity> activities=new java.util.Vector<Activity>();
+
+ DefaultConversionContext context=new DefaultConversionContext(null);
+ context.markJoin(other1);
+
+ action.convert(activities, context);
+
+ if (activities.size() != 0) {
+ fail("Should be no activities, but found: "+activities.size());
+ }
+ }
}
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-04 13:40:31 UTC (rev 121)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/SendMessageActionTest.java 2008-07-04 14:48:55 UTC (rev 122)
@@ -17,6 +17,11 @@
*/
package org.jboss.tools.overlord.jbossesb.model.actions;
+import org.jboss.tools.overlord.jbossesb.model.DefaultConversionContext;
+import org.scribble.model.Activity;
+import org.scribble.model.Interaction;
+import org.scribble.model.TypeReference;
+
import junit.framework.TestCase;
public class SendMessageActionTest extends TestCase {
@@ -147,4 +152,188 @@
fail(l.invalidMessage());
}
}
+
+ public void testConvertRoles() {
+ TestESBService service=new TestESBService();
+
+ String ns="MessageTypeNS";
+ String lp="MessageType";
+ String role="Buyer";
+
+ java.util.Map<String,String> props=new java.util.Hashtable<String,String>();
+ props.put("messageType", "{"+ns+"}"+lp);
+
+ org.w3c.dom.Element elem=ESBActionTestUtil.getAction(null, props, null);
+
+ TestESBLanguageModel model=new TestESBLanguageModel();
+ model.addService(service);
+
+ service.setModel(model);
+
+ SendMessageAction action=new SendMessageAction(service, elem);
+ action.initializeLinks();
+
+ service.getActions().add(action);
+
+ java.util.List<Activity> activities=new java.util.Vector<Activity>();
+
+ action.convert(activities, new DefaultConversionContext(role));
+
+ if (activities.size() != 1) {
+ fail("Expecting one activity, but got: "+activities.size());
+ }
+
+ Activity act=activities.get(0);
+
+ if ((act instanceof Interaction) == false) {
+ fail("Expecting an 'Interaction' activity");
+ }
+
+ Interaction interaction=(Interaction)act;
+
+ if (interaction.getFromRole() == null) {
+ fail("'From' role is null");
+ }
+
+ if (interaction.getFromRole().getName().equals(role) == false) {
+ fail("'From' role should be '"+role+"', but found: "+interaction.getFromRole().getName());
+ }
+
+ if (interaction.getToRole() != null) {
+ fail("'To' role should be null");
+ }
+ }
+
+ public void testConvertMessageBased() {
+ TestESBService service=new TestESBService();
+
+ String ns="MessageTypeNS";
+ String lp="MessageType";
+ String role="Buyer";
+
+ java.util.Map<String,String> props=new java.util.Hashtable<String,String>();
+ props.put("messageType", "{"+ns+"}"+lp);
+
+ org.w3c.dom.Element elem=ESBActionTestUtil.getAction(null, props, null);
+
+ TestESBLanguageModel model=new TestESBLanguageModel();
+ model.addService(service);
+
+ service.setModel(model);
+
+ SendMessageAction action=new SendMessageAction(service, elem);
+ action.initializeLinks();
+
+ service.getActions().add(action);
+
+ java.util.List<Activity> activities=new java.util.Vector<Activity>();
+
+ action.convert(activities, new DefaultConversionContext(role));
+
+ if (activities.size() != 1) {
+ fail("Expecting one activity, but got: "+activities.size());
+ }
+
+ Activity act=activities.get(0);
+
+ if ((act instanceof Interaction) == false) {
+ fail("Expecting an 'Interaction' activity");
+ }
+
+ Interaction interaction=(Interaction)act;
+
+ if (interaction.getMessageSignature() == null) {
+ fail("Message signature is null");
+ }
+
+ if (interaction.getMessageSignature().getOperation() != null) {
+ fail("Operation should be null");
+ }
+
+ if (interaction.getMessageSignature().getTypes().size() != 1) {
+ fail("Only one type expected, but got: "+interaction.getMessageSignature().getTypes().size());
+ }
+
+ TypeReference ref=interaction.getMessageSignature().getTypes().get(0);
+
+ if (ref.getNamespace() == null ||
+ ref.getNamespace().equals(ns) == false) {
+ fail("Namespace should be '"+ns+"', but found: "+ref.getNamespace());
+ }
+
+ if (ref.getLocalpart() == null ||
+ ref.getLocalpart().equals(lp) == false) {
+ fail("Local type should be '"+lp+"', but found: "+ref.getLocalpart());
+ }
+ }
+
+ public void testConvertRPCBased() {
+ TestESBService service=new TestESBService();
+
+ String ns="MessageTypeNS";
+ String lp="MessageType";
+ String opname="op";
+ String role="Buyer";
+
+ java.util.Map<String,String> props=new java.util.Hashtable<String,String>();
+ props.put("operation", opname);
+ props.put("messageType", "{"+ns+"}"+lp);
+
+ org.w3c.dom.Element elem=ESBActionTestUtil.getAction(null, props, null);
+
+ TestESBLanguageModel model=new TestESBLanguageModel();
+ model.addService(service);
+
+ service.setModel(model);
+
+ SendMessageAction action=new SendMessageAction(service, elem);
+ action.initializeLinks();
+
+ service.getActions().add(action);
+
+ java.util.List<Activity> activities=new java.util.Vector<Activity>();
+
+ action.convert(activities, new DefaultConversionContext(role));
+
+ if (activities.size() != 1) {
+ fail("Expecting one activity, but got: "+activities.size());
+ }
+
+ Activity act=activities.get(0);
+
+ if ((act instanceof Interaction) == false) {
+ fail("Expecting an 'Interaction' activity");
+ }
+
+ Interaction interaction=(Interaction)act;
+
+ if (interaction.getMessageSignature() == null) {
+ fail("Message signature is null");
+ }
+
+ if (interaction.getMessageSignature().getOperation() == null) {
+ fail("Operation should not be null");
+ }
+
+ if (interaction.getMessageSignature().getOperation().equals(opname) == false) {
+ fail("Operation expected '"+opname+"', but got: "+
+ interaction.getMessageSignature().getOperation());
+ }
+
+ if (interaction.getMessageSignature().getTypes().size() != 1) {
+ fail("Only one type expected, but got: "+interaction.getMessageSignature().getTypes().size());
+ }
+
+ TypeReference ref=interaction.getMessageSignature().getTypes().get(0);
+
+ if (ref.getNamespace() == null ||
+ ref.getNamespace().equals(ns) == false) {
+ fail("Namespace should be '"+ns+"', but found: "+ref.getNamespace());
+ }
+
+ if (ref.getLocalpart() == null ||
+ ref.getLocalpart().equals(lp) == false) {
+ fail("Local type should be '"+lp+"', but found: "+ref.getLocalpart());
+ }
+ }
}
Modified: 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-04 13:40:31 UTC (rev 121)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/TestESBService.java 2008-07-04 14:48:55 UTC (rev 122)
@@ -110,9 +110,12 @@
}
+ public void setLoop(boolean bool) {
+ m_loop = bool;
+ }
+
public boolean isLoop() {
- // TODO Auto-generated method stub
- return false;
+ return(m_loop);
}
public void setRoot(boolean bool) {
@@ -149,6 +152,7 @@
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;
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/WhileActionTest.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/WhileActionTest.java 2008-07-04 13:40:31 UTC (rev 121)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/WhileActionTest.java 2008-07-04 14:48:55 UTC (rev 122)
@@ -367,7 +367,7 @@
java.util.List<Activity> activities=new java.util.Vector<Activity>();
- action.convert(activities, new DefaultConversionContext());
+ action.convert(activities, new DefaultConversionContext(null));
if (activities.size() != 2) {
fail("Expecting two activities, but got: "+activities.size());
@@ -429,7 +429,7 @@
java.util.List<Activity> activities=new java.util.Vector<Activity>();
- action.convert(activities, new DefaultConversionContext());
+ action.convert(activities, new DefaultConversionContext(null));
if (activities.size() != 2) {
fail("Expecting two activities, but got: "+activities.size());
More information about the overlord-commits
mailing list