Author: rahul Date: Wed Feb 21 14:30:08 2007 New Revision: 510273 URL: http://svn.apache.org/viewvc?view=rev&rev=510273 Log: Add a test case illustrating static method invocation, when using JEXL.
Added: jakarta/commons/proper/scxml/trunk/src/test/java/org/apache/commons/scxml/env/jexl/StaticMethodTest.java (with props) jakarta/commons/proper/scxml/trunk/src/test/java/org/apache/commons/scxml/env/jexl/static-method.xml (with props) Modified: jakarta/commons/proper/scxml/trunk/src/test/java/org/apache/commons/scxml/env/jexl/EnvJexlTestSuite.java Modified: jakarta/commons/proper/scxml/trunk/src/test/java/org/apache/commons/scxml/env/jexl/EnvJexlTestSuite.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/scxml/trunk/src/test/java/org/apache/commons/scxml/env/jexl/EnvJexlTestSuite.java?view=diff&rev=510273&r1=510272&r2=510273 ============================================================================== --- jakarta/commons/proper/scxml/trunk/src/test/java/org/apache/commons/scxml/env/jexl/EnvJexlTestSuite.java (original) +++ jakarta/commons/proper/scxml/trunk/src/test/java/org/apache/commons/scxml/env/jexl/EnvJexlTestSuite.java Wed Feb 21 14:30:08 2007 @@ -49,6 +49,7 @@ TestSuite suite = new TestSuite(); suite.setName("Commons-SCXML JEXL Environment Tests"); suite.addTest(JexlContextTest.suite()); + suite.addTest(StaticMethodTest.suite()); return suite; } } Added: jakarta/commons/proper/scxml/trunk/src/test/java/org/apache/commons/scxml/env/jexl/StaticMethodTest.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/scxml/trunk/src/test/java/org/apache/commons/scxml/env/jexl/StaticMethodTest.java?view=auto&rev=510273 ============================================================================== --- jakarta/commons/proper/scxml/trunk/src/test/java/org/apache/commons/scxml/env/jexl/StaticMethodTest.java (added) +++ jakarta/commons/proper/scxml/trunk/src/test/java/org/apache/commons/scxml/env/jexl/StaticMethodTest.java Wed Feb 21 14:30:08 2007 @@ -0,0 +1,74 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.commons.scxml.env.jexl; + +import java.net.URL; +import java.util.Set; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +import org.apache.commons.scxml.Context; +import org.apache.commons.scxml.SCXMLExecutor; +import org.apache.commons.scxml.SCXMLTestHelper; +import org.apache.commons.scxml.model.State; + +public class StaticMethodTest extends TestCase { + + private URL staticmethod; + + public StaticMethodTest(String testName) { + super(testName); + } + + public static Test suite() { + return new TestSuite(StaticMethodTest.class); + } + + public static void main(String args[]) { + String[] testCaseName = {StaticMethodTest.class.getName()}; + junit.textui.TestRunner.main(testCaseName); + } + + /** + * Set up instance variables required by this test case. + */ + public void setUp() { + staticmethod = this.getClass().getClassLoader(). + getResource("org/apache/commons/scxml/env/jexl/static-method.xml"); + } + + /** + * Tear down instance variables required by this test case. + */ + public void tearDown() { + staticmethod = null; + } + + public void testJexlStaticMethodInvocation() { + Context jc = new JexlContext(); + jc.set("System", System.class); + SCXMLExecutor exec = SCXMLTestHelper.getExecutor(staticmethod, + jc, new JexlEvaluator()); + Set currentStates = exec.getCurrentStatus().getStates(); + assertEquals(1, currentStates.size()); + assertEquals("static", ((State)currentStates.iterator(). + next()).getId()); + } + +} Propchange: jakarta/commons/proper/scxml/trunk/src/test/java/org/apache/commons/scxml/env/jexl/StaticMethodTest.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: jakarta/commons/proper/scxml/trunk/src/test/java/org/apache/commons/scxml/env/jexl/StaticMethodTest.java ------------------------------------------------------------------------------ svn:keywords = Date Author Id Revision HeadURL Added: jakarta/commons/proper/scxml/trunk/src/test/java/org/apache/commons/scxml/env/jexl/static-method.xml URL: http://svn.apache.org/viewvc/jakarta/commons/proper/scxml/trunk/src/test/java/org/apache/commons/scxml/env/jexl/static-method.xml?view=auto&rev=510273 ============================================================================== --- jakarta/commons/proper/scxml/trunk/src/test/java/org/apache/commons/scxml/env/jexl/static-method.xml (added) +++ jakarta/commons/proper/scxml/trunk/src/test/java/org/apache/commons/scxml/env/jexl/static-method.xml Wed Feb 21 14:30:08 2007 @@ -0,0 +1,32 @@ +<?xml version="1.0"?> +<!-- + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. +--> +<!-- Example of invoking a static method when using JEXL, for example: + (public static) java.lang.System#currentTimeMillis() +--> +<scxml xmlns="http://www.w3.org/2005/07/scxml" + version="1.0" + initialstate="static"> + + <state id="static" final="true"> + <onentry> + <log expr="'Current time millis: ' + System.currentTimeMillis()" /> + </onentry> + </state> + +</scxml> + Propchange: jakarta/commons/proper/scxml/trunk/src/test/java/org/apache/commons/scxml/env/jexl/static-method.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: jakarta/commons/proper/scxml/trunk/src/test/java/org/apache/commons/scxml/env/jexl/static-method.xml ------------------------------------------------------------------------------ svn:keywords = Date Author Id Revision HeadURL --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]