Author: objectiser
Date: 2008-08-28 05:45:11 -0400 (Thu, 28 Aug 2008)
New Revision: 287
Modified:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/model/actions/PerformAction.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/test/org/jboss/tools/overlord/cdl/jbossesb/model/actions/PerformActionTest.java
Log:
Updated PerformAction to change parentProperty to parentReference. Also added unit tests
for parentReference and bindDetails.
Modified:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/model/actions/PerformAction.java
===================================================================
---
cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/model/actions/PerformAction.java 2008-08-28
08:50:04 UTC (rev 286)
+++
cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/java/org/jboss/tools/overlord/cdl/jbossesb/model/actions/PerformAction.java 2008-08-28
09:45:11 UTC (rev 287)
@@ -36,7 +36,7 @@
public static final String RETURN_SERVICE_NAME = "returnServiceName";
public static final String RETURN_SERVICE_CATEGORY = "returnServiceCategory";
public static final String BIND_DETAILS = "bindDetails";
- public static final String PARENT_PROPERTY = "parentProperty";
+ public static final String PARENT_REFERENCE = "parentReference";
/**
* The constructor for the action.
@@ -124,7 +124,7 @@
ret.add(RETURN_SERVICE_NAME);
ret.add(RETURN_SERVICE_CATEGORY);
ret.add(BIND_DETAILS);
- ret.add(PARENT_PROPERTY);
+ ret.add(PARENT_REFERENCE);
return(ret);
}
@@ -153,29 +153,29 @@
if (m_service != null &&
m_service.getSessionClass() != null) {
- if (hasProperty(PARENT_PROPERTY)) {
- String parentProperty=getPropertyValue(PARENT_PROPERTY);
+ if (hasProperty(PARENT_REFERENCE)) {
+ String parentRefProperty=getPropertyValue(PARENT_REFERENCE);
if (PropertyUtil.isProperty(m_service.getSessionClass(),
- parentProperty) == false) {
+ parentRefProperty) == false) {
l.error(this, org.scribble.util.MessageUtil.format(
java.util.PropertyResourceBundle.getBundle(
"org.jboss.tools.overlord.cdl.jbossesb.model.actions.Messages"),
"_NOT_FOUND_VARIABLE",
- new String[]{parentProperty,
+ new String[]{parentRefProperty,
m_service.getSessionClass().getName()}), null);
} else if (PropertyUtil.hasWritableProperty(m_service.getSessionClass(),
- parentProperty) == false) {
+ parentRefProperty) == false) {
l.error(this, org.scribble.util.MessageUtil.format(
java.util.PropertyResourceBundle.getBundle(
"org.jboss.tools.overlord.cdl.jbossesb.model.actions.Messages"),
"_NOT_WRITABLE_PROPERTY",
- new String[]{parentProperty,
+ new String[]{parentRefProperty,
m_service.getSessionClass().getName()}), null);
}
Class<?> parentCls=PropertyUtil.getPropertyType(
- m_service.getSessionClass(), parentProperty);
+ m_service.getSessionClass(), parentRefProperty);
if (parentCls != null && getService() != null &&
getService().getSessionClass() != null &&
@@ -184,7 +184,7 @@
java.util.PropertyResourceBundle.getBundle(
"org.jboss.tools.overlord.cdl.jbossesb.model.actions.Messages"),
"_INVALID_PROPERTY_TYPE",
- new String[]{parentProperty,
+ new String[]{parentRefProperty,
m_service.getSessionClass().getName(),
getService().getSessionClass().getName()}), null);
}
Modified:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/test/org/jboss/tools/overlord/cdl/jbossesb/model/actions/PerformActionTest.java
===================================================================
---
cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/test/org/jboss/tools/overlord/cdl/jbossesb/model/actions/PerformActionTest.java 2008-08-28
08:50:04 UTC (rev 286)
+++
cdl/trunk/tools/plugins/org.jboss.tools.overlord.cdl.jbossesb/src/test/org/jboss/tools/overlord/cdl/jbossesb/model/actions/PerformActionTest.java 2008-08-28
09:45:11 UTC (rev 287)
@@ -210,6 +210,307 @@
}
}
+ public void testValidateParentReferenceNotFound() {
+ TestESBService service=new TestESBService();
+
+ java.util.Map<String,String> props=new
java.util.Hashtable<String,String>();
+ props.put(PerformAction.SERVICE_CATEGORY, "cat1");
+ props.put(PerformAction.SERVICE_NAME, "name1");
+ props.put(PerformAction.PARENT_REFERENCE, "fred");
+
+ org.w3c.dom.Element elem=ESBActionTestUtil.getAction(null, props, null);
+
+ TestESBService other1=new TestESBService();
+ other1.setCategory("cat1");
+ other1.setName("name1");
+ other1.setCreateSession(true);
+ other1.setSessionClass(Object.class);
+
+ TestESBLanguageModel model=new TestESBLanguageModel();
+ model.addService(other1);
+ model.addService(service);
+
+ service.setModel(model);
+
+ PerformAction action=new PerformAction(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.cdl.jbossesb.model.actions.Messages"),
+ "_NOT_FOUND_VARIABLE",
+ new String[]{"fred", Object.class.getName()}));
+
+ action.validate(l);
+
+ if (l.isValid() == false) {
+ fail(l.invalidMessage());
+ }
+ }
+
+ public void testValidateParentReferenceNotWritable() {
+ TestESBService service=new TestESBService();
+
+ java.util.Map<String,String> props=new
java.util.Hashtable<String,String>();
+ props.put(PerformAction.SERVICE_CATEGORY, "cat1");
+ props.put(PerformAction.SERVICE_NAME, "name1");
+ props.put(PerformAction.PARENT_REFERENCE, "class");
+
+ org.w3c.dom.Element elem=ESBActionTestUtil.getAction(null, props, null);
+
+ TestESBService other1=new TestESBService();
+ other1.setCategory("cat1");
+ other1.setName("name1");
+ other1.setCreateSession(true);
+ other1.setSessionClass(Object.class);
+
+ TestESBLanguageModel model=new TestESBLanguageModel();
+ model.addService(other1);
+ model.addService(service);
+
+ service.setModel(model);
+
+ PerformAction action=new PerformAction(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.cdl.jbossesb.model.actions.Messages"),
+ "_NOT_WRITABLE_PROPERTY",
+ new String[]{"class", Object.class.getName()}));
+
+ action.validate(l);
+
+ if (l.isValid() == false) {
+ fail(l.invalidMessage());
+ }
+ }
+
+ public void testValidateParentReferenceIncorrectType() {
+ TestESBService service=new TestESBService();
+ service.setSessionClass(ParentPojo.class);
+
+ java.util.Map<String,String> props=new
java.util.Hashtable<String,String>();
+ props.put(PerformAction.SERVICE_CATEGORY, "cat1");
+ props.put(PerformAction.SERVICE_NAME, "name1");
+ props.put(PerformAction.PARENT_REFERENCE, "invalidParent");
+
+ org.w3c.dom.Element elem=ESBActionTestUtil.getAction(null, props, null);
+
+ TestESBService other1=new TestESBService();
+ other1.setCategory("cat1");
+ other1.setName("name1");
+ other1.setCreateSession(true);
+ other1.setSessionClass(ChildPojo.class);
+
+ TestESBLanguageModel model=new TestESBLanguageModel();
+ model.addService(other1);
+ model.addService(service);
+
+ service.setModel(model);
+
+ PerformAction action=new PerformAction(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.cdl.jbossesb.model.actions.Messages"),
+ "_INVALID_PROPERTY_TYPE",
+ new String[]{"invalidParent",
+ ChildPojo.class.getName(),
+ ParentPojo.class.getName()}));
+
+ action.validate(l);
+
+ if (l.isValid() == false) {
+ fail(l.invalidMessage());
+ }
+ }
+
+ public void testValidateParentReferenceCorrectType() {
+ TestESBService service=new TestESBService();
+ service.setSessionClass(ParentPojo.class);
+
+ java.util.Map<String,String> props=new
java.util.Hashtable<String,String>();
+ props.put(PerformAction.SERVICE_CATEGORY, "cat1");
+ props.put(PerformAction.SERVICE_NAME, "name1");
+ props.put(PerformAction.PARENT_REFERENCE, "validParent");
+
+ org.w3c.dom.Element elem=ESBActionTestUtil.getAction(null, props, null);
+
+ TestESBService other1=new TestESBService();
+ other1.setCategory("cat1");
+ other1.setName("name1");
+ other1.setCreateSession(true);
+ other1.setSessionClass(ChildPojo.class);
+
+ TestESBLanguageModel model=new TestESBLanguageModel();
+ model.addService(other1);
+ model.addService(service);
+
+ service.setModel(model);
+
+ PerformAction action=new PerformAction(service, elem);
+ action.initializeLinks();
+
+ service.getActions().add(action);
+
+ TestModelListener l=new TestModelListener();
+
+ action.validate(l);
+
+ if (l.isValid() == false) {
+ fail(l.invalidMessage());
+ }
+ }
+
+ public void testValidateBindDetailsNotFound() {
+ TestESBService service=new TestESBService();
+
+ String varName="fred";
+
+ java.util.Map<String,String> props=new
java.util.Hashtable<String,String>();
+ props.put(PerformAction.SERVICE_CATEGORY, "cat1");
+ props.put(PerformAction.SERVICE_NAME, "name1");
+
+ java.util.Map<String,String> customProps=new
java.util.Hashtable<String,String>();
+ customProps.put(PerformAction.BIND_DETAILS,
+ "<root><bind to-variable=\""+varName+"\"
/></root>");
+
+ org.w3c.dom.Element elem=ESBActionTestUtil.getAction(null, props, customProps);
+
+ TestESBService other1=new TestESBService();
+ other1.setCategory("cat1");
+ other1.setName("name1");
+ other1.setCreateSession(true);
+ other1.setSessionClass(Object.class);
+
+ TestESBLanguageModel model=new TestESBLanguageModel();
+ model.addService(other1);
+ model.addService(service);
+
+ service.setModel(model);
+
+ PerformAction action=new PerformAction(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.cdl.jbossesb.model.actions.Messages"),
+ "_NOT_FOUND_VARIABLE",
+ new String[]{varName, Object.class.getName()}));
+
+ action.validate(l);
+
+ if (l.isValid() == false) {
+ fail(l.invalidMessage());
+ }
+ }
+
+ public void testValidateBindDetailsNotWritable() {
+ TestESBService service=new TestESBService();
+
+ String varName="class";
+
+ java.util.Map<String,String> props=new
java.util.Hashtable<String,String>();
+ props.put(PerformAction.SERVICE_CATEGORY, "cat1");
+ props.put(PerformAction.SERVICE_NAME, "name1");
+
+ java.util.Map<String,String> customProps=new
java.util.Hashtable<String,String>();
+ customProps.put(PerformAction.BIND_DETAILS,
+ "<root><bind to-variable=\""+varName+"\"
/></root>");
+
+ org.w3c.dom.Element elem=ESBActionTestUtil.getAction(null, props, customProps);
+
+ TestESBService other1=new TestESBService();
+ other1.setCategory("cat1");
+ other1.setName("name1");
+ other1.setCreateSession(true);
+ other1.setSessionClass(Object.class);
+
+ TestESBLanguageModel model=new TestESBLanguageModel();
+ model.addService(other1);
+ model.addService(service);
+
+ service.setModel(model);
+
+ PerformAction action=new PerformAction(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.cdl.jbossesb.model.actions.Messages"),
+ "_NOT_WRITABLE_PROPERTY",
+ new String[]{varName, Object.class.getName()}));
+
+ action.validate(l);
+
+ if (l.isValid() == false) {
+ fail(l.invalidMessage());
+ }
+ }
+
+ public void testValidateBindDetailsCorrect() {
+ TestESBService service=new TestESBService();
+
+ String varName="validParent";
+
+ java.util.Map<String,String> props=new
java.util.Hashtable<String,String>();
+ props.put(PerformAction.SERVICE_CATEGORY, "cat1");
+ props.put(PerformAction.SERVICE_NAME, "name1");
+
+ java.util.Map<String,String> customProps=new
java.util.Hashtable<String,String>();
+ customProps.put(PerformAction.BIND_DETAILS,
+ "<root><bind to-variable=\""+varName+"\"
/></root>");
+
+ org.w3c.dom.Element elem=ESBActionTestUtil.getAction(null, props, customProps);
+
+ TestESBService other1=new TestESBService();
+ other1.setCategory("cat1");
+ other1.setName("name1");
+ other1.setCreateSession(true);
+ other1.setSessionClass(ChildPojo.class);
+
+ TestESBLanguageModel model=new TestESBLanguageModel();
+ model.addService(other1);
+ model.addService(service);
+
+ service.setModel(model);
+
+ PerformAction action=new PerformAction(service, elem);
+ action.initializeLinks();
+
+ service.getActions().add(action);
+
+ TestModelListener l=new TestModelListener();
+
+ action.validate(l);
+
+ if (l.isValid() == false) {
+ fail(l.invalidMessage());
+ }
+ }
+
public void testConvertRun() {
TestESBService service=new TestESBService();
@@ -418,4 +719,17 @@
fail("Action is not flagged as a 'SessionBased'");
}
}
+
+ public class ParentPojo {
+
+ }
+
+ public class ChildPojo {
+
+ public void setValidParent(ParentPojo p) {
+ }
+
+ public void setInvalidParent(Object p) {
+ }
+ }
}