1. Project Clover database Tue Dec 20 2016 21:24:09 CET
  2. Package org.xwiki.xml.stax

File StAXUtilsTests.java

 

Code metrics

2
34
6
1
134
84
7
0.21
5.67
6
1.17

Classes

Class Line # Actions
StAXUtilsTests 53 34 0% 7 42
0.00%
 

Contributing tests

No tests hitting this source file were found.

Source view

1    /*
2    * See the NOTICE file distributed with this work for additional
3    * information regarding copyright ownership.
4    *
5    * This is free software; you can redistribute it and/or modify it
6    * under the terms of the GNU Lesser General Public License as
7    * published by the Free Software Foundation; either version 2.1 of
8    * the License, or (at your option) any later version.
9    *
10    * This software is distributed in the hope that it will be useful,
11    * but WITHOUT ANY WARRANTY; without even the implied warranty of
12    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13    * Lesser General Public License for more details.
14    *
15    * You should have received a copy of the GNU Lesser General Public
16    * License along with this software; if not, write to the Free
17    * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
18    * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
19    */
20    package org.xwiki.xml.stax;
21   
22    import java.io.StringReader;
23    import java.io.StringWriter;
24   
25    import javax.xml.stream.Location;
26    import javax.xml.stream.XMLEventReader;
27    import javax.xml.stream.XMLEventWriter;
28    import javax.xml.stream.XMLStreamConstants;
29    import javax.xml.stream.XMLStreamException;
30    import javax.xml.stream.XMLStreamReader;
31    import javax.xml.stream.XMLStreamWriter;
32    import javax.xml.stream.events.XMLEvent;
33    import javax.xml.transform.TransformerConfigurationException;
34    import javax.xml.transform.TransformerFactory;
35    import javax.xml.transform.sax.SAXResult;
36    import javax.xml.transform.sax.SAXTransformerFactory;
37    import javax.xml.transform.sax.TransformerHandler;
38    import javax.xml.transform.stax.StAXResult;
39    import javax.xml.transform.stax.StAXSource;
40    import javax.xml.transform.stream.StreamResult;
41    import javax.xml.transform.stream.StreamSource;
42   
43    import org.junit.Assert;
44    import org.junit.Test;
45    import org.mockito.Mockito;
46   
47    /**
48    * Unit tests for {@link org.xwiki.xml.stax.StAXUtils}.
49    *
50    * @version $Id: 89e353c90eaf9fd067d5c597c9fe406fc8c6bedb $
51    * @since 5.2M1
52    */
 
53    public class StAXUtilsTests
54    {
 
55  0 toggle @Test
56    public void testGetXMLStreamReader() throws XMLStreamException
57    {
58    // TODO: add support for XMLEventReader
59    // Assert.assertNotNull(StAXUtils.getXMLStreamReader(new StAXSource(mockXMLEventReader())));
60  0 Assert.assertNotNull(StAXUtils.getXMLStreamReader(new StAXSource(mockXMLStreamReader())));
61  0 Assert.assertNotNull(StAXUtils.getXMLStreamReader(new StreamSource(new StringReader("<element/>"))));
62    }
63   
 
64  0 toggle @Test
65    public void testGetXMLEventReader() throws XMLStreamException
66    {
67  0 Assert.assertNotNull(StAXUtils.getXMLEventReader(new StAXSource(mockXMLEventReader())));
68  0 Assert.assertNotNull(StAXUtils.getXMLEventReader(new StAXSource(mockXMLStreamReader())));
69  0 Assert.assertNotNull(StAXUtils.getXMLEventReader(new StreamSource(new StringReader("<element/>"))));
70    }
71   
 
72  0 toggle @Test
73    public void testGetXMLStreamWriter() throws XMLStreamException
74    {
75  0 Assert.assertNotNull(StAXUtils.getXMLStreamWriter(new StAXResult(Mockito.mock(XMLEventWriter.class))));
76  0 Assert.assertNotNull(StAXUtils.getXMLStreamWriter(new StAXResult(Mockito.mock(XMLStreamWriter.class))));
77  0 Assert.assertNotNull(StAXUtils.getXMLStreamWriter(new StreamResult(new StringWriter())));
78    }
79   
 
80  0 toggle @Test
81    public void testGetXMLStreamWriterWithSAXREsult() throws TransformerConfigurationException, XMLStreamException
82    {
83  0 TransformerFactory tf = TransformerFactory.newInstance();
84  0 if (!tf.getFeature(SAXTransformerFactory.FEATURE)) {
85  0 throw new RuntimeException("Did not find a SAX-compatible TransformerFactory.");
86    }
87   
88  0 StringWriter output = new StringWriter();
89   
90  0 SAXTransformerFactory stf = (SAXTransformerFactory) tf;
91  0 TransformerHandler th = stf.newTransformerHandler();
92  0 th.setResult(new StreamResult(output));
93   
94  0 XMLStreamWriter writer = StAXUtils.getXMLStreamWriter(new SAXResult(th));
95   
96  0 writer.writeStartElement("element");
97  0 writer.writeAttribute("attribute", "value");
98  0 writer.writeCharacters("characters");
99  0 writer.writeCData("cdata");
100  0 writer.writeEndElement();
101   
102  0 Assert.assertEquals("<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<element attribute=\"value\">"
103    + "characters" + "<![CDATA[cdata]]>" + "</element>", output.getBuffer().toString());
104    }
105   
 
106  0 toggle private XMLStreamReader mockXMLStreamReader()
107    {
108  0 XMLStreamReader xmlStreamReader = Mockito.mock(XMLStreamReader.class);
109   
110  0 Mockito.when(xmlStreamReader.getEventType()).thenReturn(XMLStreamConstants.START_DOCUMENT);
111   
112  0 Location location = Mockito.mock(Location.class);
113   
114  0 Mockito.when(xmlStreamReader.getLocation()).thenReturn(location);
115   
116  0 return xmlStreamReader;
117    }
118   
 
119  0 toggle private XMLEventReader mockXMLEventReader() throws XMLStreamException
120    {
121  0 XMLEventReader xmlEventReader = Mockito.mock(XMLEventReader.class);
122   
123  0 XMLEvent event = Mockito.mock(XMLEvent.class);
124  0 Mockito.when(event.getEventType()).thenReturn(XMLStreamConstants.START_DOCUMENT);
125   
126  0 Mockito.when(xmlEventReader.peek()).thenReturn(event);
127   
128  0 Location location = Mockito.mock(Location.class);
129   
130  0 Mockito.when(event.getLocation()).thenReturn(location);
131   
132  0 return xmlEventReader;
133    }
134    }