Skip to content

Commit

Permalink
Increase test coverage
Browse files Browse the repository at this point in the history
  • Loading branch information
jhannes committed Dec 12, 2015
1 parent f53d64a commit ea4ffab
Show file tree
Hide file tree
Showing 9 changed files with 29 additions and 42 deletions.
10 changes: 9 additions & 1 deletion src/main/java/org/eaxy/Element.java
Original file line number Diff line number Diff line change
Expand Up @@ -307,7 +307,15 @@ public Element selected(boolean selected) {

@Override
public Element copy() {
return new Element(this.name, Objects.list(children, Node.class), attributes.values(), namespaces);
return new Element(this.name, copyChildren(), attributes.values(), namespaces);
}

private List<Node> copyChildren() {
List<Node> list = new ArrayList<Node>();
for (Node o : children) {
list.add(o.copy());
}
return list;
}

Element attrs(Collection<Attribute> attributes) {
Expand Down
7 changes: 0 additions & 7 deletions src/main/java/org/eaxy/Objects.java
Original file line number Diff line number Diff line change
Expand Up @@ -39,11 +39,4 @@ public static String validatePresent(String string, String name) {
return string;
}

public static String validateNullOrPresent(String string, String name) {
if (string != null && string.isEmpty()) {
throw new IllegalArgumentException(name + " must be null or present");
}
return string;
}

}
1 change: 1 addition & 0 deletions src/main/java/org/eaxy/SaxReader.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ static final class ElementBuilderHandler extends DefaultHandler2 {
@Override
public void startDocument() {
document = new Document();

}

@Override
Expand Down
21 changes: 6 additions & 15 deletions src/main/java/org/eaxy/StaxReader.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,8 @@ public class StaxReader implements XMLStreamConstants {
private final XMLStreamReader streamReader;
private final Document document = new Document();

private StaxReader(Reader reader) throws XMLStreamException {
XMLInputFactory inputFactory = XMLInputFactory.newInstance();
inputFactory.setProperty(XMLInputFactory.IS_COALESCING, Boolean.FALSE);
inputFactory.setProperty(Constants.ZEPHYR_PROPERTY_PREFIX + Constants.STAX_REPORT_CDATA_EVENT, Boolean.TRUE);
this.streamReader = inputFactory.createXMLStreamReader(reader);
private StaxReader(XMLStreamReader streamReader) {
this.streamReader = streamReader;
if (streamReader.getVersion() != null) {
document.setVersion(streamReader.getVersion());
}
Expand All @@ -35,30 +32,24 @@ private StaxReader(Reader reader) throws XMLStreamException {
}
}

private StaxReader(InputStream inputStream) throws XMLStreamException {
private static XMLInputFactory getInputFactory() {
XMLInputFactory inputFactory = XMLInputFactory.newInstance();
inputFactory.setProperty(XMLInputFactory.IS_COALESCING, Boolean.FALSE);
inputFactory.setProperty(Constants.ZEPHYR_PROPERTY_PREFIX + Constants.STAX_REPORT_CDATA_EVENT, Boolean.TRUE);
this.streamReader = inputFactory.createXMLStreamReader(inputStream);
if (streamReader.getVersion() != null) {
document.setVersion(streamReader.getVersion());
}
if (streamReader.getEncoding() != null) {
document.setEncoding(streamReader.getEncoding());
}
return inputFactory;
}

public static Document read(Reader reader) {
try {
return new StaxReader(reader).doParse();
return new StaxReader(getInputFactory().createXMLStreamReader(reader)).doParse();
} catch (XMLStreamException e) {
throw new MalformedXMLException(e.getMessage(), e.getLocation().getLineNumber());
}
}

public static Document read(InputStream inputStream) {
try {
return new StaxReader(inputStream).doParse();
return new StaxReader(getInputFactory().createXMLStreamReader(inputStream)).doParse();
} catch (XMLStreamException e) {
throw new MalformedXMLException(e.getMessage(), e.getLocation().getLineNumber());
}
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/org/eaxy/Validator.java
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ public Validator(String[] resourcePaths) {

public void validate(Element xml) {
try {
validator.validate(new DOMSource(DomTransformer.toDom(new Document(xml))));
validator.validate(new DOMSource(Xml.toDom(new Document(xml))));
} catch (SAXException e) {
throw new RuntimeException(e.getMessage());
} catch (IOException e) {
Expand Down
11 changes: 0 additions & 11 deletions src/main/java/org/eaxy/Xml.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.io.StringReader;
import java.io.Writer;
Expand Down Expand Up @@ -132,12 +131,6 @@ public static Document readAndClose(InputStream inputStream) throws IOException
return StaxReader.read(inputStream);
}

public static Document readAndClose(InputStream inputStream, Charset charset) throws IOException {
try (Reader reader = new InputStreamReader(inputStream, charset)) {
return read(reader);
}
}

public static Document read(Reader reader) throws IOException {
return StaxReader.read(reader);
}
Expand All @@ -146,10 +139,6 @@ public static Document fromDom(org.w3c.dom.Document document) {
return DomTransformer.fromDom(document);
}

public static org.w3c.dom.Document toDom(Element element) {
return DomTransformer.toDom(new Document(element));
}

public static org.w3c.dom.Document toDom(Document document) {
return DomTransformer.toDom(document);
}
Expand Down
5 changes: 2 additions & 3 deletions src/test/java/org/eaxy/XmlSerializationTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@

import static org.assertj.core.api.Assertions.assertThat;

import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
Expand Down Expand Up @@ -57,8 +56,8 @@ public void shouldTransformSerializedViaDom() throws Exception {

@Test
public void shouldTransformViaDom() throws Exception {
Document doc = DomTransformer.fromDom(DomTransformer.toDom(Xml.read(xmlFile)));
assertEquals(DomTransformer.fromDom(DomTransformer.toDom(doc)),
Document doc = Xml.fromDom(Xml.toDom(Xml.read(xmlFile)));
assertEquals(Xml.fromDom(Xml.toDom(doc)),
IOUtils.slurp(xmlFile));
}

Expand Down
4 changes: 3 additions & 1 deletion src/test/java/org/eaxy/html/HtmlFormTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import java.util.Map;

import org.eaxy.Element;
import org.eaxy.Xml;
import org.junit.Test;

public class HtmlFormTest {
Expand Down Expand Up @@ -240,7 +241,8 @@ public void shouldDeserializeForm() {
el("input").name("last_name").type("text"),
el("input").name("unchecked_box").type("checkbox"),
el("input").name("checked=box").type("checkbox"));
HtmlForm form = new HtmlForm(html);
Xhtml xhtml = new Xhtml(Xml.doc(el("body", html)));
HtmlForm form = xhtml.getForm("form");
form.deserialize("last_name=O%27Malley&checked%3Dbox=");
assertThat(form.get("last_name")).isEqualTo("O'Malley");
assertThat(form.get("checked=box")).isEqualTo("on");
Expand Down
10 changes: 7 additions & 3 deletions src/test/java/org/eaxy/usage/ElementBuilderTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
import java.util.Map;

import org.eaxy.Document;
import org.eaxy.DomTransformer;
import org.eaxy.Element;
import org.eaxy.MalformedXMLException;
import org.eaxy.Namespace;
Expand Down Expand Up @@ -51,6 +50,11 @@ public void shouldGetAllAttributes() {
assertThat(attrs.values()).containsExactly("a", "b", "c");
}

@Test
public void shouldCreateAttributes() throws Exception {
assertThat(el("element", attr("a", "b")).hasAttr("a")).isTrue();
}

@Test
public void shouldSerializeAttributesWithSpecialChars() {
assertThat(el("foo").attr("attr", "This is \"<\" - a less than sign").attr("attr"))
Expand Down Expand Up @@ -222,8 +226,8 @@ public void shouldTranslateWithAttributeNamespaces() throws Exception {
Element email = StaxReader.read(new StringReader(text))
.getRootElement();

org.w3c.dom.Document dom = DomTransformer.toDom(new Document(email));
Element transformed = DomTransformer.fromDom(dom).getRootElement();
org.w3c.dom.Document dom = Xml.toDom(new Document(email));
Element transformed = Xml.fromDom(dom).getRootElement();
assertThat(transformed.toXML())
.isEqualTo(email.toXML());
}
Expand Down

0 comments on commit ea4ffab

Please sign in to comment.