1
2
3
4
5
6
7
8
9
10
11 package org.mule.module.xml.stax;
12
13 import javax.xml.namespace.QName;
14 import javax.xml.stream.XMLInputFactory;
15 import javax.xml.stream.XMLStreamConstants;
16 import javax.xml.stream.XMLStreamReader;
17
18 import junit.framework.TestCase;
19
20 public class ReversibleXMLStreamReaderTest extends TestCase
21 {
22 public void testReverse() throws Exception
23 {
24 XMLInputFactory xif = XMLInputFactory.newInstance();
25
26 XMLStreamReader coreReader = xif.createXMLStreamReader(getClass().getResourceAsStream("/simple.xml"));
27
28 ReversibleXMLStreamReader xsr = new ReversibleXMLStreamReader(coreReader);
29
30 xsr.setTracking(true);
31
32 assertEquals(XMLStreamConstants.SPACE, xsr.next());
33 assertEquals(XMLStreamConstants.START_ELEMENT, xsr.next());
34 QName start = xsr.getName();
35 assertEquals(XMLStreamConstants.CHARACTERS, xsr.next());
36 String text = xsr.getText();
37
38 xsr.reset();
39
40 assertEquals(XMLStreamConstants.START_ELEMENT, xsr.next());
41 assertEquals(start, xsr.getName());
42 assertEquals(start.getPrefix(), xsr.getPrefix());
43 assertEquals(start.getLocalPart(), xsr.getLocalName());
44 assertEquals(start.getNamespaceURI(), xsr.getNamespaceURI());
45 assertEquals(XMLStreamConstants.CHARACTERS, xsr.next());
46 assertEquals(text, xsr.getText());
47 assertEquals(XMLStreamConstants.END_ELEMENT, xsr.next());
48 assertEquals(XMLStreamConstants.SPACE, xsr.next());
49 assertEquals(XMLStreamConstants.END_DOCUMENT, xsr.next());
50
51 xsr.reset();
52
53 assertEquals(XMLStreamConstants.START_ELEMENT, xsr.next());
54 assertEquals(start, xsr.getName());
55 assertEquals(XMLStreamConstants.CHARACTERS, xsr.next());
56 assertEquals(text, xsr.getText());
57 assertEquals(XMLStreamConstants.END_ELEMENT, xsr.next());
58 assertEquals(XMLStreamConstants.END_DOCUMENT, xsr.next());
59 }
60
61 public void testFullReverse() throws Exception
62 {
63 XMLInputFactory xif = XMLInputFactory.newInstance();
64
65 XMLStreamReader coreReader = xif.createXMLStreamReader(getClass().getResourceAsStream("/simple.xml"));
66
67 ReversibleXMLStreamReader xsr = new ReversibleXMLStreamReader(coreReader);
68
69 xsr.setTracking(true);
70
71 assertEquals(XMLStreamConstants.SPACE, xsr.next());
72 assertEquals(XMLStreamConstants.START_ELEMENT, xsr.next());
73 assertEquals(XMLStreamConstants.CHARACTERS, xsr.next());
74 assertEquals(XMLStreamConstants.END_ELEMENT, xsr.next());
75 assertEquals(XMLStreamConstants.SPACE, xsr.next());
76 assertEquals(XMLStreamConstants.END_DOCUMENT, xsr.next());
77
78 xsr.reset();
79
80 assertEquals(XMLStreamConstants.START_ELEMENT, xsr.next());
81 assertEquals(XMLStreamConstants.CHARACTERS, xsr.next());
82 assertEquals(XMLStreamConstants.END_ELEMENT, xsr.next());
83 assertEquals(XMLStreamConstants.END_DOCUMENT, xsr.next());
84 }
85 }
86
87