[overlord-commits] Overlord SVN: r107 - 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
Thu Jul 3 06:06:32 EDT 2008
Author: objectiser
Date: 2008-07-03 06:06:31 -0400 (Thu, 03 Jul 2008)
New Revision: 107
Added:
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/ScheduleStateActionTest.java
Modified:
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/DefaultESBService.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/ESBService.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/PerformAction.java
cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/TestESBService.java
Log:
Unit tests for PerformAction and ScheduleStateAction validation.
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/DefaultESBService.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/DefaultESBService.java 2008-07-03 07:30:56 UTC (rev 106)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/DefaultESBService.java 2008-07-03 10:06:31 UTC (rev 107)
@@ -232,17 +232,8 @@
*/
public boolean isLoop() {
boolean ret=false;
+ ESBAction action=getFirstSessionBasedAction();
- ESBAction action=null;
-
- for (int i=0; action == null && i < m_actions.size(); i++) {
- action=m_actions.get(i);
-
- if (action.isSessionBased() == false) {
- action = null;
- }
- }
-
if (action != null) {
ret = action.isLoop();
}
@@ -258,16 +249,8 @@
*/
public boolean isRoot() {
boolean ret=false;
- ESBAction action=null;
+ ESBAction action=getFirstSessionBasedAction();
- for (int i=0; action == null && i < m_actions.size(); i++) {
- action=m_actions.get(i);
-
- if (action.isSessionBased() == false) {
- action = null;
- }
- }
-
if (action != null && action.getActionClass() != null) {
if (action.getActionClass().equals(CREATE_SESSION_ACTION_CLASS)) {
String bool=action.getPropertyValue(ROOT_PROPERTY);
@@ -302,6 +285,45 @@
}
/**
+ * This method determines whether the ESB service descriptor
+ * starts with a CreateSessionAction.
+ *
+ * @return Whether the service has a CreateSessionAction
+ */
+ public boolean isCreateSession() {
+ boolean ret=false;
+ ESBAction action=getFirstSessionBasedAction();
+
+ if (action != null && action.getActionClass() != null) {
+ if (action.getActionClass().equals(CREATE_SESSION_ACTION_CLASS)) {
+ ret = true;
+ }
+ }
+
+ return(ret);
+ }
+
+ /**
+ * This method returns the first session based action in the
+ * service descriptor.
+ *
+ * @return The first session based action, or null if none exist
+ */
+ protected ESBAction getFirstSessionBasedAction() {
+ ESBAction ret=null;
+
+ for (int i=0; ret == null && i < m_actions.size(); i++) {
+ ret=m_actions.get(i);
+
+ if (ret.isSessionBased() == false) {
+ ret = null;
+ }
+ }
+
+ return(ret);
+ }
+
+ /**
* This method returns the service description name associated with the
* ESB service.
*
@@ -309,16 +331,8 @@
*/
public String getServiceName() {
String ret=null;
- ESBAction action=null;
+ ESBAction action=getFirstSessionBasedAction();
- for (int i=0; action == null && i < m_actions.size(); i++) {
- action=m_actions.get(i);
-
- if (action.isSessionBased() == false) {
- action = null;
- }
- }
-
if (action != null) {
if (action.getActionClass().equals(CREATE_SESSION_ACTION_CLASS) ||
action.getActionClass().equals(RETRIEVE_SESSION_ACTION_CLASS)) {
@@ -360,16 +374,8 @@
*/
public String getConversationType() {
String ret=null;
- ESBAction action=null;
+ ESBAction action=getFirstSessionBasedAction();
- for (int i=0; action == null && i < m_actions.size(); i++) {
- action=m_actions.get(i);
-
- if (action.isSessionBased() == false) {
- action = null;
- }
- }
-
if (action != null) {
if (action.getActionClass().equals(CREATE_SESSION_ACTION_CLASS)) {
ret = action.getPropertyValue(CONVERSATION_TYPE_PROPERTY);
@@ -410,16 +416,8 @@
*/
public String getSessionName() {
String ret=null;
- ESBAction action=null;
+ ESBAction action=getFirstSessionBasedAction();
- for (int i=0; action == null && i < m_actions.size(); i++) {
- action=m_actions.get(i);
-
- if (action.isSessionBased() == false) {
- action = null;
- }
- }
-
if (action != null &&
action.getActionClass().startsWith(ACTION_PACKAGE)) {
ret = action.getPropertyValue(BUSINESS_OBJECT_TYPE_PROPERTY);
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/ESBService.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/ESBService.java 2008-07-03 07:30:56 UTC (rev 106)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/ESBService.java 2008-07-03 10:06:31 UTC (rev 107)
@@ -93,6 +93,14 @@
public boolean isRoot();
/**
+ * This method determines whether the ESB service descriptor
+ * starts with a CreateSessionAction.
+ *
+ * @return Whether the service has a CreateSessionAction
+ */
+ public boolean isCreateSession();
+
+ /**
* This method returns the service description name associated with the
* ESB service.
*
Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/PerformAction.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/PerformAction.java 2008-07-03 07:30:56 UTC (rev 106)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/PerformAction.java 2008-07-03 10:06:31 UTC (rev 107)
@@ -106,9 +106,7 @@
// Check if performed state starts with a create session action
if (m_service != null) {
- if (m_service.getActions().size() == 0 ||
- m_service.getActions().get(0).getActionClass().
- endsWith("CreateSessionAction") == false) {
+ if (m_service.isCreateSession() == false) {
l.error(this, org.scribble.util.MessageUtil.format(
java.util.PropertyResourceBundle.getBundle(
"org.jboss.tools.overlord.jbossesb.model.actions.Messages"),
Added: 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 (rev 0)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/PerformActionTest.java 2008-07-03 10:06:31 UTC (rev 107)
@@ -0,0 +1,205 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
+package org.jboss.tools.overlord.jbossesb.model.actions;
+
+import junit.framework.TestCase;
+
+public class PerformActionTest extends TestCase {
+
+ public void testValidateNoServiceCategory() {
+ TestESBService service=new TestESBService();
+ service.setRoot(true);
+
+ java.util.Map<String,String> props=new java.util.Hashtable<String,String>();
+ props.put("serviceName", "");
+
+ org.w3c.dom.Element elem=ESBActionTestUtil.getAction(null, props, null);
+
+ PerformAction action=new PerformAction(service, elem);
+
+ 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.Messages"),
+ "_NOT_SPECIFIED_PROPERTY",
+ new String[]{"serviceCategory"}));
+
+ action.validate(l);
+
+ if (l.isValid() == false) {
+ fail(l.invalidMessage());
+ }
+ }
+
+ public void testValidateNoServiceName() {
+ TestESBService service=new TestESBService();
+ service.setRoot(true);
+
+ java.util.Map<String,String> props=new java.util.Hashtable<String,String>();
+ props.put("serviceCategory", "");
+
+ org.w3c.dom.Element elem=ESBActionTestUtil.getAction(null, props, null);
+
+ PerformAction action=new PerformAction(service, elem);
+
+ 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.Messages"),
+ "_NOT_SPECIFIED_PROPERTY",
+ new String[]{"serviceName"}));
+
+ action.validate(l);
+
+ if (l.isValid() == false) {
+ fail(l.invalidMessage());
+ }
+ }
+
+ public void testValidateService() {
+ TestESBService service=new TestESBService();
+ service.setRoot(true);
+
+ 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);
+
+ TestESBLanguageModel model=new TestESBLanguageModel();
+ 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.jbossesb.model.Messages"),
+ "_NOT_FOUND_SERVICE_DESCRIPTOR",
+ new String[]{"cat1", "name1"}));
+
+ action.validate(l);
+
+ if (l.isValid() == false) {
+ fail(l.invalidMessage());
+ }
+ }
+
+ public void testValidateJoinService() {
+ TestESBService service=new TestESBService();
+ service.setRoot(true);
+
+ 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");
+ other1.setCreateSession(true);
+
+ 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.jbossesb.model.Messages"),
+ "_NOT_FOUND_SERVICE_DESCRIPTOR",
+ new String[]{"cat2", "name2"}));
+
+ action.validate(l);
+
+ if (l.isValid() == false) {
+ fail(l.invalidMessage());
+ }
+ }
+
+ public void testValidateServiceCreatesSession() {
+ TestESBService service=new TestESBService();
+ service.setRoot(true);
+
+ 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");
+ other1.setCreateSession(false);
+
+ 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);
+
+ 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.jbossesb.model.actions.Messages"),
+ "_NOT_FOUND_PERFORM_CREATE_SESSION",
+ new String[]{}));
+
+ action.validate(l);
+
+ if (l.isValid() == false) {
+ fail(l.invalidMessage());
+ }
+ }
+}
Added: 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 (rev 0)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/ScheduleStateActionTest.java 2008-07-03 10:06:31 UTC (rev 107)
@@ -0,0 +1,114 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
+package org.jboss.tools.overlord.jbossesb.model.actions;
+
+import junit.framework.TestCase;
+
+public class ScheduleStateActionTest extends TestCase {
+
+ public void testValidateNoServiceCategory() {
+ TestESBService service=new TestESBService();
+ service.setRoot(true);
+
+ java.util.Map<String,String> props=new java.util.Hashtable<String,String>();
+ props.put("serviceName", "");
+
+ org.w3c.dom.Element elem=ESBActionTestUtil.getAction(null, props, null);
+
+ ScheduleStateAction action=new ScheduleStateAction(service, elem);
+
+ 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.Messages"),
+ "_NOT_SPECIFIED_PROPERTY",
+ new String[]{"serviceCategory"}));
+
+ action.validate(l);
+
+ if (l.isValid() == false) {
+ fail(l.invalidMessage());
+ }
+ }
+
+ public void testValidateNoServiceName() {
+ TestESBService service=new TestESBService();
+ service.setRoot(true);
+
+ java.util.Map<String,String> props=new java.util.Hashtable<String,String>();
+ props.put("serviceCategory", "");
+
+ org.w3c.dom.Element elem=ESBActionTestUtil.getAction(null, props, null);
+
+ ScheduleStateAction action=new ScheduleStateAction(service, elem);
+
+ 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.Messages"),
+ "_NOT_SPECIFIED_PROPERTY",
+ new String[]{"serviceName"}));
+
+ action.validate(l);
+
+ if (l.isValid() == false) {
+ fail(l.invalidMessage());
+ }
+ }
+
+ public void testValidateService() {
+ TestESBService service=new TestESBService();
+ service.setRoot(true);
+
+ 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);
+
+ TestESBLanguageModel model=new TestESBLanguageModel();
+ model.addService(service);
+
+ service.setModel(model);
+
+ ScheduleStateAction action=new ScheduleStateAction(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.Messages"),
+ "_NOT_FOUND_SERVICE_DESCRIPTOR",
+ new String[]{"cat1", "name1"}));
+
+ action.validate(l);
+
+ if (l.isValid() == false) {
+ fail(l.invalidMessage());
+ }
+ }
+}
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-03 07:30:56 UTC (rev 106)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/TestESBService.java 2008-07-03 10:06:31 UTC (rev 107)
@@ -117,6 +117,14 @@
return(m_root);
}
+ public void setCreateSession(boolean bool) {
+ m_createSession = bool;
+ }
+
+ public boolean isCreateSession() {
+ return(m_createSession);
+ }
+
public void setSessionBased(boolean bool) {
m_sessionBased = bool;
}
@@ -136,5 +144,6 @@
private List<ESBAction> m_actions=new java.util.Vector<ESBAction>();
private boolean m_root=false;
private boolean m_sessionBased=false;
+ private boolean m_createSession=false;
private Class<?> m_sessionClass=null;
}
More information about the overlord-commits
mailing list