[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