/******************************************************************************* | |
* Copyright (c) 1998, 2013 Oracle and/or its affiliates. All rights reserved. | |
* This program and the accompanying materials are made available under the | |
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 | |
* which accompanies this distribution. | |
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html | |
* and the Eclipse Distribution License is available at | |
* http://www.eclipse.org/org/documents/edl-v10.php. | |
* | |
* Contributors: | |
* bdoughan - Jan 27/2009 - 1.1 - Initial implementation | |
******************************************************************************/ | |
package org.eclipse.persistence.testing.sdo.helper.jaxbhelper.xmlhelper; | |
import java.io.IOException; | |
import java.io.InputStream; | |
import java.io.InputStreamReader; | |
import java.util.List; | |
import javax.xml.transform.stream.StreamSource; | |
import org.eclipse.persistence.jaxb.JAXBContext; | |
import org.eclipse.persistence.oxm.XMLContext; | |
import org.eclipse.persistence.sdo.helper.jaxb.JAXBHelperContext; | |
import org.eclipse.persistence.testing.sdo.SDOTestCase; | |
import commonj.sdo.DataObject; | |
import commonj.sdo.Type; | |
import commonj.sdo.helper.XMLDocument; | |
import commonj.sdo.helper.XSDHelper; | |
public class XMLHelperTestCases extends SDOTestCase { | |
private static final String XML_SCHEMA = "org/eclipse/persistence/testing/sdo/helper/jaxbhelper/xmlhelper/GlobalElement.xsd"; | |
private static final String XML_INPUT = "org/eclipse/persistence/testing/sdo/helper/jaxbhelper/xmlhelper/GlobalElement.xml"; | |
private static final String XML_INPUT_UTF16 = "org/eclipse/persistence/testing/sdo/helper/jaxbhelper/xmlhelper/GlobalElement_UTF16.xml"; | |
private JAXBHelperContext jaxbHelperContext; | |
public XMLHelperTestCases(String name) { | |
super(name); | |
} | |
public void setUp() { | |
XMLHelperProject project = new XMLHelperProject(); | |
XMLContext xmlContext = new XMLContext(project); | |
JAXBContext jaxbContext = new JAXBContext(xmlContext); | |
jaxbHelperContext = new JAXBHelperContext(jaxbContext); | |
InputStream xsd = Thread.currentThread().getContextClassLoader().getResourceAsStream(XML_SCHEMA); | |
jaxbHelperContext.getXSDHelper().define(xsd, null); | |
} | |
public void testTypes() { | |
Type rootTypeType = jaxbHelperContext.getTypeHelper().getType("urn:xml", "root-type"); | |
assertNotNull(rootTypeType); | |
Type rootType = jaxbHelperContext.getTypeHelper().getType("urn:xml", "root"); | |
assertNull(rootType); | |
} | |
public void testCreateTypeFromGlobalComplexType() { | |
try { | |
InputStream xml = Thread.currentThread().getContextClassLoader().getResourceAsStream(XML_INPUT); | |
XMLDocument xmlDocument = jaxbHelperContext.getXMLHelper().load(xml); | |
assertNotNull(xmlDocument); | |
assertNotNull(xmlDocument.getRootObject()); | |
} catch(IOException e) { | |
fail(); | |
} | |
} | |
public void testLoadUTF16() { | |
try { | |
InputStream xml = Thread.currentThread().getContextClassLoader().getResourceAsStream(XML_INPUT_UTF16); | |
XMLDocument xmlDocument = jaxbHelperContext.getXMLHelper().load(xml); | |
boolean correctEncoding = "UTF-16".equals(xmlDocument.getEncoding()) || "UTF-16LE".equals(xmlDocument.getEncoding()); | |
assertTrue(correctEncoding); | |
assertEquals("1.1", xmlDocument.getXMLVersion()); | |
} catch(IOException e) { | |
fail(); | |
} | |
} | |
public void testLoadInputStream1IOException() { | |
boolean fail = true; | |
try { | |
InputStream xml = Thread.currentThread().getContextClassLoader().getResourceAsStream(XML_INPUT_UTF16); | |
xml.close(); | |
XMLDocument xmlDocument = jaxbHelperContext.getXMLHelper().load(xml); | |
} catch(IOException e) { | |
fail = false; | |
} catch(Exception e) { | |
fail("An IOException was expected, but another exception was thrown."); | |
} | |
if(fail) { | |
fail("An IOException should have been thrown, but no exceptions were thrown."); | |
} | |
} | |
public void testLoadInputStream2IOException() { | |
boolean fail = true; | |
try { | |
InputStream xml = Thread.currentThread().getContextClassLoader().getResourceAsStream(XML_INPUT_UTF16); | |
xml.close(); | |
XMLDocument xmlDocument = jaxbHelperContext.getXMLHelper().load(xml, null, null); | |
} catch(IOException e) { | |
fail = false; | |
} catch(Exception e) { | |
fail("An IOException was expected, but another exception was thrown."); | |
} | |
if(fail) { | |
fail("An IOException should have been thrown, but no exceptions were thrown."); | |
} | |
} | |
public void testLoadSourceIOException() { | |
boolean fail = true; | |
try { | |
InputStream xml = Thread.currentThread().getContextClassLoader().getResourceAsStream(XML_INPUT_UTF16); | |
StreamSource source = new StreamSource(xml); | |
xml.close(); | |
XMLDocument xmlDocument = jaxbHelperContext.getXMLHelper().load(source, null, null); | |
} catch(IOException e) { | |
fail = false; | |
} catch(Exception e) { | |
fail("An IOException was expected, but another exception was thrown."); | |
} | |
if(fail) { | |
fail("An IOException should have been thrown, but no exceptions were thrown."); | |
} | |
} | |
public void testLoadReaderIOException() { | |
boolean fail = true; | |
try { | |
InputStream xml = Thread.currentThread().getContextClassLoader().getResourceAsStream(XML_INPUT_UTF16); | |
xml.close(); | |
InputStreamReader reader = new InputStreamReader(xml); | |
XMLDocument xmlDocument = jaxbHelperContext.getXMLHelper().load(reader, null, null); | |
} catch(IOException e) { | |
fail = false; | |
} catch(Exception e) { | |
fail("An IOException was expected, but another exception was thrown."); | |
} | |
if(fail) { | |
fail("An IOException should have been thrown, but no exceptions were thrown."); | |
} | |
} | |
public void tearDown() { | |
} | |
} |