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();