[overlord-commits] Overlord SVN: r124 - in cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src: java/org/jboss/tools/overlord/jbossesb/model/actions and 2 other directories.

overlord-commits at lists.jboss.org overlord-commits at lists.jboss.org
Mon Jul 7 06:53:58 EDT 2008


Author: objectiser
Date: 2008-07-07 06:53:57 -0400 (Mon, 07 Jul 2008)
New Revision: 124

Added:
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/DefaultConversionContextTest.java
Modified:
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/DefaultConversionContext.java
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/CreateSessionAction.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/test/org/jboss/tools/overlord/jbossesb/model/actions/CreateSessionActionTest.java
Log:
Conversion context unit tests.

Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/DefaultConversionContext.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/DefaultConversionContext.java	2008-07-07 10:13:28 UTC (rev 123)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/DefaultConversionContext.java	2008-07-07 10:53:57 UTC (rev 124)
@@ -114,7 +114,7 @@
 	 * This method determines whether the ESB service is a join
 	 * state.
 	 * 
-	 * @param service The serviice
+	 * @param service The service
 	 * @return Whether the service is a join state
 	 */
 	public boolean isJoin(ESBService service) {

Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/CreateSessionAction.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/CreateSessionAction.java	2008-07-07 10:13:28 UTC (rev 123)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/CreateSessionAction.java	2008-07-07 10:53:57 UTC (rev 124)
@@ -76,13 +76,25 @@
 		}
 		
 		// If service is root, then need to defined conversation type
-		if (getService().isRoot() &&
-				getService().getConversationType() == null) {
-			l.error(this, org.scribble.util.MessageUtil.format(
+		if (getService().isRoot()) {
+			if (getService().getConversationType() == null) {
+				l.error(this, org.scribble.util.MessageUtil.format(
 					java.util.PropertyResourceBundle.getBundle(
 					"org.jboss.tools.overlord.jbossesb.model.actions.Messages"),
 						"_NOT_SPECIFIED_CONVERSATION_TYPE",
 						new String[]{}), null);
+			} else {
+				int index=getService().getConversationType().indexOf('@');
+				String convType=getService().getConversationType().trim();
+				
+				if (index == -1 || index == convType.length()-1) {
+					l.error(this, org.scribble.util.MessageUtil.format(
+							java.util.PropertyResourceBundle.getBundle(
+							"org.jboss.tools.overlord.jbossesb.model.actions.Messages"),
+								"_NOT_SPECIFIED_CONVERSATION_TYPE_ROLE",
+								new String[]{convType}), 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-07 10:13:28 UTC (rev 123)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/model/actions/Messages.properties	2008-07-07 10:53:57 UTC (rev 124)
@@ -27,6 +27,7 @@
 _NOT_FOUND_VARIABLE=Variable '{0}' could not be found on session type '{1}'
 _NOT_FOUND_PERFORM_CREATE_SESSION=Perform action can only invoke a service descriptor that starts with a CreateSessionAction
 _NOT_SPECIFIED_CONVERSATION_TYPE=Conversation type must be specified on root service descriptor
+_NOT_SPECIFIED_CONVERSATION_TYPE_ROLE=Conversation type '{0}' must specify a role name following the '@' symbol
 _NOT_SPECIFIED_REQ_RESP_EPR=Send does not contain request service category/name or response client EPR
 _MUST_BE_FIRST_ACTION='{0}' action must be first in the service descriptor
 _MUST_SPECIFY_STATE_OR_MESSAGE_EXPRESSION=Must specify either a State OR Message based expression

Added: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/DefaultConversionContextTest.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/DefaultConversionContextTest.java	                        (rev 0)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/DefaultConversionContextTest.java	2008-07-07 10:53:57 UTC (rev 124)
@@ -0,0 +1,113 @@
+/*
+ * 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;
+
+import junit.framework.TestCase;
+
+public class DefaultConversionContextTest extends TestCase {
+
+	public void testIsJoin() {
+		DefaultESBService service=new DefaultESBService(null, null);
+		
+		DefaultConversionContext context=new DefaultConversionContext(null);
+		context.markJoin(service);
+		
+		if (context.isJoin(service) == false) {
+			fail("Service should be join");
+		}
+	}
+
+	public void testIsJoinFalse() {
+		DefaultESBService service=new DefaultESBService(null, null);
+		
+		DefaultConversionContext context=new DefaultConversionContext(null);
+		
+		if (context.isJoin(service)) {
+			fail("Service should not be join");
+		}
+	}
+	
+	public void testJoinProcessing() {
+		DefaultESBService service=new DefaultESBService(null, null);
+		
+		DefaultConversionContext context=new DefaultConversionContext(null);
+		context.markJoin(service);
+		
+		if (context.isJoin(service) == false) {
+			fail("Service should be join");
+		}
+		
+		context.processing(service);
+		
+		if (context.isJoin(service)) {
+			fail("Service should no longer be marked as join");
+		}		
+	}
+
+	public void testIsOnStack() {
+		DefaultESBService service=new DefaultESBService(null, null);
+		
+		DefaultConversionContext context=new DefaultConversionContext(null);
+		context.push(service);
+		
+		if (context.isOnStack(service) == false) {
+			fail("Service should be on stack");
+		}
+	}
+
+	public void testIsOnStackFalse() {
+		DefaultESBService service=new DefaultESBService(null, null);
+		
+		DefaultConversionContext context=new DefaultConversionContext(null);
+		
+		if (context.isOnStack(service)) {
+			fail("Service should not be on stack");
+		}
+	}
+	
+	public void testStackPushPop() {
+		DefaultESBService service=new DefaultESBService(null, null);
+		
+		DefaultConversionContext context=new DefaultConversionContext(null);
+		context.push(service);
+		
+		if (context.isOnStack(service) == false) {
+			fail("Service should be on stack");
+		}
+		
+		context.pop(service);
+
+		if (context.isOnStack(service)) {
+			fail("Service should no longer be on stack after pop");
+		}
+	}
+
+	public void testGetRole() {
+		String role="myRole";
+		
+		DefaultConversionContext context=new DefaultConversionContext(role);
+		
+		if (context.getRole() == null) {
+			fail("Role is null");
+		}
+		
+		if (context.getRole().equals(role) == false) {
+			fail("Role should be '"+role+"', but got: "+context.getRole());
+		}
+	}
+}

Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/CreateSessionActionTest.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/CreateSessionActionTest.java	2008-07-07 10:13:28 UTC (rev 123)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/test/org/jboss/tools/overlord/jbossesb/model/actions/CreateSessionActionTest.java	2008-07-07 10:53:57 UTC (rev 124)
@@ -95,6 +95,8 @@
 	}
 	
 	public void testValidateRootWithConversationType() {
+		String convType="test.Type at MyRole";
+		
 		TestESBService service=new TestESBService();
 		service.setRoot(true);
 
@@ -102,9 +104,9 @@
 		model.addService(service);
 
 		java.util.Map<String,String> props=new java.util.Hashtable<String,String>();
-		props.put("conversationType", "test.Type");
+		props.put("conversationType", convType);
 		
-		service.setConversationType("test.Type");
+		service.setConversationType(convType);
 		
 		org.w3c.dom.Element elem=ESBActionTestUtil.getAction(null, props, null);
 		
@@ -123,6 +125,44 @@
 		}
 	}
 	
+	
+	public void testValidateRootWithConversationTypeNoRole() {
+		String convType="test.Type";
+		
+		TestESBService service=new TestESBService();
+		service.setRoot(true);
+
+		TestESBLanguageModel model=new TestESBLanguageModel();
+		model.addService(service);
+
+		java.util.Map<String,String> props=new java.util.Hashtable<String,String>();
+		props.put("conversationType", convType);
+		
+		service.setConversationType(convType);
+		
+		org.w3c.dom.Element elem=ESBActionTestUtil.getAction(null, props, null);
+		
+		CreateSessionAction action=new CreateSessionAction(service, elem);
+		
+		service.getActions().add(action);
+		
+		service.setModel(model);
+
+		TestModelListener l=new TestModelListener();
+		
+		l.addExpectedError(org.scribble.util.MessageUtil.format(
+				java.util.PropertyResourceBundle.getBundle(
+						"org.jboss.tools.overlord.jbossesb.model.actions.Messages"),
+							"_NOT_SPECIFIED_CONVERSATION_TYPE_ROLE",
+							new String[]{convType}));
+		
+		action.validate(l);
+		
+		if (l.isValid() == false) {
+			fail(l.invalidMessage());
+		}
+	}
+	
 	public void testIsCreateSession() {
 		TestESBService service=new TestESBService();
 		




More information about the overlord-commits mailing list