Author: rahul Date: Sat Jan 15 04:10:12 2011 New Revision: 1059253 URL: http://svn.apache.org/viewvc?rev=1059253&view=rev Log: Test case illustrating use of namespaces in XPath expressions.
Added: commons/proper/scxml/branches/J6/src/test/java/org/apache/commons/scxml/env/xpath/example-02.xml Modified: commons/proper/scxml/branches/J6/src/test/java/org/apache/commons/scxml/env/xpath/XPathExampleTest.java Modified: commons/proper/scxml/branches/J6/src/test/java/org/apache/commons/scxml/env/xpath/XPathExampleTest.java URL: http://svn.apache.org/viewvc/commons/proper/scxml/branches/J6/src/test/java/org/apache/commons/scxml/env/xpath/XPathExampleTest.java?rev=1059253&r1=1059252&r2=1059253&view=diff ============================================================================== --- commons/proper/scxml/branches/J6/src/test/java/org/apache/commons/scxml/env/xpath/XPathExampleTest.java (original) +++ commons/proper/scxml/branches/J6/src/test/java/org/apache/commons/scxml/env/xpath/XPathExampleTest.java Sat Jan 15 04:10:12 2011 @@ -50,7 +50,7 @@ public class XPathExampleTest extends Te } // Test data - private URL example01; + private URL example01, example02; private SCXMLExecutor exec; /** @@ -60,6 +60,8 @@ public class XPathExampleTest extends Te public void setUp() { example01 = this.getClass().getClassLoader(). getResource("org/apache/commons/scxml/env/xpath/example-01.xml"); + example02 = this.getClass().getClassLoader(). + getResource("org/apache/commons/scxml/env/xpath/example-02.xml"); } /** @@ -67,7 +69,7 @@ public class XPathExampleTest extends Te */ @Override public void tearDown() { - example01 = null; + example01 = example02 = null; } // TEST METHODS @@ -94,5 +96,21 @@ public class XPathExampleTest extends Te } + public void testExample02Sample() throws Exception { + + SCXML scxml = SCXMLTestHelper.parse(example02); + Evaluator evaluator = null; + evaluator = new XPathEvaluator(); + Context context = new XPathContext(null); + exec = SCXMLTestHelper.getExecutor(scxml, context, evaluator); + + assertNotNull(exec); + Set<TransitionTarget> currentStates = exec.getCurrentStatus().getStates(); + assertEquals(1, currentStates.size()); + assertEquals("end", ((State)currentStates.iterator(). + next()).getId()); + + } + } Added: commons/proper/scxml/branches/J6/src/test/java/org/apache/commons/scxml/env/xpath/example-02.xml URL: http://svn.apache.org/viewvc/commons/proper/scxml/branches/J6/src/test/java/org/apache/commons/scxml/env/xpath/example-02.xml?rev=1059253&view=auto ============================================================================== --- commons/proper/scxml/branches/J6/src/test/java/org/apache/commons/scxml/env/xpath/example-02.xml (added) +++ commons/proper/scxml/branches/J6/src/test/java/org/apache/commons/scxml/env/xpath/example-02.xml Sat Jan 15 04:10:12 2011 @@ -0,0 +1,41 @@ +<?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. +--> +<!-- SCXML XPath environment: example script using XPath with namespaces --> +<scxml xmlns="http://www.w3.org/2005/07/scxml" initial="start" version="1.0" + xmlns:a="http://example.com/a" + xmlns:b="http://example.com/b" + xmlns:c="http://example.com/c"> + + <datamodel> + <data id="foo"> + <bar xmlns=""> + <a:alpha>1</a:alpha> + <b:beta>2</b:beta> + <c:gamma>3</c:gamma> + </bar> + </data> + </datamodel> + + <state id="start"> + <transition cond="$foo/bar/a:alpha + $foo/bar/b:beta = $foo/bar/c:gamma" + target="end" /> + </state> + + <final id="end"/> + +</scxml>