blob: 1d07520d977eed599f3a8a7022797d984248f485 [file] [log] [blame]
/*
* Contains code originally developed for Apache Pivot under the Apache
* License, Version 2.0:
*
* http://www.apache.org/licenses/LICENSE-2.0
*/
package org.apache.pivot.xml.test;
import java.io.IOException;
import java.util.List;
import org.apache.pivot.io.SerializationException;
import org.apache.pivot.xml.Element;
import org.apache.pivot.xml.TextNode;
import org.apache.pivot.xml.XMLSerializer;
import org.apache.pivot.xml.XMLSerializerListener;
import org.junit.Test;
import static org.junit.Assert.*;
public class XMLSerializerTest {
@Test
public void basicTest() throws IOException, SerializationException {
XMLSerializer xmlSerializer = new XMLSerializer();
Element root = xmlSerializer.readObject(getClass().getResourceAsStream("sample.xml"));
assertEquals(root.getName(), "root");
Element a = root.getElement("a");
assertEquals(a.getName(), "a");
assertEquals(a.getAttributeValue("id"), "x");
Element b = root.getElement("a/b");
assertEquals(b.getName(), "b");
assertEquals(b.getAttributeValue("id"), "y");
b = a.getElement("b");
assertEquals(b.getName(), "b");
assertEquals(b.getAttributeValue("id"), "y");
List<Element> cs = root.getElements("a/b", "c");
assertEquals(cs.size(), 1);
List<Element> fs = root.getElements("d/e", "f");
assertEquals(fs.size(), 4);
Element e = root.getElement("d/e");
Element f = e.getElement("f");
assertEquals(f.getName(), "f");
Element g = e.getElement("g");
assertEquals(g.getName(), "g");
String ft = root.getText("d/e/f");
assertEquals(ft, "1");
String gt = root.getText("d/e/g");
assertEquals(gt, "4");
assertNull(root.getElement("a/b/n"));
assertNull(root.getText("a/b/n"));
assertEquals(root.getElements("a/b", "n").size(), 0);
assertEquals(root.getText("d/foo:h"), "Hello");
List<Element> is = e.getElements("is", "i");
assertEquals(is.size(), 3);
assertEquals(root.getText("d[0]/e[0]/f[2]"), "3");
assertEquals(root.getText("d[0]/e[1]"), null);
}
@Test
public void equalsTest() throws IOException, SerializationException {
XMLSerializer xmlSerializer = new XMLSerializer();
XMLSerializerListener xmlSerializerListener = new XMLSerializerListener() {
@Override
public void beginElement(XMLSerializer xmlSerializer, Element element) {
System.out.println("Begin element: " + element);
}
@Override
public void endElement(XMLSerializer xmlSerializer) {
System.out.println("End element");
}
@Override
public void readTextNode(XMLSerializer xmlSerializer, TextNode textNode) {
System.out.println("Read text node: " + textNode);
}
};
xmlSerializer.getXMLSerializerListeners().add(xmlSerializerListener);
Element root1 = xmlSerializer.readObject(getClass().getResourceAsStream("sample.xml"));
xmlSerializer.getXMLSerializerListeners().remove(xmlSerializerListener);
Element root2 = xmlSerializer.readObject(getClass().getResourceAsStream("sample.xml"));
assertTrue(root1.equals(root2));
Element a = root2.getElement("a");
a.getAttributes().remove(0);
assertFalse(root1.equals(root2));
}
}