[overlord-commits] Overlord SVN: r151 - in cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src: test/org/jboss/tools/overlord/jbossesb/model/actions and 1 other directory.

overlord-commits at lists.jboss.org overlord-commits at lists.jboss.org
Mon Jul 14 05:17:43 EDT 2008


Author: objectiser
Date: 2008-07-14 05:17:43 -0400 (Mon, 14 Jul 2008)
New Revision: 151

Modified:
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/IfAction.java
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/Messages.properties
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/ParallelAction.java
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/ScheduleStateAction.java
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/WhileAction.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/ParallelActionTest.java
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/WhileActionTest.java
Log:
Validate 'immediate' property to ensure valid boolean value.

Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/IfAction.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/IfAction.java	2008-07-13 15:11:13 UTC (rev 150)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/IfAction.java	2008-07-14 09:17:43 UTC (rev 151)
@@ -28,8 +28,9 @@
  */
 public class IfAction extends AbstractESBAction {
 
-	private static final String SERVICE_NAME = "service-name";
-	private static final String SERVICE_CATEGORY = "service-category";
+	public static final String SERVICE_NAME = "service-name";
+	public static final String SERVICE_CATEGORY = "service-category";
+	public static final String IMMEDIATE = "immediate";
 	private static final String ELSE = "else";
 	private static final String ELSEIF = "elseif";
 	private static final String IF = "if";
@@ -73,9 +74,12 @@
 					// Lookup service associated with category and name
 					ESBService service=getService().getModel().getService(category, name);
 					
+					String immediate=((org.w3c.dom.Element)n).getAttribute(IMMEDIATE);
+					
 					// Initialize link, even if service is null - this will be
 					// reported as a validation error later
-					getLinks().add(new ESBLink(category, name, service, true));
+					getLinks().add(new ESBLink(category, name, service,
+							(immediate != null && immediate.equalsIgnoreCase("true"))));
 				}
 			}
 		}
@@ -106,6 +110,7 @@
 		boolean f_else=false;
 		boolean f_orderWrong=false;
 		boolean f_serviceDetailsMissing=false;
+		boolean f_immediateInvalid=false;
 		
 		for (int i=0; nl != null && i < nl.getLength(); i++) {
 			
@@ -123,6 +128,14 @@
 							((org.w3c.dom.Element)n).hasAttribute(SERVICE_NAME) == false) {
 						f_serviceDetailsMissing = true;
 					}
+					
+					String immediate=((org.w3c.dom.Element)n).getAttribute(IMMEDIATE);
+					
+					if (((org.w3c.dom.Element)n).hasAttribute(IMMEDIATE) && 
+							immediate.equalsIgnoreCase("true") == false &&
+							immediate.equalsIgnoreCase("false") == false) {
+						f_immediateInvalid = true;
+					}
 				} else if (n.getNodeName().equals(ELSEIF)) {
 					
 					if (f_if == false || f_else) {
@@ -133,6 +146,14 @@
 							((org.w3c.dom.Element)n).hasAttribute(SERVICE_NAME) == false) {
 						f_serviceDetailsMissing = true;
 					}
+
+					String immediate=((org.w3c.dom.Element)n).getAttribute(IMMEDIATE);
+					
+					if (((org.w3c.dom.Element)n).hasAttribute(IMMEDIATE) && 
+							immediate.equalsIgnoreCase("true") == false &&
+							immediate.equalsIgnoreCase("false") == false) {
+						f_immediateInvalid = true;
+					}
 				} else if (n.getNodeName().equals(ELSE)) {
 					
 					if (f_if == false || f_else) {
@@ -145,6 +166,14 @@
 							((org.w3c.dom.Element)n).hasAttribute(SERVICE_NAME) == false) {
 						f_serviceDetailsMissing = true;
 					}
+
+					String immediate=((org.w3c.dom.Element)n).getAttribute(IMMEDIATE);
+					
+					if (((org.w3c.dom.Element)n).hasAttribute(IMMEDIATE) && 
+							immediate.equalsIgnoreCase("true") == false &&
+							immediate.equalsIgnoreCase("false") == false) {
+						f_immediateInvalid = true;
+					}
 				}
 			}
 		}
@@ -165,6 +194,14 @@
 						"_PATH_SERVICE_DETAILS_MISSING",
 						new String[]{}), null);								
 		}
+		
+		if (f_immediateInvalid) {
+			l.error(this, org.scribble.util.MessageUtil.format(
+					java.util.PropertyResourceBundle.getBundle(
+					"org.jboss.tools.overlord.jbossesb.model.actions.Messages"),
+						"_BOOLEAN",
+						new String[]{IMMEDIATE}), null);
+		}
 	}
 
 	/**

Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/Messages.properties
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/Messages.properties	2008-07-13 15:11:13 UTC (rev 150)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/Messages.properties	2008-07-14 09:17:43 UTC (rev 151)
@@ -16,6 +16,7 @@
 #  * MA  02110-1301, USA.
 #  */
 
+_BOOLEAN=Boolean property '{0}' can only have a 'true' or 'false' value
 _CANNOT_INITIATE_NON_ROOT=Cannot 'initiate' non-root service descriptor for category '{0}' and name '{1}'
 _CANNOT_SESSION_BASED_ACTIONS_WITH_ROUTER=Cannot define MessageRouterAction with session based actions in service descriptor
 _IF_ORDER_WRONG=IfAction must have an 'if' path, followed by zero or more 'elseif' paths and ending with an optional 'else' path

Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/ParallelAction.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/ParallelAction.java	2008-07-13 15:11:13 UTC (rev 150)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/ParallelAction.java	2008-07-14 09:17:43 UTC (rev 151)
@@ -28,8 +28,9 @@
  */
 public class ParallelAction extends AbstractESBAction {
 
-	private static final String SERVICE_NAME = "service-name";
-	private static final String SERVICE_CATEGORY = "service-category";
+	public static final String SERVICE_NAME = "service-name";
+	public static final String SERVICE_CATEGORY = "service-category";
+	public static final String IMMEDIATE = "immediate";
 	private static final String JOIN = "join";
 	private static final String PATH = "path";
 	private static final String PATHS = "paths";
@@ -70,9 +71,12 @@
 						// Lookup service associated with category and name
 						ESBService service=getService().getModel().getService(category, name);
 						
+						String immediate=((org.w3c.dom.Element)n).getAttribute(IMMEDIATE);
+						
 						// Initialize link, even if service is null - this will be
 						// reported as a validation error later
-						getLinks().add(new ESBLink(category, name, service, true));
+						getLinks().add(new ESBLink(category, name, service,
+								(immediate != null && immediate.equalsIgnoreCase("true"))));
 						
 						if (service != null) {
 							m_services.add(service);
@@ -122,6 +126,7 @@
 		boolean f_pathAfterJoin=false;
 		boolean f_multipleJoins=false;
 		boolean f_serviceDetailsMissing=false;
+		boolean f_immediateInvalid=false;
 		
 		for (int i=0; nl != null && i < nl.getLength(); i++) {
 			
@@ -139,6 +144,14 @@
 							((org.w3c.dom.Element)n).hasAttribute(SERVICE_NAME) == false) {
 						f_serviceDetailsMissing = true;
 					}
+					
+					String immediate=((org.w3c.dom.Element)n).getAttribute(IMMEDIATE);
+					
+					if (((org.w3c.dom.Element)n).hasAttribute(IMMEDIATE) && 
+							immediate.equalsIgnoreCase("true") == false &&
+							immediate.equalsIgnoreCase("false") == false) {
+						f_immediateInvalid = true;
+					}
 				} else if (n.getNodeName().equals(JOIN)) {
 					
 					if (f_joined) {
@@ -187,6 +200,14 @@
 						"_PATH_SERVICE_DETAILS_MISSING",
 						new String[]{}), null);								
 		}
+		
+		if (f_immediateInvalid) {
+			l.error(this, org.scribble.util.MessageUtil.format(
+					java.util.PropertyResourceBundle.getBundle(
+					"org.jboss.tools.overlord.jbossesb.model.actions.Messages"),
+						"_BOOLEAN",
+						new String[]{IMMEDIATE}), null);
+		}
 	}
 		
 	/**

Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/ScheduleStateAction.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/ScheduleStateAction.java	2008-07-13 15:11:13 UTC (rev 150)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/ScheduleStateAction.java	2008-07-14 09:17:43 UTC (rev 151)
@@ -73,6 +73,28 @@
 	}	
 
 	/**
+	 * This method validates the ESB action and reports warnings or
+	 * errors to the supplied model listener.
+	 * 
+	 * @param l The model listener
+	 */
+	@Override
+	public void validate(ModelListener l) {
+		super.validate(l);
+	
+		String immediate=getPropertyValue(IMMEDIATE);
+		
+		if (immediate != null && immediate.equalsIgnoreCase("true") == false &&
+				immediate.equalsIgnoreCase("false") == false) {
+			l.error(this, org.scribble.util.MessageUtil.format(
+					java.util.PropertyResourceBundle.getBundle(
+					"org.jboss.tools.overlord.jbossesb.model.actions.Messages"),
+						"_BOOLEAN",
+						new String[]{IMMEDIATE}), null);
+		}
+	}
+	
+	/**
 	 * This method converts the ESB action into an equivalent
 	 * behavioural description for conformance checking.
 	 * 

Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/WhileAction.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/WhileAction.java	2008-07-13 15:11:13 UTC (rev 150)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/WhileAction.java	2008-07-14 09:17:43 UTC (rev 151)
@@ -28,9 +28,9 @@
  */
 public class WhileAction extends AbstractESBAction {
 
-	private static final String SERVICE_NAME = "service-name";
-	private static final String SERVICE_CATEGORY = "service-category";
-	private static final String IMMEDIATE = "immediate";
+	public static final String SERVICE_NAME = "service-name";
+	public static final String SERVICE_CATEGORY = "service-category";
+	public static final String IMMEDIATE = "immediate";
 	private static final String WHILE = "while";
 	private static final String EXIT = "exit";
 	private static final String PATHS = "paths";
@@ -157,6 +157,7 @@
 		boolean f_multipleExits=false;
 		boolean f_serviceDetailsMissing=false;
 		boolean f_pathAfterExit=false;
+		boolean f_immediateInvalid=false;
 		
 		for (int i=0; nl != null && i < nl.getLength(); i++) {
 			
@@ -179,6 +180,14 @@
 							((org.w3c.dom.Element)n).hasAttribute(SERVICE_NAME) == false) {
 						f_serviceDetailsMissing = true;
 					}
+					
+					String immediate=((org.w3c.dom.Element)n).getAttribute(IMMEDIATE);
+					
+					if (((org.w3c.dom.Element)n).hasAttribute(IMMEDIATE) && 
+							immediate.equalsIgnoreCase("true") == false &&
+							immediate.equalsIgnoreCase("false") == false) {
+						f_immediateInvalid = true;
+					}
 				} else if (n.getNodeName().equals(EXIT)) {
 					
 					if (f_exit) {
@@ -191,6 +200,14 @@
 							((org.w3c.dom.Element)n).hasAttribute(SERVICE_NAME) == false) {
 						f_serviceDetailsMissing = true;
 					}
+
+					String immediate=((org.w3c.dom.Element)n).getAttribute(IMMEDIATE);
+					
+					if (((org.w3c.dom.Element)n).hasAttribute(IMMEDIATE) && 
+							immediate.equalsIgnoreCase("true") == false &&
+							immediate.equalsIgnoreCase("false") == false) {
+						f_immediateInvalid = true;
+					}
 				}
 			}
 		}
@@ -227,6 +244,14 @@
 						"_PATH_SERVICE_DETAILS_MISSING",
 						new String[]{}), null);								
 		}
+		
+		if (f_immediateInvalid) {
+			l.error(this, org.scribble.util.MessageUtil.format(
+					java.util.PropertyResourceBundle.getBundle(
+					"org.jboss.tools.overlord.jbossesb.model.actions.Messages"),
+						"_BOOLEAN",
+						new String[]{IMMEDIATE}), null);
+		}
 	}
 
 	/**

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-13 15:11:13 UTC (rev 150)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/IfActionTest.java	2008-07-14 09:17:43 UTC (rev 151)
@@ -294,6 +294,159 @@
 		}
 	}
 	
+	public void testValidateImmediateIf() {
+		TestESBService service=new TestESBService();
+
+		java.util.Map<String,String> props=new java.util.Hashtable<String,String>();
+		props.put("paths", "<property><if service-category=\"cat1\" " +
+				"service-name=\"name1\" immediate=\"fred\" /><elseif service-category=\"cat2\" " +
+				"service-name=\"name2\" /><else service-category=\"cat3\" " +
+				"service-name=\"name3\" /></property>");
+		
+		org.w3c.dom.Element elem=ESBActionTestUtil.getAction(null, null, props);
+		
+		TestESBService other1=new TestESBService();
+		other1.setCategory("cat1");
+		other1.setName("name1");
+		
+		TestESBService other2=new TestESBService();
+		other2.setCategory("cat2");
+		other2.setName("name2");
+		
+		TestESBService other3=new TestESBService();
+		other3.setCategory("cat3");
+		other3.setName("name3");
+		
+		TestESBLanguageModel model=new TestESBLanguageModel();
+		model.addService(other1);
+		model.addService(other2);
+		model.addService(other3);
+		model.addService(service);
+		
+		service.setModel(model);
+		
+		IfAction action=new IfAction(service, elem);
+		action.initializeLinks();
+		
+		service.getActions().add(action);
+		
+		TestModelListener l=new TestModelListener();
+		
+		l.addExpectedError(org.scribble.util.MessageUtil.format(
+				java.util.PropertyResourceBundle.getBundle(
+						"org.jboss.tools.overlord.jbossesb.model.actions.Messages"),
+							"_BOOLEAN",
+							new String[]{IfAction.IMMEDIATE}));
+				
+		action.validate(l);
+		
+		if (l.isValid() == false) {
+			fail(l.invalidMessage());
+		}
+	}
+
+	public void testValidateImmediateElseIf() {
+		TestESBService service=new TestESBService();
+
+		java.util.Map<String,String> props=new java.util.Hashtable<String,String>();
+		props.put("paths", "<property><if service-category=\"cat1\" " +
+				"service-name=\"name1\" /><elseif service-category=\"cat2\" " +
+				"service-name=\"name2\" immediate=\"fred\" /><else service-category=\"cat3\" " +
+				"service-name=\"name3\" /></property>");
+		
+		org.w3c.dom.Element elem=ESBActionTestUtil.getAction(null, null, props);
+		
+		TestESBService other1=new TestESBService();
+		other1.setCategory("cat1");
+		other1.setName("name1");
+		
+		TestESBService other2=new TestESBService();
+		other2.setCategory("cat2");
+		other2.setName("name2");
+		
+		TestESBService other3=new TestESBService();
+		other3.setCategory("cat3");
+		other3.setName("name3");
+		
+		TestESBLanguageModel model=new TestESBLanguageModel();
+		model.addService(other1);
+		model.addService(other2);
+		model.addService(other3);
+		model.addService(service);
+		
+		service.setModel(model);
+		
+		IfAction action=new IfAction(service, elem);
+		action.initializeLinks();
+		
+		service.getActions().add(action);
+		
+		TestModelListener l=new TestModelListener();
+		
+		l.addExpectedError(org.scribble.util.MessageUtil.format(
+				java.util.PropertyResourceBundle.getBundle(
+						"org.jboss.tools.overlord.jbossesb.model.actions.Messages"),
+							"_BOOLEAN",
+							new String[]{IfAction.IMMEDIATE}));
+				
+		action.validate(l);
+		
+		if (l.isValid() == false) {
+			fail(l.invalidMessage());
+		}
+	}
+
+	public void testValidateImmediateElse() {
+		TestESBService service=new TestESBService();
+
+		java.util.Map<String,String> props=new java.util.Hashtable<String,String>();
+		props.put("paths", "<property><if service-category=\"cat1\" " +
+				"service-name=\"name1\" /><elseif service-category=\"cat2\" " +
+				"service-name=\"name2\" /><else service-category=\"cat3\" " +
+				"service-name=\"name3\" immediate=\"fred\" /></property>");
+		
+		org.w3c.dom.Element elem=ESBActionTestUtil.getAction(null, null, props);
+		
+		TestESBService other1=new TestESBService();
+		other1.setCategory("cat1");
+		other1.setName("name1");
+		
+		TestESBService other2=new TestESBService();
+		other2.setCategory("cat2");
+		other2.setName("name2");
+		
+		TestESBService other3=new TestESBService();
+		other3.setCategory("cat3");
+		other3.setName("name3");
+		
+		TestESBLanguageModel model=new TestESBLanguageModel();
+		model.addService(other1);
+		model.addService(other2);
+		model.addService(other3);
+		model.addService(service);
+		
+		service.setModel(model);
+		
+		IfAction action=new IfAction(service, elem);
+		action.initializeLinks();
+		
+		service.getActions().add(action);
+		
+		TestModelListener l=new TestModelListener();
+		
+		l.addExpectedError(org.scribble.util.MessageUtil.format(
+				java.util.PropertyResourceBundle.getBundle(
+						"org.jboss.tools.overlord.jbossesb.model.actions.Messages"),
+							"_BOOLEAN",
+							new String[]{IfAction.IMMEDIATE}));
+				
+		action.validate(l);
+		
+		if (l.isValid() == false) {
+			fail(l.invalidMessage());
+		}
+	}
+	
 	public void testConvert() {
 		TestESBService service=new TestESBService();
 

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-13 15:11:13 UTC (rev 150)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/ParallelActionTest.java	2008-07-14 09:17:43 UTC (rev 151)
@@ -296,6 +296,57 @@
 		}
 	}
 	
+	public void testValidateImmediate() {
+		TestESBService service=new TestESBService();
+
+		java.util.Map<String,String> props=new java.util.Hashtable<String,String>();
+		props.put("paths", "<property><path service-category=\"cat1\" " +
+				"service-name=\"name1\" /><path service-category=\"cat2\" " +
+				"service-name=\"name2\" immediate=\"fred\" /><join service-category=\"cat3\" " +
+				"service-name=\"name3\" /></property>");
+		
+		org.w3c.dom.Element elem=ESBActionTestUtil.getAction(null, null, props);
+		
+		TestESBService other1=new TestESBService();
+		other1.setCategory("cat1");
+		other1.setName("name1");
+		
+		TestESBService other2=new TestESBService();
+		other2.setCategory("cat2");
+		other2.setName("name2");
+		
+		TestESBService other3=new TestESBService();
+		other3.setCategory("cat3");
+		other3.setName("name3");
+		
+		TestESBLanguageModel model=new TestESBLanguageModel();
+		model.addService(other1);
+		model.addService(other2);
+		model.addService(other3);
+		model.addService(service);
+		
+		service.setModel(model);
+		
+		ParallelAction action=new ParallelAction(service, elem);
+		action.initializeLinks();
+		
+		service.getActions().add(action);
+		
+		TestModelListener l=new TestModelListener();
+		
+		l.addExpectedError(org.scribble.util.MessageUtil.format(
+				java.util.PropertyResourceBundle.getBundle(
+						"org.jboss.tools.overlord.jbossesb.model.actions.Messages"),
+							"_BOOLEAN",
+							new String[]{ParallelAction.IMMEDIATE}));
+				
+		action.validate(l);
+		
+		if (l.isValid() == false) {
+			fail(l.invalidMessage());
+		}
+	}
+	
 	public void testConvert() {
 		TestESBService service=new TestESBService();
 

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-13 15:11:13 UTC (rev 150)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/WhileActionTest.java	2008-07-14 09:17:43 UTC (rev 151)
@@ -329,6 +329,96 @@
 		}
 	}
 	
+	public void testValidateImmediateWhile() {
+		TestESBService service=new TestESBService();
+
+		java.util.Map<String,String> props=new java.util.Hashtable<String,String>();
+		props.put("paths", "<property><while service-category=\"cat1\" " +
+				"service-name=\"name1\" immediate=\"fred\" /><exit service-category=\"cat2\" " +
+				"service-name=\"name2\" /></property>");
+		
+		org.w3c.dom.Element elem=ESBActionTestUtil.getAction(null, null, props);
+		
+		TestESBService other1=new TestESBService();
+		other1.setCategory("cat1");
+		other1.setName("name1");
+		
+		TestESBService other2=new TestESBService();
+		other2.setCategory("cat2");
+		other2.setName("name2");
+		
+		TestESBLanguageModel model=new TestESBLanguageModel();
+		model.addService(other1);
+		model.addService(other2);
+		model.addService(service);
+		
+		service.setModel(model);
+		
+		WhileAction action=new WhileAction(service, elem);
+		action.initializeLinks();
+		
+		service.getActions().add(action);
+		
+		TestModelListener l=new TestModelListener();
+		
+		l.addExpectedError(org.scribble.util.MessageUtil.format(
+				java.util.PropertyResourceBundle.getBundle(
+				"org.jboss.tools.overlord.jbossesb.model.actions.Messages"),
+					"_BOOLEAN",
+					new String[]{WhileAction.IMMEDIATE}));
+				
+		action.validate(l);
+		
+		if (l.isValid() == false) {
+			fail(l.invalidMessage());
+		}
+	}
+
+	public void testValidateImmediateExit() {
+		TestESBService service=new TestESBService();
+
+		java.util.Map<String,String> props=new java.util.Hashtable<String,String>();
+		props.put("paths", "<property><while service-category=\"cat1\" " +
+				"service-name=\"name1\" /><exit service-category=\"cat2\" " +
+				"service-name=\"name2\" immediate=\"fred\" /></property>");
+		
+		org.w3c.dom.Element elem=ESBActionTestUtil.getAction(null, null, props);
+		
+		TestESBService other1=new TestESBService();
+		other1.setCategory("cat1");
+		other1.setName("name1");
+		
+		TestESBService other2=new TestESBService();
+		other2.setCategory("cat2");
+		other2.setName("name2");
+		
+		TestESBLanguageModel model=new TestESBLanguageModel();
+		model.addService(other1);
+		model.addService(other2);
+		model.addService(service);
+		
+		service.setModel(model);
+		
+		WhileAction action=new WhileAction(service, elem);
+		action.initializeLinks();
+		
+		service.getActions().add(action);
+		
+		TestModelListener l=new TestModelListener();
+		
+		l.addExpectedError(org.scribble.util.MessageUtil.format(
+				java.util.PropertyResourceBundle.getBundle(
+				"org.jboss.tools.overlord.jbossesb.model.actions.Messages"),
+					"_BOOLEAN",
+					new String[]{WhileAction.IMMEDIATE}));
+				
+		action.validate(l);
+		
+		if (l.isValid() == false) {
+			fail(l.invalidMessage());
+		}
+	}
+
 	public void testConvert() {
 		TestESBService service=new TestESBService();
 




More information about the overlord-commits mailing list