/******************************************************************************* * Copyright (c) 2010-2014 SAP AG and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * SAP AG - initial API and implementation *******************************************************************************/ package org.eclipse.skalli.commons; import java.io.ByteArrayInputStream; import java.io.File; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import org.apache.commons.io.FileUtils; import org.junit.Assert; import org.junit.Test; import org.w3c.dom.Document; import org.w3c.dom.Element; @SuppressWarnings("nls") public class XMLUtilsTest { private static final String XML = "<bla><hello>world</hello><blubb>noop</blubb></bla>"; @Test public void testDocumentFromString() throws Exception { Document res = XMLUtils.documentFromString(XML); Assert.assertNotNull(res); Assert.assertEquals(1, res.getElementsByTagName("hello").getLength()); Assert.assertEquals(1, res.getElementsByTagName("blubb").getLength()); } @Test public void testDocumentFromStream() throws Exception { ByteArrayInputStream in = new ByteArrayInputStream(XML.getBytes("UTF-8")); Document res = XMLUtils.documentFromStream(in); Assert.assertNotNull(res); Assert.assertEquals(1, res.getElementsByTagName("hello").getLength()); Assert.assertEquals(1, res.getElementsByTagName("blubb").getLength()); } @Test public void testDocumentFromFile() throws Exception { File tmpFile = null; try { tmpFile = File.createTempFile("testDocumentFromFile", ".xml"); FileUtils.writeStringToFile(tmpFile, XML); Document res = XMLUtils.documentFromFile(tmpFile); Assert.assertNotNull(res); Assert.assertEquals(1, res.getElementsByTagName("hello").getLength()); Assert.assertEquals(1, res.getElementsByTagName("blubb").getLength()); } finally { if (tmpFile != null) { tmpFile.delete(); } } } private Document createDocument() throws ParserConfigurationException { DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder docBuilder = docFactory.newDocumentBuilder(); Document doc = docBuilder.newDocument(); Element root = doc.createElement("hello"); doc.appendChild(root); return doc; } @Test public void testDocumentToString() throws Exception { Document doc = createDocument(); String res = XMLUtils.documentToString(doc); Assert.assertNotNull(res); Assert.assertTrue(res.contains("<hello")); } @Test public void testDocumentToFile() throws Exception { File tmpFile = null; try { tmpFile = File.createTempFile("testDocumentToString", ".xml"); Assert.assertTrue(tmpFile.length() == 0); Document doc = createDocument(); XMLUtils.documentToFile(doc, tmpFile); Assert.assertTrue(tmpFile.exists()); Assert.assertTrue(tmpFile.length() > 0); } finally { if (tmpFile != null) { tmpFile.delete(); } } } }