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