[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