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>